Hi all,

I have the following code that occasionally throws an error when called, but 
definitely not always:

"
(define (study-add-participant! a-study)
  (displayln-date)
  (define dbc (study-db a-study))
  (displayln "Inserting new participant...")
  (query-exec
        dbc
        (string-join
          '(
                "INSERT INTO participant (subscribed, next_matrix, 
completion_code, comprehension_incorrect, comprehension_question)"
                "VALUES (1, 1, ?, 0, 0)"))
        (number->string (random 1000000)))
  (displayln "New participant inserted. Getting id of new participant...")
  ... ; More stuff
"

Sometimes I hit the following error, but never if I refresh the page that calls 
'study-add-participant!, and usually I don't hit the error at all.

"
Servlet (@ /tutorial) exception:
io:read-le-intN: internal error;
 unexpected eof; got #<eof>

  context...:
   /usr/share/racket/collects/db/private/generic/interfaces.rkt:209:0: error*9
   /usr/share/racket/pkgs/db-lib/db/private/mysql/message.rkt:417:0: 
parse-packet
   /usr/share/racket/pkgs/db-lib/db/private/mysql/connection.rkt:105:4: recv* 
method in connection%
   .../more-scheme.rkt:261:28
   /usr/share/racket/collects/db/private/generic/common.rkt:276:13
   
/usr/share/racket/collects/db/private/generic/../../../racket/private/more-scheme.rkt:261:28
   [repeats 1 more time]
   /usr/share/racket/collects/db/private/generic/functions.rkt:141:0: 
compose-statement
   /usr/share/racket/collects/db/private/generic/functions.rkt:216:0: query-exec
   /home/marc/mturk/model.rkt:99:0: study-add-participant!
   /home/marc/mturk/pages.rkt:563:0: tutorial
   
/usr/share/racket/collects/racket/contract/private/arrow-higher-order.rkt:342:33
   [repeats 1 more time]
   
/usr/share/racket/pkgs/web-server-lib/web-server/dispatchers/dispatch-servlets.rkt:58:2
   
/usr/share/racket/collects/racket/contract/private/arrow-higher-order.rkt:342:33
   [repeats 1 more time]
...
"

>From the logs, I know that this happens in the query-exec, since I see the 
>first `displayln message, but not the second one. What I do not understand is 
>how I can hit the message sometimes but not other times? What (hidden?) state 
>is there that is changing and sometimes causes the io:read-le-intN to fail? 

If it helps with diagnosing: 

- The query did not get run successfully on the database.
- The query itself is correct, since it succeeds the second time, and since it 
succeeded yesterday. Thus, it's not that I am addressing a missing database or 
anything.
- I have never yet hit this error when running the code on localhost for 
testing and development. This is on the live server.

I am happy to provide more logs or run commands to figure out what is going on, 
but unfortunately I cannot even replicate the bug reliably (I hit it 4 times so 
far. 

Thanks,
Marc

-- 
You received this message because you are subscribed to the Google Groups 
"Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to