Bugzilla – Bug 3083
writes allowed to be registered after an error
Last modified: 2005-08-17 09:18:12
You need to
before you can comment on or make changes to this bug.
Currently writes are allowed to be registered after a read returns an error.
This causes user level hangs.
Created an attachment (id=562) [details]
This test program shows the bug.
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.
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
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.