Custom Query (1630 matches)

Filters
 
Or
 
  
 
Columns

Show under each result:


Results (40 - 42 of 1630)

Ticket Resolution Summary Owner Reporter
#486 fixed Interrupting a tcp read operation causes a crash Jim Ursetto Jim Ursetto
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 Jim Ursetto
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 Jim Ursetto Jim Ursetto
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:

if input port: set slot 2 to #t if output port: set slot 1 to #t

but the close procedure does

if input port and slot 1 #t: ignore shutdown if output port and slot 2 #t: ignore shutdown

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!

Note: See TracQuery for help on using queries.