Print

Print


Hi Albert,

I think I can explain what is going on here and it woud indicate that the
latest change to Ral's Ceph plugin is causing the problem (they recently
added async I/O to the plugin). Way back there was this quirk in the
xrootd read driver that would re-issue a read request for the remaining
bytes of a read request when the plugin returned less than the requested
number of bytes. The read would terminate only if zero bytes were returned
(i.e. none of it could be satisfied). We determined that this was really
unneeded behaviour but when we asked plug-in writers if they felt
comfortable with us changing the behaviour to simply terminate further
reads when less bytes were returned than we asked for, we received a
negative response (i.e. leave it as is). So, we left the code unchanged.
This behavior has been there for the last 20 years and all plugins obey
the general rule if there is no more data they will return 0 bytes. This
was also true of the Ceph plugin over the years. Apparently, that has
changed and when reading precisely past the file's EOF. Under such
circumstances the Ceph plugin seems to be manufacturing data, which is
patently wrong.

This is obviously shown in the log where we read 4194304, get back the
correct amount of 1755648 and then issue one more read for the remaining
2438656 bytes but instead of getting the expected 0 byte result we get
phantom data precisely equaling that amount.

So, I would bring this up with RAL.

Andy


On Thu, 5 Aug 2021, Albert Rossi wrote:

> At any rate, I'm trying a different strategy. I want to fix this before reporting to RAL this weirdness.
>
> --
> You are receiving this because you were mentioned.
> Reply to this email directly or view it on GitHub:
> https://github.com/xrootd/xrootd/issues/1454#issuecomment-893821802


You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or unsubscribe.
Triage notifications on the go with GitHub Mobile for iOS or Android.

[ { "@context": "http://schema.org", "@type": "EmailMessage", "potentialAction": { "@type": "ViewAction", "target": "https://github.com/xrootd/xrootd/issues/1454#issuecomment-893859109", "url": "https://github.com/xrootd/xrootd/issues/1454#issuecomment-893859109", "name": "View Issue" }, "description": "View this Issue on GitHub", "publisher": { "@type": "Organization", "name": "GitHub", "url": "https://github.com" } } ]

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