[hunchentoot-devel] I/O timeout error (SBCL)

Edi Weitz edi at agharta.de
Sat Dec 16 21:00:05 UTC 2006


On Sat, 16 Dec 2006 14:18:03 -0500, vedm <mlist at rogers.com> wrote:

> If I set *CATCH-ERRORS-P* to T I do not see this error.

Strange, and how did you get the backtrace then?

> I/O timeout reading #<SB-SYS:FD-STREAM for "a constant string" {AEA4211}>
>    [Condition of type SB-SYS:IO-TIMEOUT]
>
> Restarts:
>   0: [USE-VALUE] Specify a character to be used instead.
>   1: [TERMINATE-THREAD] Terminate this thread (#<THREAD "hunchentoot-worker-6" {AE95301}>)
>
> Backtrace:
>   0: ((LAMBDA (SWANK-BACKEND::DEBUGGER-LOOP-FN)) #<FUNCTION (LAMBDA NIL) {A94A375}>)
>   1: (SWANK::CALL-WITH-BINDINGS ((*PRINT-PRETTY*) (*PRINT-LEVEL* . 4) (*PRINT-LENGTH* . 10) (*PRINT-CIRCLE* . T) (*PRINT-READABLY*) (*PRINT-PPRINT-DISPATCH* . #<SB-PRETTY:PPRINT-DISPATCH-TABLE {BAF5D01}>) (*PRINT-GENSYM* . T) (*PRINT-BASE* . 10) (*PRINT-RADIX*) (*PRINT-ARRAY* . T) ...) #<FUNCTION (LAMBDA NIL) {A94A335}>)
>   2: (SWANK::DEBUG-IN-EMACS #<SB-SYS:IO-TIMEOUT {AF05589}>)
>   3: ((LAMBDA (SWANK-BACKEND::HOOK SWANK-BACKEND::FUN)) #<FUNCTION SWANK:SWANK-DEBUGGER-HOOK> #<CLOSURE (LAMBDA NIL) {AF0578D}>)
>   4: (SWANK::CALL-WITH-REDIRECTED-IO #<SWANK::CONNECTION {B0A5F49}> #<CLOSURE (LAMBDA NIL) {AF0579D}>)
>   5: (SWANK::CALL-WITH-CONNECTION #<SWANK::CONNECTION {B0A5F49}> #<CLOSURE (LAMBDA NIL) {AF0578D}>)
>   6: (INVOKE-DEBUGGER #<SB-SYS:IO-TIMEOUT {AF05589}>)
>   7: (HUNCHENTOOT::MAYBE-INVOKE-DEBUGGER #<SB-SYS:IO-TIMEOUT {AF05589}>)
>   8: (SIGNAL #<SB-SYS:IO-TIMEOUT {AF05589}>)
>   9: (ERROR SB-SYS:IO-TIMEOUT)
>  10: (SB-IMPL::REFILL-BUFFER/FD #<SB-SYS:FD-STREAM for "a constant string" {AEA4211}>)
>  11: (SB-IMPL::INPUT-UNSIGNED-8BIT-BYTE #<SB-SYS:FD-STREAM for "a constant string" {AEA4211}> NIL :EOF)
>  12: ((SB-PCL::FAST-METHOD STREAM-READ-BYTE (CHUNGA:CHUNKED-INPUT-STREAM)) (#(8 9) . #()) #<unavailable argument> #<CHUNGA:CHUNKED-IO-STREAM {AEB07A9}>)
>  13: (FLEXI-STREAMS::READ-BYTE* #<FLEXI-STREAMS:FLEXI-IO-STREAM {AEB3011}> NIL)
>  14: (FLEXI-STREAMS::READ-CHAR-8-BIT #<FLEXI-STREAMS:FLEXI-IO-STREAM {AEB3011}> #(0 1 2 3 4 5 6 7 8 9 ...))
>  15: ((FLET FLEXI-STREAMS::GET-CHAR-CODE))
>  16: ((SB-PCL::FAST-METHOD STREAM-READ-CHAR (FLEXI-STREAMS:FLEXI-INPUT-STREAM)) #<unavailable argument> #<unavailable argument> #<FLEXI-STREAMS:FLEXI-IO-STREAM {AEB3011}>)
>  17: ((SB-PCL::FAST-METHOD STREAM-PEEK-CHAR (FUNDAMENTAL-CHARACTER-INPUT-STREAM)) #<unavailable argument> #<unavailable argument> #<FLEXI-STREAMS:FLEXI-IO-STREAM {AEB3011}>)
>  18: (PEEK-CHAR NIL #<FLEXI-STREAMS:FLEXI-IO-STREAM {AEB3011}> T NIL #<unused argument>)
>  19: (CHUNGA:READ-LINE* #<FLEXI-STREAMS:FLEXI-IO-STREAM {AEB3011}> NIL)
>  20: (HUNCHENTOOT::GET-REQUEST-DATA)
>  21: (HUNCHENTOOT::PROCESS-CONNECTION #<HUNCHENTOOT::SERVER {B2F51D9}> #<SB-BSD-SOCKETS:INET-SOCKET descriptor 6 {AE16D09}>)
>  22: ((LAMBDA NIL))
>  23: ("foreign function: call_into_lisp")
>  24: ("foreign function: funcall0")
>  25: ("foreign function: new_thread_trampoline")
>  26: ("foreign function: #xA7FAF0BD")

I think this is a worker thread which dies from a timeout after having
been idle for some time (i.e. after trying to read from his stream in
vain).  It looks as if the main problem is that these errors shouldn't
be logged.

I'll have to investigate this when I have more time.

Cheers,
Edi.



More information about the Tbnl-devel mailing list