Print

Print


@ccaffy - I test with this small patch to inject a fault:
```
--- a/src/XrdOss/XrdOssApi.cc
+++ b/src/XrdOss/XrdOssApi.cc
@@ -884,8 +884,13 @@ ssize_t XrdOssFile::Read(void *buff, off_t offset, size_t blen)
            else   retval = cxobj->Read((char *)buff, blen, offset);
         else 
 #endif
+     if (offset < 64*1024) {
              do { retval = pread(fd, buff, blen, offset); }
                 while(retval < 0 && errno == EINTR);
+     } else {
+        errno = EIO;
+        retval = -1;
+     }
 
      return (retval >= 0 ? retval : (ssize_t)-errno);
 }
```

Any reads after 64KB will fail (though, since reads are issued as 1MB chunks, the test file needs to be >1MB).

Note that you'll need to add `--raw -v` to the `curl` command to see the trailer.  Sadly trailers aren't printed by `-v` by default.

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

Message ID: <[log in to unmask]>

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