Project

General

Profile

Actions

Bug #63597

closed

rgw: multi-part upload will make head object metadata error during a breakpoint continuation by using aws java Signature Version 4

Added by tao song 6 months ago. Updated 3 months ago.

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

0%

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

Description

There is a bug when you do a breakpoint continuation by using aws java Signature Version 4. The head object metadata will lost some shadow object info:
The breakpoint continuation follow steps:
(1)s3Client.initiateMultipartUpload(initRequest);
(2)UploadPartResult uploadResult = s3Client.uploadPart(uploadRequest);
(3)CompleteMultipartUploadResult completeMultipartUploadResult=s3Client.completeMultipartUpload(compRequest);
The head object manifest info:
[root@node211 ~]# rados -p rc.rgw.buckets.data getxattr bbf5c244-e3d0-4220-a8f4-f7a90faaee49.15262.2_breakUpload_37838487448401369855 user.rgw.manifest | ceph-dencoder type RGWObjManifest import - decode dump_json {
"objs": [],
"obj_size": 67198167,
"explicit_objs": "false",
"head_size": 0,
"max_head_size": 0,
"prefix": "breakUpload_37838487448401369855.2~5vigOkgbxMGK7rYevMLoV0Ls0fJJC5c",
"rules": [ {
"key": 0,
"val": {
"start_part_num": 1,
"start_ofs": 0,
"part_size": 6291456,
"stripe_max_size": 4194304,
"override_prefix": ""
}
}, {
"key": 6291456,
"val": {
"start_part_num": 2,
"start_ofs": 6291456,
"part_size": 4194304,
"stripe_max_size": 4194304,
"override_prefix": ""
}
}, {
"key": 10485760,
"val": {
"start_part_num": 3,
"start_ofs": 10485760,
"part_size": 6291456,
"stripe_max_size": 4194304,
"override_prefix": ""
}
},
......
We can see the part2 part_size is 4MB , but part1 and part3 part_size is 6MB,we set multipart size 6MB,the object stripe is 4MB.
We list rados object info:
[root@node211 ~]# rados -p rc.rgw.buckets.data ls |grep bbf5c244-e3d0-4220-a8f4-f7a90faaee49.15262|grep 3783848744840136985 |grep shadow |sort
bbf5c244-e3d0-4220-a8f4-f7a90faaee49.15262.2__shadow_breakUpload_37838487448401369855.2~5vigOkgbxMGK7rYevMLoV0Ls0fJJC5c.10_1
bbf5c244-e3d0-4220-a8f4-f7a90faaee49.15262.2__shadow_breakUpload_37838487448401369855.2~5vigOkgbxMGK7rYevMLoV0Ls0fJJC5c.1_1
bbf5c244-e3d0-4220-a8f4-f7a90faaee49.15262.2__shadow_breakUpload_37838487448401369855.2~5vigOkgbxMGK7rYevMLoV0Ls0fJJC5c.11_1
bbf5c244-e3d0-4220-a8f4-f7a90faaee49.15262.2__shadow_breakUpload_37838487448401369855.2~5vigOkgbxMGK7rYevMLoV0Ls0fJJC5c.2_1
bbf5c244-e3d0-4220-a8f4-f7a90faaee49.15262.2__shadow_breakUpload_37838487448401369855.2~5vigOkgbxMGK7rYevMLoV0Ls0fJJC5c.3_1
bbf5c244-e3d0-4220-a8f4-f7a90faaee49.15262.2__shadow_breakUpload_37838487448401369855.2~5vigOkgbxMGK7rYevMLoV0Ls0fJJC5c.4_1
bbf5c244-e3d0-4220-a8f4-f7a90faaee49.15262.2__shadow_breakUpload_37838487448401369855.2~5vigOkgbxMGK7rYevMLoV0Ls0fJJC5c.5_1
bbf5c244-e3d0-4220-a8f4-f7a90faaee49.15262.2__shadow_breakUpload_37838487448401369855.2~5vigOkgbxMGK7rYevMLoV0Ls0fJJC5c.6_1
bbf5c244-e3d0-4220-a8f4-f7a90faaee49.15262.2__shadow_breakUpload_37838487448401369855.2~5vigOkgbxMGK7rYevMLoV0Ls0fJJC5c.7_1
bbf5c244-e3d0-4220-a8f4-f7a90faaee49.15262.2__shadow_breakUpload_37838487448401369855.2~5vigOkgbxMGK7rYevMLoV0Ls0fJJC5c.8_1
bbf5c244-e3d0-4220-a8f4-f7a90faaee49.15262.2__shadow_breakUpload_37838487448401369855.2~5vigOkgbxMGK7rYevMLoV0Ls0fJJC5c.9_1
[root@node211 ~]# rados -p rc.rgw.buckets.data ls |grep bbf5c244-e3d0-4220-a8f4-f7a90faaee49.15262|grep 3783848744840136985 |grep multi |sort
bbf5c244-e3d0-4220-a8f4-f7a90faaee49.15262.2__multipart_breakUpload_37838487448401369855.2~5vigOkgbxMGK7rYevMLoV0Ls0fJJC5c.1
bbf5c244-e3d0-4220-a8f4-f7a90faaee49.15262.2__multipart_breakUpload_37838487448401369855.2~5vigOkgbxMGK7rYevMLoV0Ls0fJJC5c.10
bbf5c244-e3d0-4220-a8f4-f7a90faaee49.15262.2__multipart_breakUpload_37838487448401369855.2~5vigOkgbxMGK7rYevMLoV0Ls0fJJC5c.11
bbf5c244-e3d0-4220-a8f4-f7a90faaee49.15262.2__multipart_breakUpload_37838487448401369855.2~5vigOkgbxMGK7rYevMLoV0Ls0fJJC5c.12
bbf5c244-e3d0-4220-a8f4-f7a90faaee49.15262.2__multipart_breakUpload_37838487448401369855.2~5vigOkgbxMGK7rYevMLoV0Ls0fJJC5c.2
bbf5c244-e3d0-4220-a8f4-f7a90faaee49.15262.2__multipart_breakUpload_37838487448401369855.2~5vigOkgbxMGK7rYevMLoV0Ls0fJJC5c.3
bbf5c244-e3d0-4220-a8f4-f7a90faaee49.15262.2__multipart_breakUpload_37838487448401369855.2~5vigOkgbxMGK7rYevMLoV0Ls0fJJC5c.4
bbf5c244-e3d0-4220-a8f4-f7a90faaee49.15262.2__multipart_breakUpload_37838487448401369855.2~5vigOkgbxMGK7rYevMLoV0Ls0fJJC5c.5
bbf5c244-e3d0-4220-a8f4-f7a90faaee49.15262.2__multipart_breakUpload_37838487448401369855.2~5vigOkgbxMGK7rYevMLoV0Ls0fJJC5c.6
bbf5c244-e3d0-4220-a8f4-f7a90faaee49.15262.2__multipart_breakUpload_37838487448401369855.2~5vigOkgbxMGK7rYevMLoV0Ls0fJJC5c.7
bbf5c244-e3d0-4220-a8f4-f7a90faaee49.15262.2__multipart_breakUpload_37838487448401369855.2~5vigOkgbxMGK7rYevMLoV0Ls0fJJC5c.8
bbf5c244-e3d0-4220-a8f4-f7a90faaee49.15262.2__multipart_breakUpload_37838487448401369855.2~5vigOkgbxMGK7rYevMLoV0Ls0fJJC5c.9
We can see the part2 shadow object is exist,and it is size 2MB
[root@node211 ~]# rados -p rc.rgw.buckets.data stat bbf5c244-e3d0-4220-a8f4-f7a90faaee49.15262.2__shadow_breakUpload_37838487448401369855.2~5vigOkgbxMGK7rYevMLoV0Ls0fJJC5c.2_1
rc.rgw.buckets.data/bbf5c244-e3d0-4220-a8f4-f7a90faaee49.15262.2__shadow_breakUpload_37838487448401369855.2~5vigOkgbxMGK7rYevMLoV0Ls0fJJC5c.2_1 mtime 2023-11-20 15:26:38.000000, size 2097152


Related issues 1 (1 open0 closed)

Has duplicate rgw - Bug #63642: rgw: rados objects wrongly deletedPending BackportCasey Bodley

Actions
Actions #1

Updated by Casey Bodley 6 months ago

  • Status changed from New to Need More Info
  • Tags set to multipart

tao song wrote:

There is a bug when you do a breakpoint continuation by using aws java Signature Version 4.

can you clarify what this means? are you using a java debugger to introduce a pause into the client's upload? how long is the pause, and when?

Affected Versions: v12.2.12

is this accurate? the ceph luminous release is long past end-of-life. please check whether this issue can be reproduced against a supported ceph version (see https://docs.ceph.com/en/latest/releases/index.html#active-releases)

Actions #2

Updated by Casey Bodley 3 months ago

  • Has duplicate Bug #63642: rgw: rados objects wrongly deleted added
Actions #3

Updated by Casey Bodley 3 months ago

  • Status changed from Need More Info to Duplicate
Actions

Also available in: Atom PDF