Print

Print


The log file below shows what I'm trying to do, including the HTTP request headers. It seems that when the sum of the byte ranges requested in `Range` gets long enough, there's a `Read vector is too long` error that gets propagated as a `500 Internal Server Error`. This is quite surprising, as the total data requested here is not particularly large at all (130 MiB).

```
230323 20:08:36 3065540 http_Protocol:  rc:81 got hdr line: GET //home/mproffit/iris/tmp/00DF0A73-17C2-E511-B086-E41D2D08DE30.root HTTP/1.1^M

230323 20:08:36 3065540 http_Protocol:  Parsing first line: GET //home/mproffit/iris/tmp/00DF0A73-17C2-E511-B086-E41D2D08DE30.root HTTP/1.1^M

230323 20:08:36 3065540 http_Protocol:  rc:22 got hdr line: Host: localhost:1094^M

230323 20:08:36 3065540 http_Protocol:  rc:27 got hdr line: Accept-Encoding: identity^M

230323 20:08:36 3065540 http_Protocol:  rc:136 got hdr line: Range: bytes=53445211-77058188, 77130795-100499541, 100572148-124999036, 125071643-148689343, 148761950-170010705, 170083313-190163055^M

230323 20:08:36 3065540 http_Protocol:  rc:2 got hdr line: ^M

230323 20:08:36 3065540 http_Protocol:  rc:2 detected header end.
230323 20:08:36 3065540 XrootdBridge: unknown.7:22@localhost login as nobody
230323 20:08:36 3065540 unknown.7:22@localhost http_Protocol:  Process. lp:0x7fb80c0051b8 reqstate: 0
230323 20:08:36 3065540 unknown.7:22@localhost XrootdProtocol: 0000 Bridge req=3017 dlen=67 blen=67
230323 20:08:36 3065540 unknown.7:22@localhost http_Protocol: Process is exiting rc:0
230323 20:08:36 3065540 unknown.7:22@localhost XrootdProtocol: 0000 rc=0 stat /home/mproffit/iris/tmp/00DF0A73-17C2-E511-B086-E41D2D08DE30.root
230323 20:08:36 3065540 unknown.7:22@localhost XrootdResponse: 0000 sending 88 data bytes
230323 20:08:36 3065540 http_Req:  XrdHttpReq::Data! final=False
230323 20:08:36 3065540 unknown.7:22@localhost http_Req: PostProcessHTTPReq req: 2 reqstate: 0
230323 20:08:36 3065540 unknown.7:22@localhost http_Req: Stat for GET /home/mproffit/iris/tmp/00DF0A73-17C2-E511-B086-E41D2D08DE30.root stat=243313213033154561 212708063 48 1679595730 1679595730 1679595722 0644 mproffit mproffit
230323 20:08:36 3065540 unknown.7:22@localhost http_Protocol:  Process. lp:(nil) reqstate: 0
230323 20:08:36 3065540 unknown.7:22@localhost XrootdProtocol: 0000 Bridge req=3010 dlen=67 blen=67
230323 20:08:36 3065540 unknown.7:22@localhost http_Protocol: Process is exiting rc:0
230323 20:08:36 3065540 unknown.7:22@localhost XrootdProtocol: 0000 open rt //home/mproffit/iris/tmp/00DF0A73-17C2-E511-B086-E41D2D08DE30.root
230323 20:08:36 3065540 unknown.7:22@localhost XrootdResponse: 0000 sending 100 data bytes; status=0
230323 20:08:36 3065540 http_Req:  XrdHttpReq::Data! final=True
230323 20:08:36 3065540 unknown.7:22@localhost http_Req: PostProcessHTTPReq req: 2 reqstate: 1
230323 20:08:36 3065540 unknown.7:22@localhost http_Req: fhandle:0:0:0:0
230323 20:08:36 3065540 unknown.7:22@localhost http_Protocol: Sending resp: 206 header len:159
230323 20:08:36 3065540 http_Protocol: Sending 159 bytes
230323 20:08:36 3065540 unknown.7:22@localhost http_Protocol:  Process. lp:(nil) reqstate: 1
230323 20:08:36 3065540 unknown.7:22@localhost XrootdProtocol: 0000 Bridge req=3025 dlen=16720 blen=16720
230323 20:08:36 3065540 unknown.7:22@localhost http_Protocol: Process is exiting rc:0
230323 20:08:36 3065540 unknown.7:22@localhost XrootdResponse: 0000 sending err 3002: Read vector is too long
230323 20:08:36 3065540 http_Req:  XrdHttpReq::Error
230323 20:08:36 3065540 unknown.7:22@localhost http_Req: PostProcessHTTPReq req: 2 reqstate: 2
230323 20:08:36 3065540 unknown.7:22@localhost http_Req: PostProcessHTTPReq mapping Xrd error [3002] to status code [500]
230323 20:08:36 3065540 unknown.7:22@localhost http_Protocol: Sending resp: 500 header len:100
230323 20:08:36 3065540 http_Protocol: Sending 100 bytes
230323 20:08:36 3065540 http_Protocol: Sending 24 bytes
230323 20:08:36 3065540 http_Req:  XrdHttpReq request ended.
230323 20:08:36 3065540 http_Protocol:  Cleanup
230323 20:08:36 3065540 http_Protocol:  Reset
230323 20:08:36 3065540 http_Req:  XrdHttpReq request ended.
230323 20:08:36 3065540 XrootdXeq: unknown.7:22@localhost disc 0:00:00 (send failure)
```

This is with XRootD v5.5.3. I first saw this on the UNL server and then tested that I could reproduce it locally.

-- 
Reply to this email directly or view it on GitHub:
https://github.com/xrootd/xrootd/issues/1976
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