Actions
Bug #43589
closedPotential live-lock in disable/enable feature request
Status:
Resolved
Priority:
Normal
Assignee:
-
Target version:
-
% Done:
0%
Source:
Tags:
Backport:
luminous,mimic,nautilus
Regression:
No
Severity:
3 - minor
Reviewed:
Description
For example, if a disable journal feature request is received by a lock owner, the DisableFeaturesRequest state machine will start "ImageState::prepare_lock" which will prevent future image state updates (like image refreshes) until the prepare lock step is completed. However, if a header update notification is received while in this state, the DisableFeaturesRequest state machine will attempt to disable mirroring which involves a refresh image step. This will live-lock and the state machines will never advance. It seems the simple solution would be to extract the refresh step from the librbd::mirror::GetInfoRequest state machine and instead move the refresh to the API callers.
Actions