Project

General

Profile

Bug #37445

RGW Swift API issue with repeatable downloading large object when range of bytes is required

Added by Patrick Andrews about 4 years ago. Updated about 4 years ago.

Status:
New
Priority:
Normal
Assignee:
-
Target version:
% Done:

0%

Source:
Community (user)
Tags:
RGW Swift API
Backport:
Regression:
No
Severity:
3 - minor
Reviewed:
Affected Versions:
ceph-qa-suite:
Pull request ID:
Crash signature (v1):
Crash signature (v2):

Description

Steps to reproduce:
1. Create dynamic large object (TEST_BUCKET/container2/largeobject/object2)
2. Upload three segments of the large object (each one 0x10000 bytes)
TEST_BUCKET/container2/largeobject/object200,
TEST_BUCKET/container2/largeobject/object201,
TEST_BUCKET/container2/largeobject/object202
3. Download byte range 0x20000 - 0x20100 for this large object. First time downloading works as expected
4. Try to download the same byte range for the same object. This time server returns truncated Content-Range header (see full response from Wireshark below)

Frame 201: 1420 bytes on wire (11360 bits), 1420 bytes captured (11360 bits) on interface 0
Ethernet II, Src: Cimsys_33:44:55 (00:11:22:33:44:55), Dst: Cisco_3c:7a:00 (00:05:9a:3c:7a:00)
Internet Protocol Version 4, Src: 10.26.81.3 (10.26.81.3), Dst: 10.7.36.102 (10.7.36.102)
Transmission Control Protocol, Src Port: 7480 (7480), Dst Port: 57369 (57369), Seq: 66128, Ack: 765, Len: 1366
Hypertext Transfer Protocol
ntent-Range: bytes 131072-131328/196608\r\n
Content-Length: 257\r\n
Accept-Ranges: bytes\r\n
Last-Modified: Mon, 01 Oct 2018 19:01:11 GMT\r\n
X-Timestamp: 1538420471.24409\r\n
etag: "8314d1f59b31ad00faaa2de7b64ff349"\r\n
X-Object-Meta-Lo-Key1: lo-value1\r\n
X-Object-Meta-Lo-Key2: lo-value2\r\n
X-Object-Meta-Lo-Key3: lo-value3\r\n
X-Object-Manifest: TEST_BUCKET/container2/largeobject/object2\r\n
X-Trans-Id: tx000000000000000000fbe-005bb27143-1056-default\r\n
Content-Type: binary/octet-stream\r\n
Date: Mon, 01 Oct 2018 19:11:00 GMT\r\n
Connection: Keep-Alive\r\n
\r\n
Media Type
Media Type: binary/octet-stream (257 bytes)

History

#1 Updated by Patrick Andrews about 4 years ago

Patrick Andrews wrote:

Steps to reproduce:
1. Create dynamic large object (TEST_BUCKET/container2/largeobject/object2)
2. Upload three segments of the large object (each one 0x10000 bytes)
TEST_BUCKET/container2/largeobject/object200,
TEST_BUCKET/container2/largeobject/object201,
TEST_BUCKET/container2/largeobject/object202
3. Download byte range 0x20000 - 0x20100 for this large object. First time downloading works as expected
4. Try to download the same byte range for the same object. This time server returns truncated Content-Range header

#2 Updated by Patrick Andrews about 4 years ago

It would appear this issue is specific to the JOSS client, curl is not impacted.

Also available in: Atom PDF