Print

Print


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.
You can view, comment on, or merge this pull request online at:

  https://github.com/xrootd/xrootd/pull/1391

-- Commit Summary --

  * XrdTpc: Factor out recursive writes.
  * XrdTpc: Do not allow partial buffer writes
  * XrdTpc: Adjust buffer size based on number of streams.
  * XrdTpc: Always populate error buffer with messages.

-- File Changes --

    M src/XrdTpc/XrdTpcStream.cc (73)
    M src/XrdTpc/XrdTpcStream.hh (43)
    M src/XrdTpc/XrdTpcTPC.cc (6)
    M src/XrdTpc/XrdTpcTPC.hh (1)

-- Patch Links --

https://github.com/xrootd/xrootd/pull/1391.patch
https://github.com/xrootd/xrootd/pull/1391.diff

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/xrootd/xrootd/pull/1391

########################################################################
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