Bug #11455
COPYing an old object onto itself produces a truncated object
0%
Description
On at least Giant and Hammer, COPYing an object onto itself (e.g., to change its metadata) reliably produces a truncated object, if the source object was originally created with an older rgw (tested with Emperor) using a non-multi-part upload. If the object was originally created via a multi-part upload, or was created with a newer rgw (tested with Giant and Hammer), the problem does not occur.
The truncated object has correct metadata, including the original size, but the underlying RADOS object is smaller. When a client attempts to fetch the object, it receives less data than indicated by the Content-Length, blocks for more, and eventually times out.
How reproducible:
always
Steps to Reproduce:
1. Install dumpling
2. Create object > 512k
3. Upgrade
4. Copy object into itself (modify attributes)
Actual results:
Object cannot be read successfully
Expected results:
Object should be read successfully
Related issues
Associated revisions
rgw: init some manifest fields when handling explicit objs
Fixes: #11455
When dealing with old manifest that has explicit objs, we also
need to set the head size and head object correctly so that
code that relies on this info doesn't break.
Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
rgw: init some manifest fields when handling explicit objs
Fixes: #11455
When dealing with old manifest that has explicit objs, we also
need to set the head size and head object correctly so that
code that relies on this info doesn't break.
Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
(cherry picked from commit d7bf8cb594e5276d1c80544f5ec954d52b159750)
rgw: init some manifest fields when handling explicit objs
Fixes: #11455
When dealing with old manifest that has explicit objs, we also
need to set the head size and head object correctly so that
code that relies on this info doesn't break.
Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
(cherry picked from commit d7bf8cb594e5276d1c80544f5ec954d52b159750)
History
#1 Updated by Yehuda Sadeh over 8 years ago
- Assignee set to Orit Wasserman
- Priority changed from Normal to High
- Regression set to No
#2 Updated by Yehuda Sadeh over 8 years ago
- Assignee changed from Orit Wasserman to Yehuda Sadeh
#3 Updated by Yehuda Sadeh over 8 years ago
- Status changed from New to Fix Under Review
#4 Updated by Yehuda Sadeh over 8 years ago
- Status changed from Fix Under Review to Pending Backport
- Backport set to hammer, firefly
#5 Updated by Nathan Cutler over 8 years ago
Master PR: https://github.com/ceph/ceph/pull/5677
#6 Updated by Loïc Dachary about 8 years ago
- Description updated (diff)
#7 Updated by Loïc Dachary about 8 years ago
- Status changed from Pending Backport to Resolved