Print

Print


@snafus @esindril  - ah-ha, this is exactly what I needed!

Elvin's trace indicated that the filesystem calls were correct so the issue must be in the buffering.

James's trace indicated that the corruption was suspiciously similar to the offset size of the first partial buffer from curl.  That means the problem is in the buffer code and probably due to the partial offset.

Here's the corresponding fix: https://github.com/xrootd/xrootd/pull/1409

It turns out that we didn't offset the partial buffer, meaning that it was always "off" by however much the first curl buffer differed from exactly 16KB.

- Depending on the network speed, often curl's first read out from the socket is indeed 16KB and we're unaffected.
- While I explicitly tested this case locally, it turns out that my test files were from `/dev/zero` instead of `/dev/urandom` like I thought.

Because of the testing issue, the fact that the wrong part of the buffer was copied from was irrelevant because it happened to generate the right results!

So, can reliably reproduce now and the fix seems to work.

-- 
You are receiving this because you commented.
Reply to this email directly or view it on GitHub:
https://github.com/xrootd/xrootd/issues/1404#issuecomment-784436877

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