Bug #12885
rbd export-diff crashes in librbd::simple_diff_cb
0%
Description
When doing rbd export-diff, I get a crash. Most other images on the same cluster work fine.
rbd info AlignNav-db::
rbd image 'AlignNav-db':
size 11100 MB in 2775 objects
order 22 (4096 kB objects)
block_name_prefix: rbd_data.6bb2042eb141f2
format: 2
features: layering
flags:
parent: rbd/_align_partial_db@2015-08-29.001
overlap: 11100 MB
rbd export-diff AlignNav-db fil::
librbd/internal.cc: In function 'int librbd::simple_diff_cb(uint64_t, size_t, int, void*)' thread 7f7539f20840 time 2015-08-31 10:48:36.797179
librbd/internal.cc: 2815: FAILED assert(exists)
(full log attached)
This is the 0.94.3-1trusty release.
Related issues
Associated revisions
librbd: diff_iterate needs to handle holes in parent images
If a clone's parent image snapshot includes a discarded extent,
this was previously causing an assert failure. Instead, ignore
any discard holes in the parent image.
Fixes: #12885
Backport: hammer
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
librbd: diff_iterate needs to handle holes in parent images
If a clone's parent image snapshot includes a discarded extent,
this was previously causing an assert failure. Instead, ignore
any discard holes in the parent image.
Fixes: #12885
Backport: hammer
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
(cherry picked from commit 3ccc3bb4bd35e57209852d460633e371b4d004e2)
Conflicts:
src/librbd/DiffIterate.cc : file doesn't exist in hammer, logic is in internal.cc
History
#1 Updated by Loïc Dachary over 8 years ago
- Project changed from Ceph to rbd
#2 Updated by Jason Dillaman over 8 years ago
- Status changed from New to Need More Info
Can you please add the following to your ceph.conf, re-run the failed 'rbd export-diff', and attach the resulting log? I have a theory as to the cause but I will need the logs to verify. Thanks.
ceph.conf
[client] debug rados = 20 debug rbd = 20 log file = /path/to/log/file/$name.$pid.log
#3 Updated by Thorvald Natvig over 8 years ago
- File client.admin.21649.log.gz added
Here you go. Had to compress it to avoid "request entity too large".
#4 Updated by Jason Dillaman over 8 years ago
- Status changed from Need More Info to In Progress
- Assignee set to Jason Dillaman
- Source changed from other to Community (user)
Thanks for the prompt reply, your logs confirmed my suspicion. For a short-term workaround until the fix propagates down to Hammer, you should create a snapshot on AlignNav-db, run a regular 'rbd export AlignNav-db@<base snap>', then you should be able to run 'rbd export diff --from-snap AlignNav-db@<base snap> AlignNav-db@<incremental snap>' to acquire your incremental diffs.
#5 Updated by Jason Dillaman over 8 years ago
master PR: https://github.com/ceph/ceph/pull/5843
#6 Updated by Jason Dillaman over 8 years ago
- Status changed from In Progress to Fix Under Review
#7 Updated by Jason Dillaman over 8 years ago
- Backport set to hammer
#8 Updated by Jason Dillaman over 8 years ago
- Status changed from Fix Under Review to Pending Backport
#9 Updated by Jason Dillaman over 8 years ago
- Status changed from Pending Backport to Resolved