Print

Print


@alrossi, @paulmillar & @snafus : we have seen similar problem with TPC transfers from Castor to EOS a while ago (~2 years or so), this is a bug in the rados striper (that is used by the xrootd Ceph plug-in). For some chunk sizes it will happily serve garbage data for offsets past the end of file.

I was able to reproduce this with following code snipped executed against castor+ceph:

  File file;
  XRootDStatus st = file.Open( "root://host//path/to/file", OpenFlags::Read );
  if( !st.IsOK() )
  {
    std::cout << st.ToString() << std::endl;
    return 1;
  }

  char   buffer[1048576];
  uint64_t offset = 0;
  uint32_t size   = 1048576;
  uint32_t bytesRead = 0;

  do
  {
    st = file.Read( offset, size, buffer, bytesRead );
    if( !st.IsOK() )
    {
      std::cout << st.ToString() << std::endl;
      return 1;
    }
    std::cout << "Read " << bytesRead << " bytes!" << std::endl;
    std::cout << std::string( buffer, bytesRead ) << std::endl;
    offset += bytesRead;
  }
  while( bytesRead > 0 );

Note: if one uses a small buffer size like 1024 bytes it works correctly, however if you go for something bigger (like 1048576) it goes bananas ;-)

xrdcp works correctly because it stats the source file ahead of doing the copy and then only reads number of bytes equal to the file size.

I never had time to file a bug report with Ceph and actually I'm not sure if anyone is maintaining the rados striper anymore.


You are receiving this because you commented.
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-895314428", "url": "https://github.com/xrootd/xrootd/issues/1454#issuecomment-895314428", "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