Print

Print


When asked to copy a file from a remote server, the xrdcp client first does a "stat" to establish the file's size (see this comment ). If the server tries to deliver too much data, the client will silently ignore any excess data. The transfer will complete successfully with no indication of the problem.

If the remote server is delivering too much data then it is broken. By limiting the downloaded data to the expected file size, xrdcp is making an assumption about the failure mode; specifically, that data delivered within the expected byte-range is correct and that data outside of this range may be rejected.

While this failure mode is quite likely, it isn't guaranteed. For example, the final (short) frame may be built by inserting data at the wrong offset, so the final frame would contain some incorrect data followed by the true data. This would result in data corruption if the transferred data were simply cropped to the expected size.

The current behaviour is (probably) the best choice; however, the user should be warned that the remote endpoint is broken and tried to deliver too much data. The user may then take extra steps to verify the data integrity (e.g., comparing checksum against a known value)


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/1492", "url": "https://github.com/xrootd/xrootd/issues/1492", "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