Project

General

Profile

Actions

Bug #11579

closed

Copyup operation for deep flatten cannot use current parent extents

Added by Jason Dillaman almost 9 years ago. Updated almost 9 years ago.

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
Actions #1

Updated by Jason Dillaman almost 9 years ago

  • Status changed from In Progress to Fix Under Review
Actions #2

Updated by Jason Dillaman almost 9 years ago

  • Status changed from Fix Under Review to Resolved
Actions

Also available in: Atom PDF