Project

General

Profile

Bug #14030

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

Added by Jason Dillaman about 3 years ago. Updated almost 3 years ago.

Status:
Resolved
Priority:
Normal
Assignee:
-
Target version:
-
Start date:
12/09/2015
Due date:
% Done:

0%

Source:
other
Tags:
Backport:
hammer,infernalis
Regression:
No
Severity:
3 - minor
Reviewed:
Affected Versions:
ceph-qa-suite:
Pull request ID:

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

Copied to rbd - Backport #14062: infernalis: rbd merge-diff doesn't properly handle >2GB diffs Resolved
Copied to rbd - Backport #14063: hammer: rbd merge-diff doesn't properly handle >2GB diffs Resolved

Associated revisions

Revision 68125dd0 (diff)
Added by Yunchuan Wen about 3 years ago

librbd: fix merge-diff for >2GB diff-files

from http://tracker.ceph.com/issues/14030

Fixes: #14030

Signed-off-by: Yunchuan Wen <>

History

#1 Updated by Jason Dillaman about 3 years ago

  • Description updated (diff)

#2 Updated by Jason Dillaman about 3 years ago

  • Backport set to hammer,infernalis

#3 Updated by Josh Durgin about 3 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

#4 Updated by Josh Durgin about 3 years ago

  • Status changed from New to Pending Backport

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

#5 Updated by Loic Dachary about 3 years ago

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

#6 Updated by Loic Dachary about 3 years ago

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

#7 Updated by Abhishek Varshney about 3 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.

#8 Updated by Josh Durgin about 3 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.

#9 Updated by Abhishek Varshney about 3 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.

#10 Updated by Nathan Cutler almost 3 years ago

  • Status changed from Pending Backport to Resolved

Also available in: Atom PDF