Bugzilla – Bug 3291
XIO writev doesn't handle iovcnt > IOVEC
Last modified: 2005-05-05 09:58:07
You need to log in before you can comment on or make changes to this bug.
When doing a writev with an iovec containing too many buffers, xio write fails with "globus_xio: System error in writev: Invalid argument". It'd be nicer if this were handled somehow by the XIO drivers or system.
This brings up interesting issues with drivers that are not reliable and ordered. May be a good time to introduce some driver description funtionality.
Created an attachment (id=601) [details] iovc_limit_patch.diff Attaching patch which keeps the iovc passed to writev and readv smaller than IOVCNT.
The udp driver is the only one that i am aware of that can't repass data down the stack (semantically). It properly handles any short write as a failure so this patch is fine. We need to add documentation to the driver code to say that it is the drivers responsibility to deal with short reads/writes if it must have all the data sent in a single packet. Down the road we may want to add driver descriptors which tell the xio framework, and other drivers, hints about a driver. Things like ordered, reliable, packet, stream, etc. This would potientially allow the framework to ease more burden on the driver.
Patch committed to 4.0 branch and trunk. Added to advisories page. Update package available at http://www-unix.globus.org/ftppub/gt4/4.0/4.0.0/updates/src/globus_xio-0.29.tar.gz