]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commit
rgw/notification: fix reserved_size drift in 2pc_queue causing ENOSPC errors 67575/head
authorKrunal Chheda <kchheda3@bloomberg.net>
Tue, 10 Feb 2026 21:01:03 +0000 (16:01 -0500)
committerkchheda3 <kchheda3@bloomberg.net>
Fri, 27 Feb 2026 19:05:06 +0000 (19:05 +0000)
commit8f86e0926f4aaf49786f8b35e9b4e478a24a9b73
tree06a84f37ac8be473dec48b96d97e2b5320187e26
parentb97fe168f62274de043b4c15a01d5530760ef159
rgw/notification: fix reserved_size drift in 2pc_queue causing ENOSPC errors

The urgent_data.reserved_size field was accumulating incorrect values over time due to a mismatch between what was added during reserve() and what was subtracted during commit()/abort(). This caused the reserved_size to grow unbounded, eventually hitting the queue capacity limit and returning ENOSPC errors even when the queue had plenty of actual space.

solution:
Add a one time self healing capability, where the reservation value is re calculated during the reserve and counter is updated with correct value.

Signed-off-by: Krunal Chheda <kchheda3@bloomberg.net>
(cherry picked from commit 7f4eaee30cba6efd3e0acc5b3c315c182a3bc8d9)
src/cls/2pc_queue/cls_2pc_queue.cc
src/cls/2pc_queue/cls_2pc_queue_types.h