]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commit
crimson/mgr: prevent pg stats report pile-up in overloaded store 69940/head
authorRonen Friedman <rfriedma@redhat.com>
Sat, 4 Jul 2026 06:18:36 +0000 (06:18 +0000)
committerRonen Friedman <rfriedma@redhat.com>
Sat, 4 Jul 2026 16:56:33 +0000 (16:56 +0000)
commitfebf0c62630c334558a2c19d86960c7041ed7a42
tree5836203a522e5b048c8c044b46433da2ca3d6d7c
parent16052666146c8ebb671b2740c226db4d6d1ea03f
crimson/mgr: prevent pg stats report pile-up in overloaded store

When AlienStore's thread pool is saturated (e.g. during PG splitting),
pool_statfs() calls inside OSD::get_stats() can get stuck behind
hundreds of queued transactions in the free_slots semaphore. Because
Client::report() dispatched get_stats() unconditionally every 5 seconds,
hundreds of stuck pool_statfs() calls accumulated, further exhausting
the semaphore and making recovery impossible.

Fix by tracking whether a get_stats() call is already in flight and
skipping new dispatches until the current one completes. Emit a
cluster-log warning every ~60 seconds when stats reporting is stuck.

This limits the damage from thread pool starvation to a single consumed
free_slot instead of an unbounded pile-up.

Fixes: https://tracker.ceph.com/issues/77930
Signed-off-by: Ronen Friedman <rfriedma@redhat.com>
src/crimson/mgr/client.cc
src/crimson/mgr/client.h
src/crimson/osd/osd.cc