Project

General

Profile

Bug #13124

librbd order limits inconsistent with rbd cli

Added by Corin Langosch over 7 years ago. Updated over 7 years ago.

Status:
Resolved
Priority:
Normal
Assignee:
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

ceph -v
ceph version 0.94.3 (95cefea9fd9ab740263bf8bb4796fd864d9afe2b)

Using librdb directly (for example by using ceph-ruby) I can create images with an order of 26. This creates images which are broken in various strange ways.

The rbd client allows a maximum order of 25 (rbd: order must be between 12 (4 KB) and 25 (32 MB)). Librbd should enforce the same limits as the rbd client does (or which acutally are needed).

"images broken in various strange ways" explained:

rbd image 'test':
size 1024 MB in 16 objects
order 26 (65536 kB objects)
block_name_prefix: rbd_data.ac986b8b4567
format: 2
features: layering, striping, exclusive, object map
flags:
stripe unit: 65536 kB
stripe count: 1

rbd cp test test1
Image copy: 56% complete...
-> hangs here forever (I then interrupted by ctrl-c)...

rbd cp test test1
Image copy: 0% complete...failed.2015-09-16 18:15:25.561182 7fba61510840 -1 librbd: rbd image test1 already exists
2015-09-16 18:15:25.561234 7fba61510840 -1 librbd: header creation failed
rbd: copy failed: (17) File exists
-> more or less expected

rbd rm test1
rm: cannot remove 'rbd/test1': No such file or directory
-> what?!


Related issues

Related to rbd - Bug #13164: librbd: reads larger than cache size hang Resolved 09/18/2015

Associated revisions

Revision a1959284 (diff)
Added by xinxin shu over 7 years ago

unify order limit

Fixes: #13124

Signed-off-by: xinxin shu <>

History

#1 Updated by Josh Durgin over 7 years ago

  • Project changed from Ceph to rbd
  • Subject changed from librd doesn't check order limits to librbd order limits inconsistent with rbd cli

There are a few things going on here.

1) librbd is enforcing limits on order, they're just higher than /usr/bin/rbd (librbd has a max of order 64). I've no objection to making that 32 to match the cli.

2) 'rbd cp' hangs - created a separate issue for this (#13164)

3) 'rbd rm' failure - I can't reproduce this

#2 Updated by Xinxin Shu over 7 years ago

  • Assignee set to Xinxin Shu

#3 Updated by Xinxin Shu over 7 years ago

  • Status changed from New to Fix Under Review

#5 Updated by Josh Durgin over 7 years ago

  • Status changed from Fix Under Review to Resolved

If you can reproduce the 'rbd rm' failing from the original description, please open another bug. Closing this one for the order limit inconsistency.

Also available in: Atom PDF