Project

General

Profile

Actions

Bug #19081

closed

rbd: refuse to use an ec pool that doesn't support overwrites

Added by Josh Durgin about 7 years ago. Updated almost 7 years ago.

Status:
Resolved
Priority:
High
Assignee:
Jason Dillaman
Target version:
-
% Done:

0%

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

Description

When using an ec data pool that does not have the overwrites flag set, librbd ends up hitting an assert in the i/o path in librbd::exclusive_lock::PreReleaseRequest::handle_block_writes.

librbd can check for the overwrites pool flag when creating an image, since the flag cannot be unset.


Related issues 1 (0 open1 closed)

Copied to rbd - Backport #19336: kraken: rbd: refuse to use an ec pool that doesn't support overwritesResolvedNathan CutlerActions
Actions #1

Updated by Jason Dillaman about 7 years ago

  • Status changed from New to Need More Info

@Josh Jones: what's the API for determining if that flag is set? Is that flag only valid for Kraken?

Actions #2

Updated by Josh Durgin about 7 years ago

The flag will stick around for luminous. In the future if all ec pools supported overwrites, the flag would just always be set.

The api is not great right now - maybe we should have a rados_pool_supports_overwrites() librados method. Currently you'd need to use the mon commands (e.g. 'osd dump', look for the overwrites flag - which is getting renamed in https://github.com/ceph/ceph-ci/commit/f7643a24e0c77bbfb5930892f648664cc8aab636)

Actions #3

Updated by Jason Dillaman about 7 years ago

@Josh Jones: do you also invision that users will need to set that flag in Luminous -- or should EC overwrites just work out-of-the-box? If it's the latter, this seems like a lot of work just to test for overwrite support. Perhaps librbd could just issue a 1-byte overwrite request on the pool the first time it is used?

Actions #4

Updated by Josh Durgin about 7 years ago

Yes, for luminous I think we'll have that flag still - mainly because it's a really bad idea to enable on filestore, due to lack of checksumming and performance compared to bluestore.

Checking for overwrites by trying one is more general, and cephfs (the other potential user) isn't using librados, so that sounds like a good way to go.

Actions #5

Updated by Jason Dillaman about 7 years ago

  • Status changed from Need More Info to In Progress
  • Assignee set to Jason Dillaman
  • Backport set to kraken
Actions #6

Updated by Jason Dillaman about 7 years ago

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

Updated by Mykola Golub about 7 years ago

  • Status changed from Fix Under Review to Pending Backport
Actions #8

Updated by Nathan Cutler about 7 years ago

  • Copied to Backport #19336: kraken: rbd: refuse to use an ec pool that doesn't support overwrites added
Actions #9

Updated by Nathan Cutler almost 7 years ago

  • Status changed from Pending Backport to Resolved
Actions

Also available in: Atom PDF