You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Replace rabbit_fifo_dlx_sup with a two-level supervisor hierarchy
The flat simple_one_for_one rabbit_fifo_dlx_sup allowed a burst of
DLX worker crashes to trip the supervisor's restart intensity and
render it permanently unavailable, stranding all at_least_once DLX
quorum queues cluster-wide (GitHub #16652).
Replace it with:
- rabbit_fifo_dlx_sup_sup: simple_one_for_one top-level supervisor
whose children are per-queue worker supervisors (temporary).
- rabbit_fifo_dlx_worker_sup: one_for_one per-queue supervisor with
intensity 0. A worker crash terminates only its own supervisor,
isolating failures to a single queue.
Additional fixes:
- ensure_worker_started now checks live supervisor state via
find_worker_sup/1 before starting a new worker, preventing
duplicate worker_sups from concurrent state_enter and {dlx, setup}
aux calls.
- state_enter(eol, ...) now terminates the DLX worker on queue
deletion, preventing orphaned worker_sups after queue cleanup.
0 commit comments