]> 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>
Thu, 25 Jul 2024 16:23:56 +0000 (16:23 +0000)
commit2872c75f184c9e715219dfa9ad44f5b6cfe4e1fe
tree15882cbe80f19a967b3178e39ab4cd20c818c7bf
parentee7c187025807678a7880c5577cdc58c4381a590
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>
src/rgw/driver/rados/rgw_pubsub_push.cc
src/test/common/test_async_yield_waiter.cc