On Sun, Dec 27, 2009 at 05:00:11AM -0500, Stelian Ionescu wrote:
commit b8a3c1a535009ba60a3f9156c9e01386efd7e7ba Author: Stelian Ionescu sionescu@cddr.org Date: Sat Dec 26 22:36:11 2009 +0100
Fix a couple of bugs in echo-server.lisp Thanks to Peter Keller.
examples/echo-server.lisp | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-)
It turns out I found another unrelated bug. :)
To reproduce unreliably:
; run the server like this: * (run-server :port 10000 :new-process nil :timeout 60)
In another xterm:
telnet localhost 10000
Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. hello 1: hello how 1: how
1: are 1: are you telnet> close Connection closed.
Then:
telnet localhost 10000
Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. <hangs>
Transcript of what SBCL 1.0.33.30 does:
* (run-server :port 10000 :new-process nil :timeout 60) Accepted client 1 1: hello 1: how 1: 1: are Accepted client 2 1: you 1: closing
debugger invoked on a TYPE-ERROR in thread #<THREAD "initial thread" RUNNING {AA09C79}>: The value NIL is not of type IOLIB.MULTIPLEX::FD-HANDLER.
Type HELP for debugger help, or (SB-EXT:QUIT) to exit from SBCL.
restarts (invokable by number or by possibly-abbreviated name): 0: [ABORT] Exit debugger, returning to top level.
(IOLIB.MULTIPLEX::%DISPATCH-EVENT #S(IOLIB.MULTIPLEX::FD-ENTRY :FD 8 :READ-HANDLER NIL :WRITE-HANDLER NIL :ERROR-CALLBACK NIL) :WRITE :ERROR 1478256.382031317d0) 0] *
Trouble is, it doesn't happen all the time, so maybe a thread race condition? It only happened once for me so far in my testing. Had I known it wasn't easily reproducable, I would have gotten a full backtrace.
Thank you.
-pete