Hi,
The error occurs or is detected by XrdClHttp:
[2021-05-06 08:53:09.092614 +0200][Error ][XrdClHttp ] Could not read URL: [log in to unmask]:8000//path/to/file?" target="_blank">http:[log in to unmask]:8000//path/to/file?, error: [ERROR] Internal error: no such device or address: Result Invalid Read in request after 3 attempts
Now we have to figure out why it happens in XrdClHttp for the original source server. I'd guess there is some issue with file size.
What files-size does xrootd report at open / attach time? Is this is the same as file-size on the server?
What version of xrootd is this?
I've never used XrdClHttp so I don;t know how it's packaged / versioned ... does it have a separate version?
Cheers,
Matevz
On 5/10/21 3:07 AM, Bertrand RIGAUD wrote:
> Hello,
>
> well I don't think XcacheH is related to this issue. It's the same behaviour whether or not XcacheH is activated
>
> in xcache data folder, I have the file but the size is just under the entire size (the last chunk is missing)
> it depends on the pfc.blocksize I choose.
>
> let's say I have a file of 10MB and a pfc.blocksize set to 4MB, my downloaded file (in xcache data folder and by extension on the client machine) will be 8MB, and, in the xcache logs, I will have two 4MB chunks OK, and the last chunk will be failed and it will be mentionned that the rest (2MB) can't be downloaded because it cannot be read.
>
> [2021-05-10 10:30:18.127994 +0200][Error ][XrdClHttp ] Could not read URL: http://u23@source_server:8000//path/to/the/file?, error: [ERROR] Internal error: no such device or address: Result Invalid Read in request after 3 attempts
>
>
>
> I performed another test:
>
> I downloaded the file from the source server using curl. I have the fully downloaded file (same amount of bytes that is told by curl "Content-Length" attribute).
> I copied this file on a simple VM at our site and expose it through a basic http server (python -m SimpleHTTPServer 80)
> I downloaded the entire file through xcache! No error message in xcache logs, file is fully downloaded on xcache data folder and on client machine.
>
> So,
>
> there is no problem with the file itself
> there is no problem when downloading from the source server using curl or wget
> there is no problem between xcache and my basic http server
> but there is a problem between xcache and the source server
>
> What in the communication between xcache and the source server can prevents from reading the last chunk of a file?
>
> regards,
>
> Bertrand Rigaud
>
> Centre de Calcul de l'IN2P3 - CNRS
> 21 avenue Pierre de Coubertin
> 69627 Villeurbanne CEDEX
> Tél : 04.78.93.08.80
>
> ----- Mail original -----
> De: "Yang, Wei" <[log in to unmask]>
> À: "Bertrand RIGAUD" <[log in to unmask]>, "xrootd-l" <[log in to unmask]>
> Envoyé: Samedi 8 Mai 2021 00:46:50
> Objet: Re: http ingest using xcache fails
>
> Hmm, I think XcacheH is still more or less experimental. That said, it should still work. Can you go inside the cache directory to find a file name http/path/to/my/file and see if that file is fully cache (size, checksum) ?
>
> regards,
> --
> Wei Yang | [log in to unmask] | 650-926-3338(O)
>
> -----Original Message-----
> From: <[log in to unmask]> on behalf of Bertrand RIGAUD <[log in to unmask]>
> Date: Thursday, May 6, 2021 at 4:47 AM
> To: <[log in to unmask]>
> Subject: http ingest using xcache fails
>
> Hi,
>
> Trying to deploy this architecture (https://cvmfs.readthedocs.io/en/stable/_images/xcache2.svg), I'm facing a problem when downloading a file through http.
>
> Everythting works well till the last chunk is downloaded.
>
> As an example, here is a simple curl performed from the client machine (and this is the same behaviour with cvmfs client) :
>
> ### Through xcache server ###
>
> $ curl -v -o file1 http://my_xcache_server:1094//http://path/to/my/file
> % Total % Received % Xferd Average Speed Time Time Time Current
> Dload Upload Total Spent Left Speed
> 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0* About to connect() to my_xcache_server port 1094 (#0)
> * Trying xxx.xxx.xxx.xxx...
> * Connected to my_xcache_server (xxx.xxx.xxx.xxx) port 1094 (#0)
> > GET //http://path/to/my/file HTTP/1.1
> > User-Agent: curl/7.29.0
> > Host: my_xcache_server:1094
> > Accept: */*
> >
> < HTTP/1.1 200 OK
> < Connection: Keep-Alive
> < Content-Length: 506173152
> <
> { [data not shown]
> 99 482M 99 480M 0 0 57.9M 0 0:00:08 0:00:08 --:--:-- 29.9M* transfer closed with 2856672 bytes remaining to read
> 99 482M 99 480M 0 0 57.7M 0 0:00:08 0:00:08 --:--:-- 11.5M
> * Closing connection 0
> curl: (18) transfer closed with 2856672 bytes remaining to read
>
>
> ### Direct download ###
>
> curl -v -o file2 http://path/to/my/file
> % Total % Received % Xferd Average Speed Time Time Time Current
> Dload Upload Total Spent Left Speed
> 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0* About to connect() to source_server port 8000 (#0)
> * Trying 145.146.100.30...
> * Connected to source_server (xxx.xxx.xxx.xxx) port 8000 (#0)
> > GET path/to/my/file HTTP/1.1
> > User-Agent: curl/7.29.0
> > Host: source_server:8000
> > Accept: */*
> >
> < HTTP/1.1 200 OK
> < Connection: Keep-Alive
> < Content-Length: 506173152
> <
> { [data not shown]
> 100 482M 100 482M 0 0 101M 0 0:00:04 0:00:04 --:--:-- 101M
> * Connection #0 to host source_server left intact
>
> ### Xcache server logs (last chunk) ###
>
> 210506 08:53:05 155627 sysXrdHttp: XrdHttpReq::Data! final=1
> 210506 08:53:05 155627 unknown.2:23@clientmachine sysXrdHttp: PostProcessHTTPReq req: 2 reqstate: 481
> 210506 08:53:05 155627 unknown.2:23@clientmachine sysXrdHttp: Got data vectors to send:1
> 210506 08:53:05 155627 sysXrdHttp: Sending 1048576 bytes
> 210506 08:53:05 155627 unknown.2:23@clientmachine sysXrdHttp: Process. lp:0 reqstate: 481
> 210506 08:53:05 155627 unknown.2:23@clientmachine sysXrdHttp: Process is exiting rc:0
> 210506 08:53:05 155627 XrdPfc_IO: dump Read() 0x7fc1d00019f0 off: 503316480 size: 1048576 [log in to unmask]:8000/http/source.server:8000/path/to/file?" target="_blank">http:[log in to unmask]:8000/http/source.server:8000/path/to/file?
> 210506 08:53:05 155627 XrdPfc_File: dump Read() idx 120 http/source.server:8000/path/to/file
> 210506 08:53:05 155627 XrdPfc_File: dump inc_ref_count 0x7fc1a0403530 refcnt 1 http/source.server:8000/path/to/file
> 210506 08:53:05 155627 XrdPfc_File: dump Read() 0x7fc1f0028000inc_ref_count for existing block 0x7fc1a0403530 idx = 120 http/source.server:8000/path/to/file
> XcacheH: stagein list snapshot: available workers: 10, list length: 0
> [2021-05-06 08:53:09.092614 +0200][Error ][XrdClHttp ] Could not read URL: [log in to unmask]:8000//path/to/file?" target="_blank">http:[log in to unmask]:8000//path/to/file?, error: [ERROR] Internal error: no such device or address: Result Invalid Read in request after 3 attempts
> 210506 08:53:09 155645 XrdPfc_File: dump Prefetch enter to check download status http/source.server:8000/path/to/file
> 210506 08:53:09 155645 XrdPfc_File: debug Prefetch file is complete, stopping prefetch. http/source.server:8000/path/to/file
> 210506 08:53:09 155626 XrdPfc_File: dump ProcessBlockResponse block=0x7fc1a0403530, idx=120, off=503316480, res=-6 http/source.server:8000/path/to/file
> 210506 08:53:09 155626 XrdPfc_File: debug ProcessBlockResponse after failed prefetch on io 0x7fc1d00019f0 disabling prefetching on this io. http/source.server:8000/path/to/file
> 210506 08:53:09 155626 XrdPfc_File: error ProcessBlockResponse block 0x7fc1a0403530, idx=120, off=503316480 error=-6 http/source.server:8000/path/to/file
> 210506 08:53:09 155627 XrdPfc_File: dump Read() requested block finished 0x7fc1a0403530, is_failed()=True http/source.server:8000/path/to/file
> 210506 08:53:09 155627 XrdPfc_File: error Read() io 0x7fc1d00019f0, block 120 finished with error 6 no such device or address http/source.server:8000/path/to/file
> 210506 08:53:09 155627 XrdPfc_File: dump Read() dec_ref_count 0x7fc1a0403530 idx = 120 http/source.server:8000/path/to/file
> 210506 08:53:09 155627 XrdPfc_File: dump free_block block 0x7fc1a0403530 idx = 120 http/source.server:8000/path/to/file
> 210506 08:53:09 155627 XrdPfc_IO: warning Read() error in File::Read(), exit status=-6, error=no such device or address [log in to unmask]:8000/http/source.server:8000/path/to/file?" target="_blank">http:[log in to unmask]:8000/http/source.server:8000/path/to/file?
> 210506 08:53:09 155627 ofs_read: unknown.2:23@clientmachine Unable to read /http:/source.server:8000/path/to/file; no such device or address
> 210506 08:53:09 155627 sysXrdHttp: XrdHttpReq::Error
> 210506 08:53:09 155627 unknown.2:23@clientmachine sysXrdHttp: PostProcessHTTPReq req: 2 reqstate: 482
> 210506 08:53:09 155627 unknown.2:23@clientmachine sysXrdHttp: PostProcessHTTPReq mapping Xrd error [3005] to status code [500]
> 210506 08:53:09 155627 unknown.2:23@clientmachine sysXrdHttp: Stopping request because more data is expected but no data has been read.
> 210506 08:53:09 155627 sysXrdHttp: XrdHttpReq request ended.
> 210506 08:53:09 155627 sysXrdHttp: Cleanup
> 210506 08:53:09 155627 sysXrdHttp: Reset
> 210506 08:53:09 155627 sysXrdHttp: XrdHttpReq request ended.
> 210506 08:53:09 155627 XrootdXeq: unknown.2:23@clientmachine disc 0:00:09 (send failure)
> 210506 08:53:09 155627 XrdPfc_File: debug ioActive start for io 0x7fc1d00019f0 http/path/to/file
> 210506 08:53:09 155627 XrdPfc_File: info ioActive for io 0x7fc1d00019f0, active_prefetches 0, allow_prefetching False, ioactive_false_reported False, ios_in_detach 0
> 210506 08:53:09 155627 XrdPfc_File: info io_map.size() 1, block_map.size() 0, file http/path/to/file
> 210506 08:53:09 155627 XrdPfc_File: info ioActive for io 0x7fc1d00019f0 returning False, file http/path/to/file
> 210506 08:53:09 155627 XrdPfc_IO: info DetachFinalize() 0x7fc1d00019f0
> 210506 08:53:09 155627 XrdPfc_Cache: debug ReleaseFile http/path/to/file, io 0x7fc1d00019f0
> 210506 08:53:09 155627 XrdPfc_File: debug RemoveIO() io = 0x7fc1d00019f0 http/path/to/file
> 210506 08:53:09 155627 XrdPfc_Cache: debug dec_ref_cnt http/path/to/file, cnt at entry = 1
> 210506 08:53:09 155627 XrdPfc_File: debug FinalizeSyncBeforeExit requesting sync to write detach stats http/path/to/file
> 210506 08:53:09 155627 XrdPfc_Cache: debug dec_ref_cnt http/path/to/file, scheduling final sync
> 210506 08:53:09 155627 XrdPfc_IO: debug ~IOEntireFile() 0x7fc1d00019f0 [log in to unmask]:8000/http/path/to/file?" target="_blank">http:[log in to unmask]:8000/http/path/to/file?
> 210506 08:53:09 155627 Posix_PrepIODisable: Disabling defered open [log in to unmask]:8000//path/to/file?" target="_blank">http:[log in to unmask]:8000//path/to/file?
> 210506 08:53:09 160872 XrdPfc_File: dump Sync() http/path/to/file
> 210506 08:53:09 160872 XrdPfc_File: dump Sync 0 blocks written during sync http/path/to/file
> 210506 08:53:09 160872 XrdPfc_Cache: debug dec_ref_cnt http/path/to/file, cnt at entry = 1
> 210506 08:53:09 160872 XrdPfc_File: debug FinalizeSyncBeforeExit sync not required http/path/to/file
> 210506 08:53:09 160872 XrdPfc_Cache: debug dec_ref_cnt http/path/to/file, cnt after sync_check and dec_ref_cnt = 0
> 210506 08:53:09 160872 XrdPfc_File: debug ~File() close info http/path/to/file
> 210506 08:53:09 160872 XrdPfc_File: debug ~File() close output http/path/to/file
> 210506 08:53:09 160872 XrdPfc_File: debug ~File() ended, prefetch score = 3.95238 http/path/to/file
> 210506 08:53:11 155631 Posix_DDestroy: DLY destory of 1 objects; 0 already lost.
> 210506 08:53:11 155631 Posix_DDestroy: DLY destory end; 0 objects deferred and 0 lost.
>
> ### Xcache config ###
>
> all.role proxy server
>
> all.export /http:/
> all.export /https:/
>
> ofs.osslib libXrdPss.so
>
> xrootd.seclib /usr/lib64/libXrdSec.so
>
> pss.origin =http,https
>
> # US data servers
> pss.permit source.server
> pss.permit source.server
> pss.permit source.server
> pss.permit source.server
> pss.permit source.server
> pss.permit source.server
> pss.permit source.server
> # EU data servers
> pss.permit source.server
> pss.permit source.server
> pss.permit source.server
>
> pss.cachelib libXrdPfc.so
> pss.config streams 8
>
> # XcacheH
> pss.namelib -lfncachesrc+ /usr/lib64/XrdName2NameXcacheH.so cacheLife=1d cacheBlockSize=4m
> pss.ccmlib /usr/lib64/XrdName2NameXcacheH.so
>
> oss.localroot /xcache/ns
>
> # Metadata directories (cinfo files)
> oss.space meta /xcache/meta
>
> # Data directories
> oss.space data /xcache/data
>
> # Xcache spaces assignement
> pfc.spaces data meta
>
> if exec xrootd
> xrd.protocol http:1094 libXrdHttp.so
> fi
>
> pfc.diskusage 0.90 0.95
>
> pfc.ram 6g
> pfc.blocksize 4M
> pfc.prefetch 32
>
> pfc.trace dump
> http.trace all
> pss.trace all
> pss.debug
>
> ### xrootd version: 5.1.1 ###
>
> As a result, I got an almost file downloaded on client side, and also in xcache server, cached data is an almost file. Just this last chunk missing.
>
> Are there directives missing in congig file?
>
> Thank you,
>
> Bertrand Rigaud
>
> Centre de Calcul de l'IN2P3 - CNRS
> 21 avenue Pierre de Coubertin
> 69627 Villeurbanne CEDEX
> Tél : 04.78.93.08.80
>
> ########################################################################
> Use REPLY-ALL to reply to list
>
> To unsubscribe from the XROOTD-L list, click the following link:
> https://listserv.slac.stanford.edu/cgi-bin/wa?SUBED1=XROOTD-L&A=1
>
> ########################################################################
> Use REPLY-ALL to reply to list
>
> To unsubscribe from the XROOTD-L list, click the following link:
> https://listserv.slac.stanford.edu/cgi-bin/wa?SUBED1=XROOTD-L&A=1
>
########################################################################
Use REPLY-ALL to reply to list
To unsubscribe from the XROOTD-L list, click the following link:
https://listserv.slac.stanford.edu/cgi-bin/wa?SUBED1=XROOTD-L&A=1
|