Project

General

Profile

Actions

Bug #10761

closed

librbd: breaking locks should blacklist the old owner

Added by Josh Durgin about 9 years ago. Updated about 9 years ago.

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

0%

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

Description

The old lock owner may still have I/Os in flight at many levels (including the osd). To be sure they don't invalidate the new lock owner's caches of data and object map, the old client needs to be blacklisted. There may be some scenarios in which we don't want to do this, so this should be controlled by a config option.

We should add this to ImageWatcher and librbd's native break_lock().

This probably involves adding a blacklist call to librados too, since the mon_command interface from C++ is clunky.

This shouldn't affect live migration with exclusive locking because of the cooperative request lock ImageWatcher does.

Actions #1

Updated by Jason Dillaman about 9 years ago

  • Status changed from New to In Progress
Actions #2

Updated by Jason Dillaman about 9 years ago

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

Updated by Jason Dillaman about 9 years ago

  • Status changed from Fix Under Review to Resolved
Actions

Also available in: Atom PDF