Actions
Bug #47329
closedmgr plugins might endlessly loop when unregistering rados/cephfs client isntan
% Done:
0%
Source:
Tags:
Backport:
octopus
Regression:
No
Severity:
3 - minor
Reviewed:
Description
Problematic part in PyModuleRegistry::unregister_client():
void unregister_client(std::string_view name, const entity_addrvec_t& addrs) { auto itp = clients.equal_range(std::string(name)); for (auto it = itp.first; it != itp.second; ++it) { if (it->second == addrs) { it = clients.erase(it); } } }
The iterator gets incremented even after removing an entry from the map (which returns the next iterator).
This causes calls to unregister_client() to endlessly loop causing ceph-mgr to become unresponsive and getting blocklisted causing subsequent commands to hang.
Updated by Patrick Donnelly over 3 years ago
- Status changed from Fix Under Review to Pending Backport
Updated by Nathan Cutler over 3 years ago
- Copied to Backport #47462: octopus: mgr plugins might endlessly loop when unregistering rados/cephfs client isntan added
Updated by Nathan Cutler over 3 years ago
- Status changed from Pending Backport to Resolved
While running with --resolve-parent, the script "backport-create-issue" noticed that all backports of this issue are in status "Resolved" or "Rejected".
Actions