Actions
Bug #11579
closedCopyup operation for deep flatten cannot use current parent extents
Status:
Resolved
Priority:
High
Assignee:
Jason Dillaman
Target version:
-
% Done:
0%
Source:
other
Tags:
Backport:
Regression:
No
Severity:
3 - minor
Reviewed:
Affected Versions:
ceph-qa-suite:
Pull request ID:
Crash signature (v1):
Crash signature (v2):
Description
If an image has shrunk in size after an existing snapshot, it's possible that the copyup operation will only read the current truncated extents from the parent instead of the larger extents from the earliest snapshot. This only affects snapshot reads from objects that were later internally truncated during the resize operation.
An example failure for fsx is included below. The HEAD validates correctly, but a clone based off the earlier (pre-resize snapshot) is missing data due to the incomplete copyup.
736 clone 8 order 19 su 8192 sc 2 truncating image image_client.0-clone7 from 0x81bd1ad (overlap 0x73d3a3d) to 0xb9529f checking clone #6, image image_client.0-clone6 against file /home/jdillaman/archive/fsx-image_client.0-parent7 738 read 0x0 thru 0x81bd1ac (0x81bd1ad bytes) READ BAD DATA: offset = 0x0, size = 0x81bd1ad, fname = image_client.0 OFFSET GOOD BAD RANGE 0xee4444 0x2826 0x0000 0x 0 operation# (mod 256) for the bad data unknown, check HOLE and EXTEND ops 0xee4445 0x2628 0x0000 0x 1 operation# (mod 256) for the bad data unknown, check HOLE and EXTEND ops 0xee4446 0x2802 0x0000 0x 2 operation# (mod 256) for the bad data unknown, check HOLE and EXTEND ops 0xee4447 0x0228 0x0000 0x 3 operation# (mod 256) for the bad data unknown, check HOLE and EXTEND ops 0xee4448 0x2885 0x0000 0x 4 operation# (mod 256) for the bad data unknown, check HOLE and EXTEND ops 0xee4449 0x8528 0x0000 0x 5 operation# (mod 256) for the bad data unknown, check HOLE and EXTEND ops 0xee444a 0x283b 0x0000 0x 6 operation# (mod 256) for the bad data unknown, check HOLE and EXTEND ops 0xee444b 0x3b28 0x0000 0x 7 operation# (mod 256) for the bad data unknown, check HOLE and EXTEND ops 0xee444c 0x28f0 0x0000 0x 8 operation# (mod 256) for the bad data unknown, check HOLE and EXTEND ops 0xee444d 0xf028 0x0000 0x 9 operation# (mod 256) for the bad data unknown, check HOLE and EXTEND ops 0xee444e 0x28d0 0x0000 0x a operation# (mod 256) for the bad data unknown, check HOLE and EXTEND ops 0xee444f 0xd028 0x0000 0x b operation# (mod 256) for the bad data unknown, check HOLE and EXTEND ops 0xee4450 0x28b3 0x0000 0x c operation# (mod 256) for the bad data unknown, check HOLE and EXTEND ops 0xee4451 0xb328 0x0000 0x d operation# (mod 256) for the bad data unknown, check HOLE and EXTEND ops 0xee4452 0x28e8 0x0000 0x e operation# (mod 256) for the bad data unknown, check HOLE and EXTEND ops 0xee4453 0xe828 0x0000 0x f operation# (mod 256) for the bad data unknown, check HOLE and EXTEND ops
Updated by Jason Dillaman almost 9 years ago
- Status changed from In Progress to Fix Under Review
master PR: https://github.com/ceph/ceph/pull/4730
Updated by Jason Dillaman almost 9 years ago
- Status changed from Fix Under Review to Resolved
Actions