Project

General

Profile

Actions

Bug #14030

closed

rbd merge-diff doesn't properly handle >2GB diffs

Added by Jason Dillaman over 8 years ago. Updated about 8 years ago.

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

0%

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

Description

It is using lseek instead of lseek64 -- resulting in an overflow.

lseek(4, 4096, SEEK_CUR)                = 2147504762
write(2, "rbd: failed to skip first diff d"..., 35rbd: failed to skip first diff data) = 35

Related issues 2 (0 open2 closed)

Copied to rbd - Backport #14062: infernalis: rbd merge-diff doesn't properly handle >2GB diffsResolvedJason DillamanActions
Copied to rbd - Backport #14063: hammer: rbd merge-diff doesn't properly handle >2GB diffsResolvedJason DillamanActions
Actions #1

Updated by Jason Dillaman over 8 years ago

  • Description updated (diff)
Actions #2

Updated by Jason Dillaman over 8 years ago

  • Backport set to hammer,infernalis
Actions #3

Updated by Josh Durgin over 8 years ago

  • Subject changed from rbd merge-diff doesn't properly handle >2GB images to rbd merge-diff doesn't properly handle >2GB diffs

It only seeks to skip parts of the first diff that were overwritten, so a workaround would be to pass the first diff via stdin, i.e.

cat snap1.diff | rbd merge-diff - snap2.diff combined.diff

Actions #4

Updated by Josh Durgin over 8 years ago

  • Status changed from New to Pending Backport

https://github.com/ceph/ceph/pull/6889
commit:68125dd01349edf93cfa1af5028c2d438b5ae089

Actions #5

Updated by Loïc Dachary over 8 years ago

  • Copied to Backport #14062: infernalis: rbd merge-diff doesn't properly handle >2GB diffs added
Actions #6

Updated by Loïc Dachary over 8 years ago

  • Copied to Backport #14063: hammer: rbd merge-diff doesn't properly handle >2GB diffs added
Actions #7

Updated by Abhishek Varshney over 8 years ago

src/tools/rbd/action/MergeDiff.cc doesn't exist for hammer and infernalis. This may require backporting fa4e00f8c85603ed202bfef2f3be6086482fbbb2 and c7f71d14a5d31d14f3556a1f1f2a991b5ea0a75d too. Please confirm.

Actions #8

Updated by Josh Durgin over 8 years ago

No other backports are needed for this - the same change should just be applied to src/rbd.cc in infernalis and hammer. If you like Jason or I can do it. This will be a common issue with rbd backports to infernalis and hammer since there's been a lot of refactoring recently.

Actions #9

Updated by Abhishek Varshney over 8 years ago

Thanks Josh. I have assigned http://tracker.ceph.com/issues/14062 to you for now. I would look out for rbd backports in future.

Actions #10

Updated by Nathan Cutler about 8 years ago

  • Status changed from Pending Backport to Resolved
Actions

Also available in: Atom PDF