This removes problematic recursive invocations of the stream writes and fixes some multistream errors that caused too-high concurrency.
The underlying cause of the multistream issue was allowing partial writes of the buffers. The buffer occupancy is a feedback mechanism to the multistream code to not launch additional requests; the partial write optimization allowed a buffer to look empty when really there was more coming from the request.
Because we aren't allowing partial writes, this also had to allow partial accepts if the incoming curl buffer spanned two internal buffers. With this, multistream stays megabyte aligned and should still work on RAL's Echo.
Finally, this adds some error messages on conditions considered internal logic errors -- should help with future debugging.
https://github.com/xrootd/xrootd/pull/1391
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or unsubscribe.
Use REPLY-ALL to reply to list
To unsubscribe from the XROOTD-DEV list, click the following link:
https://listserv.slac.stanford.edu/cgi-bin/wa?SUBED1=XROOTD-DEV&A=1