#486 closed defect (fixed)
Interrupting a tcp read operation causes a crash
Reported by: | Jim Ursetto | Owned by: | Jim Ursetto |
---|---|---|---|
Priority: | major | Milestone: | 4.9.0 |
Component: | core libraries | Version: | 4.6.x |
Keywords: | tcp scheduler crash girl interrupted | Cc: | |
Estimated difficulty: |
Description
In 4.6.4 at the interpreter, if I read from an open tcp port with no available data, and then interrupt the operation with Ctrl-C, the system will crash the next time I try to open a TCP connection.
This happens with 4.6.4 from Dec 12 2010 and from Jan 21 2011. It does NOT occur with 4.5.8. I did not investigate further (because Felix will figure this out in 5 seconds), but I wonder if it happened during the safer-scheduler merge.
If you prefer, I can git bisect this to track it down.
CHICKEN (c)2008-2010 The Chicken Team (c)2000-2007 Felix L. Winkelmann Version 4.6.4 (experimental) macosx-unix-gnu-x86 [ manyargs dload ptables ] compiled 2010-12-16 on amaranth.xorinia.dim (Darwin) ; loading /Users/jim/.csirc ... #;1> (use tcp posix) ; loading library tcp ... ; loading library posix ... #;2> (define-values (i o) (tcp-connect "3e8.org" 80)) #;3> (read-string #f i) C-c C-c *** user interrupt *** #;3> (define-values (i o) (tcp-connect "3e8.org" 80)) ##sys#unblock-threads-for-i/o: thread on fd-list has wrong FD Process scheme exited abnormally with code 70
Attachments (1)
Change History (7)
comment:1 Changed 14 years ago by
Changed 14 years ago by
comment:3 Changed 14 years ago by
Owner: | changed from felix winkelmann to Jim Ursetto |
---|---|
Status: | new → assigned |
comment:4 Changed 14 years ago by
Resolution: | → fixed |
---|---|
Status: | assigned → closed |
Yes, I can no longer reproduce the problem.
I was also getting a different crash previously, however I cannot currently reproduce it (even on the old unpatched version!). So closing ticket for now.
#;1> (use posix) ; loading library posix ... #;2> (use tcp) ; loading library tcp ... #;3> (tcp-connect-timeout 20000) #;4> (define-values (i o) (tcp-connect "3e8.org" 8081)) C-c C-c *** user interrupt *** #;4> (define-values (i o) (tcp-connect "3e8.org" 8081)) Bus error
This is a diagnostic error check being introduced during the spiffy debugging phase. I will keep the error but try to change the current behavior into keeping on execution.