Bug 3083 - writes allowed to be registered after an error
: writes allowed to be registered after an error
Globus XIO
: development
: PC Linux
: P3 normal
: ---
Assigned To:
: 3100 3117
  Show dependency treegraph
Reported: 2005-04-05 19:11 by
Modified: 2005-08-17 09:18 (History)

test program (5.33 KB, text/plain)
2005-04-05 19:13, John Bresnahan


You need to log in before you can comment on or make changes to this bug.

Description From 2005-04-05 19:11:19
Currently writes are allowed to be registered after a read returns an error. 
This causes user level hangs.
------- Comment #1 From 2005-04-05 19:13:30 -------
Created an attachment (id=562) [details]
test program

This test program shows the bug.
------- Comment #2 From 2005-04-06 08:46:20 -------
The specific reason for the hang is that an 'EPIPE' write event appears to be 
consumed.  So, the first write to get that error will be the last. Any attempts 
to select for more write events after that will hang, as select will never 
signal another write event.

This is now fixed in cvs.
------- Comment #3 From 2005-04-08 16:31:18 -------
A similar problem exists when a connect is reset on the read. Subsequent
attempts to select for write will never succeed. 

This test case:


globusrun -submit -F http://localhost:8443 -c /bin/date

seems to cause this to occur fairly reliably (trying to speak http to an https
------- Comment #4 From 2005-08-17 09:18:12 -------
An initial fix for this was committed shortly after april 8th and should be in 
4.0.1.  It still contains a small race, however.

A complete fix for this was committed to the trunk towards the end of may.  I 
may have deemed it too intrusive at the time for release to a stable branch.  
This was before the onslaught of changes added to that branch.

Mike Link or Joe Bester should determine whether people are still affected by 
this bug and whether it's worth it to back port the changes in 
globus_xio_driver_tcp.c and release an update package to xio.