Project

General

Profile

Bug #11455

COPYing an old object onto itself produces a truncated object

Added by Benjamin Gilbert over 8 years ago. Updated about 8 years ago.

Status:
Resolved
Priority:
High
Assignee:
Target version:
-
% Done:

0%

Source:
Community (user)
Tags:
Backport:
hammer, firefly
Regression:
No
Severity:
2 - major
Reviewed:
Affected Versions:
ceph-qa-suite:
Pull request ID:
Crash signature (v1):
Crash signature (v2):

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

Copied to rgw - Backport #12879: COPYing an old object onto itself produces a truncated object Resolved 04/23/2015
Copied to rgw - Backport #12880: COPYing an old object onto itself produces a truncated object Resolved 04/23/2015

Associated revisions

Revision d7bf8cb5 (diff)
Added by Yehuda Sadeh over 8 years ago

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 <>

Revision 644f213c (diff)
Added by Yehuda Sadeh over 8 years ago

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 <>
(cherry picked from commit d7bf8cb594e5276d1c80544f5ec954d52b159750)

Revision b80859e2 (diff)
Added by Yehuda Sadeh over 8 years ago

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 <>
(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

#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

Also available in: Atom PDF