In some cases the current conductor may have failed to updated
the heartbeat timestamp due to failure of resource starvation.
When this occurs the dbapi get_offline_conductors method will
include the current conductor in its return value.
In this scenario the conductor may end up forcefully remove
node reservations or allocations from itself, triggering takeover
which fail on-going operations.
This change adds a wrapper to exclude the current conductor.
The wrapper will log a warning to raise the issue.
Related-Bug: #1970484
Stroy: 2010016
Task: 45204
Depends-On: https://review.opendev.org/839910
Change-Id: I6a8f38934b475f792433be6f0882540b82ca26c1
(cherry picked from commit 4cf0147e86)
13 lines
616 B
YAML
13 lines
616 B
YAML
---
|
|
fixes:
|
|
- |
|
|
Fixes an issue where a conductor would attempt local takeover. In case of
|
|
heartbeat failure due to resource starvation, the current conductor was
|
|
detected as offline when querying the database. In this scenario the
|
|
conductor would forcibly remove reservations of it's own and initiate
|
|
takeover. Current conductor is now excluded from the list of offline
|
|
conductors, so that local takeover does not occur for this case. A warning
|
|
is logged to highlight the potential resource starvation issue.
|
|
See bug: `2010016 <https://storyboard.openstack.org/#!/story/2010016>`_.
|
|
|