Custom Query (1630 matches)
Results (40 - 42 of 1630)
Ticket | Resolution | Summary | Owner | Reporter |
---|---|---|---|---|
#486 | fixed | Interrupting a tcp read operation causes a crash | ||
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 |
|||
#493 | invalid | set! returns its value when compiled | ||
Description |
I guess this has been true for a while (it is in 4.5.5 and 4.6.4). It causes some light breakage, like if you use (display ...) on a TCP port, display will sometimes return the empty string instead of void, since there is a (set!) as the final statement in the output port lambda. So, I assume this is unintentional. echo "(print (set! a 3))" > set.scm csc set.scm ./set 3 csi -script set.scm #<unspecified> |
|||
#495 | fixed | tcp-abandon-port polarity reversed, I think | ||
Description |
To my understanding, (tcp-abandon-port x) is supposed to signal that port X should not be shutdown() when we close the Scheme port. If so, I think tcp-abandon-port is abandoning the wrong port, because it does:
but the close procedure does
tcp-abandon-port checks input/output port using (##sys#slot p 1) and I think that is where the bug is -- when #t, it sets slot 2, but #t means input-port. To reproduce, do something like (define-values (i o) (tcp-connect "3e8.org" 80)) (tcp-abandon-port o) (close-output-port o) and note that the connection is closed even though the input port is still open. If this analysis is incorrect, I would appreciate an explanation of what the heck tcp-abandon-port is supposed to do! |