]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/commit
rgw/async/notifications: use common async waiter in pubsub push
authorYuval Lifshitz <ylifshit@ibm.com>
Tue, 23 Jul 2024 17:41:50 +0000 (17:41 +0000)
committerYuval Lifshitz <ylifshit@ibm.com>
Tue, 22 Apr 2025 15:10:33 +0000 (15:10 +0000)
commit3b13a0ee98844ed8710b6d270b1b44c68451710e
treedb3ab4db58fed3715930f9ea16d521379c4d8ec9
parent836b967aa76127d96ca74d76afe361e8245f035a
rgw/async/notifications: use common async waiter in pubsub push

* use the "yield_waiter" and "waiter" from common/async insteasd of the "waiter"
  implemented inside the bucket notification code (this is so we don't
  need separate investigations for 2 implementations)
* added a unit test that simulate how a separate thread (kafka or amqp) is
resuming a coroutine which is created by either the frontend or the
notification manager.

before using "defer" the unit test is passing, however,
when executed under thread sanitizer (using the WITH_TSAN cmake flag)
the following errors are observed: https://0x0.st/Xp4P.txt
after using "defer" the unit test passes under TSAN without errors.

Fixes: https://tracker.ceph.com/issues/64184
Signed-off-by: Yuval Lifshitz <ylifshit@ibm.com>
(cherry picked from commit 2872c75f184c9e715219dfa9ad44f5b6cfe4e1fe)
src/rgw/driver/rados/rgw_pubsub_push.cc
src/test/common/test_async_yield_waiter.cc