]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commit
crimson/osd/recovery_backend: scan_for_backfill to use seastar::lambda
authorMatan Breizman <mbreizma@redhat.com>
Mon, 10 Mar 2025 12:46:04 +0000 (12:46 +0000)
committerMatan Breizman <mbreizma@redhat.com>
Mon, 10 Mar 2025 12:54:15 +0000 (12:54 +0000)
commit8ca4fc01b1a59f7d8243dcf2b5b083e567f6fe6a
tree07a283f81486f425c5d1d56f0defd2be38058054
parent6533f261dc368ab3e28f123458df9eaa88859696
crimson/osd/recovery_backend: scan_for_backfill to use seastar::lambda

We could also use here seastar::coroutine::parallel_for_each. However,
an `interruptible` overload must be used. Instead, use the coroutine
which wrapper is simpler this time.

```
kernel callstack:
    #0 0x56f6e7a in seastar::lw_shared_ptr<std::map<hobject_t, eversion_t, std::less<hobject_t>, std::allocator<std::pair<hobject_t const, eversion_t> > > >::operator->() const /home/matan/ceph/src/seastar/include/seastar/core/shared_ptr.hh:347
    #1 0x56f6e7a in operator() /home/matan/ceph/src/crimson/osd/recovery_backend.cc:245
    #2 0x5286c62 in std::__n4861::coroutine_handle<crimson::internal::promise_base<crimson::interruptible::interruptor<crimson::osd::IOInterruptCondition>, void, void> >::resume() const /opt/rh/gcc-toolset-13/root/usr/include/c++/13/coroutine:24

SUMMARY: AddressSanitizer: stack-use-after-return /home/matan/ceph/src/seastar/include/seastar/core/shared_ptr.hh:347 in seastar::lw_shared_ptr<std::map<hobject_t, eversion_t, std::less<hobject_t>, std::allocator<std::pair<hobject_t const, eversion_t> >

```

Signed-off-by: Matan Breizman <mbreizma@redhat.com>
src/crimson/osd/recovery_backend.cc