Actions
Bug #10761
closedlibrbd: breaking locks should blacklist the old owner
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