Skip to content

Instantly share code, notes, and snippets.

@cbodley
Created October 2, 2025 20:24
Show Gist options
  • Save cbodley/ea150a06a6336fe81623ad1fdc892e32 to your computer and use it in GitHub Desktop.
Save cbodley/ea150a06a6336fe81623ad1fdc892e32 to your computer and use it in GitHub Desktop.
==432931== Memcheck, a memory error detector
==432931== Copyright (C) 2002-2024, and GNU GPL'd, by Julian Seward et al.
==432931== Using Valgrind-3.25.1 and LibVEX; rerun with -h for copyright info
==432931== Command: bin/radosgw-admin --rgw-num-control-oids=128 account modify --log-file admin.log --log-to-stderr 0 --debug-rgw 20 --debug-ms 1 --debug-objecter 20
==432931== Parent PID: 3373
==432931==
==432931== Thread 28 io_context_pool:
==432931== Invalid read of size 8
==432931== at 0xD7A3404: Objecter::_linger_cancel(Objecter::LingerOp*) (Objecter.cc:797)
==432931== by 0xD7A323C: Objecter::linger_cancel(Objecter::LingerOp*) (Objecter.cc:790)
==432931== by 0xCC6946B: librados::(anonymous namespace)::CB_aio_linger_cancel::operator()() (IoCtxImpl.cc:99)
==432931== by 0xCC7BA5F: boost::asio::detail::binder0<librados::(anonymous namespace)::CB_aio_linger_cancel>::operator()() (bind_handler.hpp:56)
==432931== by 0xCC7BE80: boost::asio::detail::executor_op<boost::asio::detail::binder0<librados::(anonymous namespace)::CB_aio_linger_cancel>, std::allocator<void>, boost::asio::detail::scheduler_operation>::do_complete(void*, boost::asio::detail::scheduler_operation*, boost::system::error_code const&, unsigned long) (executor_op.hpp:70)
==432931== by 0xCC7DF9F: boost::asio::detail::scheduler_operation::complete(void*, boost::system::error_code const&, unsigned long) (scheduler_operation.hpp:40)
==432931== by 0xCC7EC16: boost::asio::detail::strand_executor_service::run_ready_handlers(std::shared_ptr<boost::asio::detail::strand_executor_service::strand_impl>&) (strand_executor_service.ipp:150)
==432931== by 0xCCA272D: boost::asio::detail::strand_executor_service::invoker<boost::asio::io_context::basic_executor_type<std::allocator<void>, 0ul> const, void>::operator()() (strand_executor_service.hpp:121)
==432931== by 0xCCA4043: boost::asio::detail::executor_op<boost::asio::detail::strand_executor_service::invoker<boost::asio::io_context::basic_executor_type<std::allocator<void>, 0ul> const, void>, std::allocator<void>, boost::asio::detail::scheduler_operation>::do_complete(void*, boost::asio::detail::scheduler_operation*, boost::system::error_code const&, unsigned long) (executor_op.hpp:70)
==432931== by 0xCC7DF9F: boost::asio::detail::scheduler_operation::complete(void*, boost::system::error_code const&, unsigned long) (scheduler_operation.hpp:40)
==432931== by 0xCCBCF44: boost::asio::detail::scheduler::do_run_one(boost::asio::detail::conditionally_enabled_mutex::scoped_lock&, boost::asio::detail::scheduler_thread_info&, boost::system::error_code const&) (scheduler.ipp:492)
==432931== by 0xCCBCA59: boost::asio::detail::scheduler::run(boost::system::error_code&) (scheduler.ipp:208)
==432931== Address 0x25717020 is 32 bytes inside a block of size 1,120 free'd
==432931== at 0xCA73E78: operator delete(void*, unsigned long) (vg_replace_malloc.c:1181)
==432931== by 0xD85604E: Objecter::LingerOp::~LingerOp() (Objecter.h:2336)
==432931== by 0xCEFD487: ceph::common::RefCountedObject::put() const (RefCountedObj.cc:28)
==432931== by 0xD7A3248: Objecter::linger_cancel(Objecter::LingerOp*) (Objecter.cc:791)
==432931== by 0xCC73EE8: librados::IoCtxImpl::unwatch(unsigned long) (IoCtxImpl.cc:1765)
==432931== by 0xCC44DA7: librados::v14_2_0::IoCtx::unwatch2(unsigned long) (librados_cxx.cc:2149)
==432931== by 0x662CCAB: rgw_rados_ref::unwatch(DoutPrefixProvider const*, unsigned long, optional_yield) (rgw_tools.cc:145)
==432931== by 0x76BB81F: RGWSI_Notify::unwatch(DoutPrefixProvider const*, rgw_rados_ref&, unsigned long, optional_yield) (svc_notify.cc:334)
==432931== by 0x76C5C03: RGWWatcher::unregister_watch(optional_yield) (svc_notify.cc:117)
==432931== by 0x76C57B9: RGWWatcher::reinit() (svc_notify.cc:95)
==432931== by 0x76C48F4: RGWWatcher::C_ReinitWatch::finish(int) (svc_notify.cc:39)
==432931== by 0x447385C: Context::complete(int) (Context.h:102)
==432931== Block was alloc'd at
==432931== at 0xCA702AC: operator new(unsigned long) (vg_replace_malloc.c:487)
==432931== by 0xD7A36CC: Objecter::linger_register(object_t const&, object_locator_t const&, int) (Objecter.cc:823)
==432931== by 0xCC737DF: librados::IoCtxImpl::aio_watch(object_t const&, librados::AioCompletionImpl*, unsigned long*, librados::v14_2_0::WatchCtx*, librados::v14_2_0::WatchCtx2*, unsigned int, bool) (IoCtxImpl.cc:1705)
==432931== by 0xCC44CF5: librados::v14_2_0::IoCtx::aio_watch2(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, librados::v14_2_0::AioCompletion*, unsigned long*, librados::v14_2_0::WatchCtx2*, unsigned int) (librados_cxx.cc:2139)
==432931== by 0x668C529: auto librados::async_watch<boost::asio::any_io_executor, boost::asio::basic_yield_context<boost::asio::any_io_executor> >(boost::asio::any_io_executor, librados::v14_2_0::IoCtx&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned long*, librados::v14_2_0::WatchCtx2*, unsigned int, boost::asio::basic_yield_context<boost::asio::any_io_executor>&&)::{lambda(auto:1, boost::asio::any_io_executor, librados::v14_2_0::IoCtx const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned long*, librados::v14_2_0::WatchCtx2*, unsigned int)#1}::operator()<boost::asio::detail::spawn_handler<boost::asio::any_io_executor, void (boost::system::error_code, unsigned long), void> >(boost::asio::detail::spawn_handler<boost::asio::any_io_executor, void (boost::system::error_code, unsigned long), void>, boost::asio::any_io_executor, librados::v14_2_0::IoCtx const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned long*, librados::v14_2_0::WatchCtx2*, unsigned int) const (librados_asio.h:291)
==432931== by 0x668C3BE: boost::asio::async_result<boost::asio::basic_yield_context<boost::asio::any_io_executor>, void (boost::system::error_code, unsigned long)>::initiate<librados::async_watch<boost::asio::any_io_executor, boost::asio::basic_yield_context<boost::asio::any_io_executor> >(boost::asio::any_io_executor, librados::v14_2_0::IoCtx&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned long*, librados::v14_2_0::WatchCtx2*, unsigned int, boost::asio::basic_yield_context<boost::asio::any_io_executor>&&)::{lambda(auto:1, boost::asio::any_io_executor, librados::v14_2_0::IoCtx const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned long*, librados::v14_2_0::WatchCtx2*, unsigned int)#1}, boost::asio::any_io_executor&, librados::v14_2_0::IoCtx&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned long*&, librados::v14_2_0::WatchCtx2*&, unsigned int&>(librados::async_watch<boost::asio::any_io_executor, boost::asio::basic_yield_context<boost::asio::any_io_executor> >(boost::asio::any_io_executor, librados::v14_2_0::IoCtx&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned long*, librados::v14_2_0::WatchCtx2*, unsigned int, boost::asio::basic_yield_context<boost::asio::any_io_executor>&&)::{lambda(auto:1, boost::asio::any_io_executor, librados::v14_2_0::IoCtx const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned long*, librados::v14_2_0::WatchCtx2*, unsigned int)#1}&&, boost::asio::basic_yield_context<boost::asio::any_io_executor> const&, boost::asio::any_io_executor&, librados::v14_2_0::IoCtx&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned long*&, librados::v14_2_0::WatchCtx2*&, unsigned int&)::{lambda()#1}::operator()() const (spawn.hpp:666)
==432931== by 0x668E502: void boost::asio::detail::spawned_thread_base::call<boost::asio::async_result<boost::asio::basic_yield_context<boost::asio::any_io_executor>, void (boost::system::error_code, unsigned long)>::initiate<librados::async_watch<boost::asio::any_io_executor, boost::asio::basic_yield_context<boost::asio::any_io_executor> >(boost::asio::any_io_executor, librados::v14_2_0::IoCtx&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned long*, librados::v14_2_0::WatchCtx2*, unsigned int, boost::asio::basic_yield_context<boost::asio::any_io_executor>&&)::{lambda(auto:1, boost::asio::any_io_executor, librados::v14_2_0::IoCtx const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned long*, librados::v14_2_0::WatchCtx2*, unsigned int)#1}, boost::asio::any_io_executor&, librados::v14_2_0::IoCtx&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned long*&, librados::v14_2_0::WatchCtx2*&, unsigned int&>(librados::async_watch<boost::asio::any_io_executor, boost::asio::basic_yield_context<boost::asio::any_io_executor> >(boost::asio::any_io_executor, librados::v14_2_0::IoCtx&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned long*, librados::v14_2_0::WatchCtx2*, unsigned int, boost::asio::basic_yield_context<boost::asio::any_io_executor>&&)::{lambda(auto:1, boost::asio::any_io_executor, librados::v14_2_0::IoCtx const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned long*, librados::v14_2_0::WatchCtx2*, unsigned int)#1}&&, boost::asio::basic_yield_context<boost::asio::any_io_executor> const&, boost::asio::any_io_executor&, librados::v14_2_0::IoCtx&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned long*&, librados::v14_2_0::WatchCtx2*&, unsigned int&)::{lambda()#1}>(void*) (spawn.hpp:141)
==432931== by 0x43269B6: boost::asio::detail::spawned_fiber_thread::resume() (spawn.hpp:105)
==432931== by 0x40ED5CE: boost::asio::detail::spawned_thread_resumer::operator()() (spawn.hpp:214)
==432931== by 0x41ADC1C: boost::asio::detail::spawn_handler_base<boost::asio::any_io_executor>::resume() (spawn.hpp:299)
==432931== by 0x66930CE: boost::asio::detail::spawn_handler<boost::asio::any_io_executor, void (boost::system::error_code, unsigned long), void>::operator()(boost::system::error_code, unsigned long) (spawn.hpp:461)
==432931== by 0x6692F38: boost::asio::result_of<boost::asio::detail::spawn_handler<boost::asio::any_io_executor, void (boost::system::error_code, unsigned long), void> (boost::system::error_code, unsigned long)>::type boost::asio::executor_binder<boost::asio::detail::spawn_handler<boost::asio::any_io_executor, void (boost::system::error_code, unsigned long), void>, boost::asio::any_io_executor>::operator()<boost::system::error_code, unsigned long>(boost::system::error_code&&, unsigned long&&) && (bind_executor.hpp:391)
==432931==
==432931== Invalid read of size 1
==432931== at 0xD7A3455: Objecter::_linger_cancel(Objecter::LingerOp*) (Objecter.cc:798)
==432931== by 0xD7A323C: Objecter::linger_cancel(Objecter::LingerOp*) (Objecter.cc:790)
==432931== by 0xCC6946B: librados::(anonymous namespace)::CB_aio_linger_cancel::operator()() (IoCtxImpl.cc:99)
==432931== by 0xCC7BA5F: boost::asio::detail::binder0<librados::(anonymous namespace)::CB_aio_linger_cancel>::operator()() (bind_handler.hpp:56)
==432931== by 0xCC7BE80: boost::asio::detail::executor_op<boost::asio::detail::binder0<librados::(anonymous namespace)::CB_aio_linger_cancel>, std::allocator<void>, boost::asio::detail::scheduler_operation>::do_complete(void*, boost::asio::detail::scheduler_operation*, boost::system::error_code const&, unsigned long) (executor_op.hpp:70)
==432931== by 0xCC7DF9F: boost::asio::detail::scheduler_operation::complete(void*, boost::system::error_code const&, unsigned long) (scheduler_operation.hpp:40)
==432931== by 0xCC7EC16: boost::asio::detail::strand_executor_service::run_ready_handlers(std::shared_ptr<boost::asio::detail::strand_executor_service::strand_impl>&) (strand_executor_service.ipp:150)
==432931== by 0xCCA272D: boost::asio::detail::strand_executor_service::invoker<boost::asio::io_context::basic_executor_type<std::allocator<void>, 0ul> const, void>::operator()() (strand_executor_service.hpp:121)
==432931== by 0xCCA4043: boost::asio::detail::executor_op<boost::asio::detail::strand_executor_service::invoker<boost::asio::io_context::basic_executor_type<std::allocator<void>, 0ul> const, void>, std::allocator<void>, boost::asio::detail::scheduler_operation>::do_complete(void*, boost::asio::detail::scheduler_operation*, boost::system::error_code const&, unsigned long) (executor_op.hpp:70)
==432931== by 0xCC7DF9F: boost::asio::detail::scheduler_operation::complete(void*, boost::system::error_code const&, unsigned long) (scheduler_operation.hpp:40)
==432931== by 0xCCBCF44: boost::asio::detail::scheduler::do_run_one(boost::asio::detail::conditionally_enabled_mutex::scoped_lock&, boost::asio::detail::scheduler_thread_info&, boost::system::error_code const&) (scheduler.ipp:492)
==432931== by 0xCCBCA59: boost::asio::detail::scheduler::run(boost::system::error_code&) (scheduler.ipp:208)
==432931== Address 0x257173cd is 973 bytes inside a block of size 1,120 free'd
==432931== at 0xCA73E78: operator delete(void*, unsigned long) (vg_replace_malloc.c:1181)
==432931== by 0xD85604E: Objecter::LingerOp::~LingerOp() (Objecter.h:2336)
==432931== by 0xCEFD487: ceph::common::RefCountedObject::put() const (RefCountedObj.cc:28)
==432931== by 0xD7A3248: Objecter::linger_cancel(Objecter::LingerOp*) (Objecter.cc:791)
==432931== by 0xCC73EE8: librados::IoCtxImpl::unwatch(unsigned long) (IoCtxImpl.cc:1765)
==432931== by 0xCC44DA7: librados::v14_2_0::IoCtx::unwatch2(unsigned long) (librados_cxx.cc:2149)
==432931== by 0x662CCAB: rgw_rados_ref::unwatch(DoutPrefixProvider const*, unsigned long, optional_yield) (rgw_tools.cc:145)
==432931== by 0x76BB81F: RGWSI_Notify::unwatch(DoutPrefixProvider const*, rgw_rados_ref&, unsigned long, optional_yield) (svc_notify.cc:334)
==432931== by 0x76C5C03: RGWWatcher::unregister_watch(optional_yield) (svc_notify.cc:117)
==432931== by 0x76C57B9: RGWWatcher::reinit() (svc_notify.cc:95)
==432931== by 0x76C48F4: RGWWatcher::C_ReinitWatch::finish(int) (svc_notify.cc:39)
==432931== by 0x447385C: Context::complete(int) (Context.h:102)
==432931== Block was alloc'd at
==432931== at 0xCA702AC: operator new(unsigned long) (vg_replace_malloc.c:487)
==432931== by 0xD7A36CC: Objecter::linger_register(object_t const&, object_locator_t const&, int) (Objecter.cc:823)
==432931== by 0xCC737DF: librados::IoCtxImpl::aio_watch(object_t const&, librados::AioCompletionImpl*, unsigned long*, librados::v14_2_0::WatchCtx*, librados::v14_2_0::WatchCtx2*, unsigned int, bool) (IoCtxImpl.cc:1705)
==432931== by 0xCC44CF5: librados::v14_2_0::IoCtx::aio_watch2(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, librados::v14_2_0::AioCompletion*, unsigned long*, librados::v14_2_0::WatchCtx2*, unsigned int) (librados_cxx.cc:2139)
==432931== by 0x668C529: auto librados::async_watch<boost::asio::any_io_executor, boost::asio::basic_yield_context<boost::asio::any_io_executor> >(boost::asio::any_io_executor, librados::v14_2_0::IoCtx&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned long*, librados::v14_2_0::WatchCtx2*, unsigned int, boost::asio::basic_yield_context<boost::asio::any_io_executor>&&)::{lambda(auto:1, boost::asio::any_io_executor, librados::v14_2_0::IoCtx const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned long*, librados::v14_2_0::WatchCtx2*, unsigned int)#1}::operator()<boost::asio::detail::spawn_handler<boost::asio::any_io_executor, void (boost::system::error_code, unsigned long), void> >(boost::asio::detail::spawn_handler<boost::asio::any_io_executor, void (boost::system::error_code, unsigned long), void>, boost::asio::any_io_executor, librados::v14_2_0::IoCtx const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned long*, librados::v14_2_0::WatchCtx2*, unsigned int) const (librados_asio.h:291)
==432931== by 0x668C3BE: boost::asio::async_result<boost::asio::basic_yield_context<boost::asio::any_io_executor>, void (boost::system::error_code, unsigned long)>::initiate<librados::async_watch<boost::asio::any_io_executor, boost::asio::basic_yield_context<boost::asio::any_io_executor> >(boost::asio::any_io_executor, librados::v14_2_0::IoCtx&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned long*, librados::v14_2_0::WatchCtx2*, unsigned int, boost::asio::basic_yield_context<boost::asio::any_io_executor>&&)::{lambda(auto:1, boost::asio::any_io_executor, librados::v14_2_0::IoCtx const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned long*, librados::v14_2_0::WatchCtx2*, unsigned int)#1}, boost::asio::any_io_executor&, librados::v14_2_0::IoCtx&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned long*&, librados::v14_2_0::WatchCtx2*&, unsigned int&>(librados::async_watch<boost::asio::any_io_executor, boost::asio::basic_yield_context<boost::asio::any_io_executor> >(boost::asio::any_io_executor, librados::v14_2_0::IoCtx&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned long*, librados::v14_2_0::WatchCtx2*, unsigned int, boost::asio::basic_yield_context<boost::asio::any_io_executor>&&)::{lambda(auto:1, boost::asio::any_io_executor, librados::v14_2_0::IoCtx const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned long*, librados::v14_2_0::WatchCtx2*, unsigned int)#1}&&, boost::asio::basic_yield_context<boost::asio::any_io_executor> const&, boost::asio::any_io_executor&, librados::v14_2_0::IoCtx&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned long*&, librados::v14_2_0::WatchCtx2*&, unsigned int&)::{lambda()#1}::operator()() const (spawn.hpp:666)
==432931== by 0x668E502: void boost::asio::detail::spawned_thread_base::call<boost::asio::async_result<boost::asio::basic_yield_context<boost::asio::any_io_executor>, void (boost::system::error_code, unsigned long)>::initiate<librados::async_watch<boost::asio::any_io_executor, boost::asio::basic_yield_context<boost::asio::any_io_executor> >(boost::asio::any_io_executor, librados::v14_2_0::IoCtx&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned long*, librados::v14_2_0::WatchCtx2*, unsigned int, boost::asio::basic_yield_context<boost::asio::any_io_executor>&&)::{lambda(auto:1, boost::asio::any_io_executor, librados::v14_2_0::IoCtx const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned long*, librados::v14_2_0::WatchCtx2*, unsigned int)#1}, boost::asio::any_io_executor&, librados::v14_2_0::IoCtx&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned long*&, librados::v14_2_0::WatchCtx2*&, unsigned int&>(librados::async_watch<boost::asio::any_io_executor, boost::asio::basic_yield_context<boost::asio::any_io_executor> >(boost::asio::any_io_executor, librados::v14_2_0::IoCtx&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned long*, librados::v14_2_0::WatchCtx2*, unsigned int, boost::asio::basic_yield_context<boost::asio::any_io_executor>&&)::{lambda(auto:1, boost::asio::any_io_executor, librados::v14_2_0::IoCtx const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned long*, librados::v14_2_0::WatchCtx2*, unsigned int)#1}&&, boost::asio::basic_yield_context<boost::asio::any_io_executor> const&, boost::asio::any_io_executor&, librados::v14_2_0::IoCtx&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned long*&, librados::v14_2_0::WatchCtx2*&, unsigned int&)::{lambda()#1}>(void*) (spawn.hpp:141)
==432931== by 0x43269B6: boost::asio::detail::spawned_fiber_thread::resume() (spawn.hpp:105)
==432931== by 0x40ED5CE: boost::asio::detail::spawned_thread_resumer::operator()() (spawn.hpp:214)
==432931== by 0x41ADC1C: boost::asio::detail::spawn_handler_base<boost::asio::any_io_executor>::resume() (spawn.hpp:299)
==432931== by 0x66930CE: boost::asio::detail::spawn_handler<boost::asio::any_io_executor, void (boost::system::error_code, unsigned long), void>::operator()(boost::system::error_code, unsigned long) (spawn.hpp:461)
==432931== by 0x6692F38: boost::asio::result_of<boost::asio::detail::spawn_handler<boost::asio::any_io_executor, void (boost::system::error_code, unsigned long), void> (boost::system::error_code, unsigned long)>::type boost::asio::executor_binder<boost::asio::detail::spawn_handler<boost::asio::any_io_executor, void (boost::system::error_code, unsigned long), void>, boost::asio::any_io_executor>::operator()<boost::system::error_code, unsigned long>(boost::system::error_code&&, unsigned long&&) && (bind_executor.hpp:391)
==432931==
==432931== Invalid read of size 8
==432931== at 0xCEFD1F7: ceph::common::RefCountedObject::put() const (RefCountedObj.cc:18)
==432931== by 0xD7A3248: Objecter::linger_cancel(Objecter::LingerOp*) (Objecter.cc:791)
==432931== by 0xCC6946B: librados::(anonymous namespace)::CB_aio_linger_cancel::operator()() (IoCtxImpl.cc:99)
==432931== by 0xCC7BA5F: boost::asio::detail::binder0<librados::(anonymous namespace)::CB_aio_linger_cancel>::operator()() (bind_handler.hpp:56)
==432931== by 0xCC7BE80: boost::asio::detail::executor_op<boost::asio::detail::binder0<librados::(anonymous namespace)::CB_aio_linger_cancel>, std::allocator<void>, boost::asio::detail::scheduler_operation>::do_complete(void*, boost::asio::detail::scheduler_operation*, boost::system::error_code const&, unsigned long) (executor_op.hpp:70)
==432931== by 0xCC7DF9F: boost::asio::detail::scheduler_operation::complete(void*, boost::system::error_code const&, unsigned long) (scheduler_operation.hpp:40)
==432931== by 0xCC7EC16: boost::asio::detail::strand_executor_service::run_ready_handlers(std::shared_ptr<boost::asio::detail::strand_executor_service::strand_impl>&) (strand_executor_service.ipp:150)
==432931== by 0xCCA272D: boost::asio::detail::strand_executor_service::invoker<boost::asio::io_context::basic_executor_type<std::allocator<void>, 0ul> const, void>::operator()() (strand_executor_service.hpp:121)
==432931== by 0xCCA4043: boost::asio::detail::executor_op<boost::asio::detail::strand_executor_service::invoker<boost::asio::io_context::basic_executor_type<std::allocator<void>, 0ul> const, void>, std::allocator<void>, boost::asio::detail::scheduler_operation>::do_complete(void*, boost::asio::detail::scheduler_operation*, boost::system::error_code const&, unsigned long) (executor_op.hpp:70)
==432931== by 0xCC7DF9F: boost::asio::detail::scheduler_operation::complete(void*, boost::system::error_code const&, unsigned long) (scheduler_operation.hpp:40)
==432931== by 0xCCBCF44: boost::asio::detail::scheduler::do_run_one(boost::asio::detail::conditionally_enabled_mutex::scoped_lock&, boost::asio::detail::scheduler_thread_info&, boost::system::error_code const&) (scheduler.ipp:492)
==432931== by 0xCCBCA59: boost::asio::detail::scheduler::run(boost::system::error_code&) (scheduler.ipp:208)
==432931== Address 0x25717010 is 16 bytes inside a block of size 1,120 free'd
==432931== at 0xCA73E78: operator delete(void*, unsigned long) (vg_replace_malloc.c:1181)
==432931== by 0xD85604E: Objecter::LingerOp::~LingerOp() (Objecter.h:2336)
==432931== by 0xCEFD487: ceph::common::RefCountedObject::put() const (RefCountedObj.cc:28)
==432931== by 0xD7A3248: Objecter::linger_cancel(Objecter::LingerOp*) (Objecter.cc:791)
==432931== by 0xCC73EE8: librados::IoCtxImpl::unwatch(unsigned long) (IoCtxImpl.cc:1765)
==432931== by 0xCC44DA7: librados::v14_2_0::IoCtx::unwatch2(unsigned long) (librados_cxx.cc:2149)
==432931== by 0x662CCAB: rgw_rados_ref::unwatch(DoutPrefixProvider const*, unsigned long, optional_yield) (rgw_tools.cc:145)
==432931== by 0x76BB81F: RGWSI_Notify::unwatch(DoutPrefixProvider const*, rgw_rados_ref&, unsigned long, optional_yield) (svc_notify.cc:334)
==432931== by 0x76C5C03: RGWWatcher::unregister_watch(optional_yield) (svc_notify.cc:117)
==432931== by 0x76C57B9: RGWWatcher::reinit() (svc_notify.cc:95)
==432931== by 0x76C48F4: RGWWatcher::C_ReinitWatch::finish(int) (svc_notify.cc:39)
==432931== by 0x447385C: Context::complete(int) (Context.h:102)
==432931== Block was alloc'd at
==432931== at 0xCA702AC: operator new(unsigned long) (vg_replace_malloc.c:487)
==432931== by 0xD7A36CC: Objecter::linger_register(object_t const&, object_locator_t const&, int) (Objecter.cc:823)
==432931== by 0xCC737DF: librados::IoCtxImpl::aio_watch(object_t const&, librados::AioCompletionImpl*, unsigned long*, librados::v14_2_0::WatchCtx*, librados::v14_2_0::WatchCtx2*, unsigned int, bool) (IoCtxImpl.cc:1705)
==432931== by 0xCC44CF5: librados::v14_2_0::IoCtx::aio_watch2(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, librados::v14_2_0::AioCompletion*, unsigned long*, librados::v14_2_0::WatchCtx2*, unsigned int) (librados_cxx.cc:2139)
==432931== by 0x668C529: auto librados::async_watch<boost::asio::any_io_executor, boost::asio::basic_yield_context<boost::asio::any_io_executor> >(boost::asio::any_io_executor, librados::v14_2_0::IoCtx&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned long*, librados::v14_2_0::WatchCtx2*, unsigned int, boost::asio::basic_yield_context<boost::asio::any_io_executor>&&)::{lambda(auto:1, boost::asio::any_io_executor, librados::v14_2_0::IoCtx const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned long*, librados::v14_2_0::WatchCtx2*, unsigned int)#1}::operator()<boost::asio::detail::spawn_handler<boost::asio::any_io_executor, void (boost::system::error_code, unsigned long), void> >(boost::asio::detail::spawn_handler<boost::asio::any_io_executor, void (boost::system::error_code, unsigned long), void>, boost::asio::any_io_executor, librados::v14_2_0::IoCtx const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned long*, librados::v14_2_0::WatchCtx2*, unsigned int) const (librados_asio.h:291)
==432931== by 0x668C3BE: boost::asio::async_result<boost::asio::basic_yield_context<boost::asio::any_io_executor>, void (boost::system::error_code, unsigned long)>::initiate<librados::async_watch<boost::asio::any_io_executor, boost::asio::basic_yield_context<boost::asio::any_io_executor> >(boost::asio::any_io_executor, librados::v14_2_0::IoCtx&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned long*, librados::v14_2_0::WatchCtx2*, unsigned int, boost::asio::basic_yield_context<boost::asio::any_io_executor>&&)::{lambda(auto:1, boost::asio::any_io_executor, librados::v14_2_0::IoCtx const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned long*, librados::v14_2_0::WatchCtx2*, unsigned int)#1}, boost::asio::any_io_executor&, librados::v14_2_0::IoCtx&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned long*&, librados::v14_2_0::WatchCtx2*&, unsigned int&>(librados::async_watch<boost::asio::any_io_executor, boost::asio::basic_yield_context<boost::asio::any_io_executor> >(boost::asio::any_io_executor, librados::v14_2_0::IoCtx&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned long*, librados::v14_2_0::WatchCtx2*, unsigned int, boost::asio::basic_yield_context<boost::asio::any_io_executor>&&)::{lambda(auto:1, boost::asio::any_io_executor, librados::v14_2_0::IoCtx const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned long*, librados::v14_2_0::WatchCtx2*, unsigned int)#1}&&, boost::asio::basic_yield_context<boost::asio::any_io_executor> const&, boost::asio::any_io_executor&, librados::v14_2_0::IoCtx&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned long*&, librados::v14_2_0::WatchCtx2*&, unsigned int&)::{lambda()#1}::operator()() const (spawn.hpp:666)
==432931== by 0x668E502: void boost::asio::detail::spawned_thread_base::call<boost::asio::async_result<boost::asio::basic_yield_context<boost::asio::any_io_executor>, void (boost::system::error_code, unsigned long)>::initiate<librados::async_watch<boost::asio::any_io_executor, boost::asio::basic_yield_context<boost::asio::any_io_executor> >(boost::asio::any_io_executor, librados::v14_2_0::IoCtx&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned long*, librados::v14_2_0::WatchCtx2*, unsigned int, boost::asio::basic_yield_context<boost::asio::any_io_executor>&&)::{lambda(auto:1, boost::asio::any_io_executor, librados::v14_2_0::IoCtx const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned long*, librados::v14_2_0::WatchCtx2*, unsigned int)#1}, boost::asio::any_io_executor&, librados::v14_2_0::IoCtx&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned long*&, librados::v14_2_0::WatchCtx2*&, unsigned int&>(librados::async_watch<boost::asio::any_io_executor, boost::asio::basic_yield_context<boost::asio::any_io_executor> >(boost::asio::any_io_executor, librados::v14_2_0::IoCtx&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned long*, librados::v14_2_0::WatchCtx2*, unsigned int, boost::asio::basic_yield_context<boost::asio::any_io_executor>&&)::{lambda(auto:1, boost::asio::any_io_executor, librados::v14_2_0::IoCtx const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned long*, librados::v14_2_0::WatchCtx2*, unsigned int)#1}&&, boost::asio::basic_yield_context<boost::asio::any_io_executor> const&, boost::asio::any_io_executor&, librados::v14_2_0::IoCtx&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned long*&, librados::v14_2_0::WatchCtx2*&, unsigned int&)::{lambda()#1}>(void*) (spawn.hpp:141)
==432931== by 0x43269B6: boost::asio::detail::spawned_fiber_thread::resume() (spawn.hpp:105)
==432931== by 0x40ED5CE: boost::asio::detail::spawned_thread_resumer::operator()() (spawn.hpp:214)
==432931== by 0x41ADC1C: boost::asio::detail::spawn_handler_base<boost::asio::any_io_executor>::resume() (spawn.hpp:299)
==432931== by 0x66930CE: boost::asio::detail::spawn_handler<boost::asio::any_io_executor, void (boost::system::error_code, unsigned long), void>::operator()(boost::system::error_code, unsigned long) (spawn.hpp:461)
==432931== by 0x6692F38: boost::asio::result_of<boost::asio::detail::spawn_handler<boost::asio::any_io_executor, void (boost::system::error_code, unsigned long), void> (boost::system::error_code, unsigned long)>::type boost::asio::executor_binder<boost::asio::detail::spawn_handler<boost::asio::any_io_executor, void (boost::system::error_code, unsigned long), void>, boost::asio::any_io_executor>::operator()<boost::system::error_code, unsigned long>(boost::system::error_code&&, unsigned long&&) && (bind_executor.hpp:391)
==432931==
==432931== Invalid read of size 8
==432931== at 0xCEFDBD2: std::__atomic_base<unsigned long>::operator--() (atomic_base.h:406)
==432931== by 0xCEFD214: ceph::common::RefCountedObject::put() const (RefCountedObj.cc:19)
==432931== by 0xD7A3248: Objecter::linger_cancel(Objecter::LingerOp*) (Objecter.cc:791)
==432931== by 0xCC6946B: librados::(anonymous namespace)::CB_aio_linger_cancel::operator()() (IoCtxImpl.cc:99)
==432931== by 0xCC7BA5F: boost::asio::detail::binder0<librados::(anonymous namespace)::CB_aio_linger_cancel>::operator()() (bind_handler.hpp:56)
==432931== by 0xCC7BE80: boost::asio::detail::executor_op<boost::asio::detail::binder0<librados::(anonymous namespace)::CB_aio_linger_cancel>, std::allocator<void>, boost::asio::detail::scheduler_operation>::do_complete(void*, boost::asio::detail::scheduler_operation*, boost::system::error_code const&, unsigned long) (executor_op.hpp:70)
==432931== by 0xCC7DF9F: boost::asio::detail::scheduler_operation::complete(void*, boost::system::error_code const&, unsigned long) (scheduler_operation.hpp:40)
==432931== by 0xCC7EC16: boost::asio::detail::strand_executor_service::run_ready_handlers(std::shared_ptr<boost::asio::detail::strand_executor_service::strand_impl>&) (strand_executor_service.ipp:150)
==432931== by 0xCCA272D: boost::asio::detail::strand_executor_service::invoker<boost::asio::io_context::basic_executor_type<std::allocator<void>, 0ul> const, void>::operator()() (strand_executor_service.hpp:121)
==432931== by 0xCCA4043: boost::asio::detail::executor_op<boost::asio::detail::strand_executor_service::invoker<boost::asio::io_context::basic_executor_type<std::allocator<void>, 0ul> const, void>, std::allocator<void>, boost::asio::detail::scheduler_operation>::do_complete(void*, boost::asio::detail::scheduler_operation*, boost::system::error_code const&, unsigned long) (executor_op.hpp:70)
==432931== by 0xCC7DF9F: boost::asio::detail::scheduler_operation::complete(void*, boost::system::error_code const&, unsigned long) (scheduler_operation.hpp:40)
==432931== by 0xCCBCF44: boost::asio::detail::scheduler::do_run_one(boost::asio::detail::conditionally_enabled_mutex::scoped_lock&, boost::asio::detail::scheduler_thread_info&, boost::system::error_code const&) (scheduler.ipp:492)
==432931== Address 0x25717008 is 8 bytes inside a block of size 1,120 free'd
==432931== at 0xCA73E78: operator delete(void*, unsigned long) (vg_replace_malloc.c:1181)
==432931== by 0xD85604E: Objecter::LingerOp::~LingerOp() (Objecter.h:2336)
==432931== by 0xCEFD487: ceph::common::RefCountedObject::put() const (RefCountedObj.cc:28)
==432931== by 0xD7A3248: Objecter::linger_cancel(Objecter::LingerOp*) (Objecter.cc:791)
==432931== by 0xCC73EE8: librados::IoCtxImpl::unwatch(unsigned long) (IoCtxImpl.cc:1765)
==432931== by 0xCC44DA7: librados::v14_2_0::IoCtx::unwatch2(unsigned long) (librados_cxx.cc:2149)
==432931== by 0x662CCAB: rgw_rados_ref::unwatch(DoutPrefixProvider const*, unsigned long, optional_yield) (rgw_tools.cc:145)
==432931== by 0x76BB81F: RGWSI_Notify::unwatch(DoutPrefixProvider const*, rgw_rados_ref&, unsigned long, optional_yield) (svc_notify.cc:334)
==432931== by 0x76C5C03: RGWWatcher::unregister_watch(optional_yield) (svc_notify.cc:117)
==432931== by 0x76C57B9: RGWWatcher::reinit() (svc_notify.cc:95)
==432931== by 0x76C48F4: RGWWatcher::C_ReinitWatch::finish(int) (svc_notify.cc:39)
==432931== by 0x447385C: Context::complete(int) (Context.h:102)
==432931== Block was alloc'd at
==432931== at 0xCA702AC: operator new(unsigned long) (vg_replace_malloc.c:487)
==432931== by 0xD7A36CC: Objecter::linger_register(object_t const&, object_locator_t const&, int) (Objecter.cc:823)
==432931== by 0xCC737DF: librados::IoCtxImpl::aio_watch(object_t const&, librados::AioCompletionImpl*, unsigned long*, librados::v14_2_0::WatchCtx*, librados::v14_2_0::WatchCtx2*, unsigned int, bool) (IoCtxImpl.cc:1705)
==432931== by 0xCC44CF5: librados::v14_2_0::IoCtx::aio_watch2(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, librados::v14_2_0::AioCompletion*, unsigned long*, librados::v14_2_0::WatchCtx2*, unsigned int) (librados_cxx.cc:2139)
==432931== by 0x668C529: auto librados::async_watch<boost::asio::any_io_executor, boost::asio::basic_yield_context<boost::asio::any_io_executor> >(boost::asio::any_io_executor, librados::v14_2_0::IoCtx&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned long*, librados::v14_2_0::WatchCtx2*, unsigned int, boost::asio::basic_yield_context<boost::asio::any_io_executor>&&)::{lambda(auto:1, boost::asio::any_io_executor, librados::v14_2_0::IoCtx const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned long*, librados::v14_2_0::WatchCtx2*, unsigned int)#1}::operator()<boost::asio::detail::spawn_handler<boost::asio::any_io_executor, void (boost::system::error_code, unsigned long), void> >(boost::asio::detail::spawn_handler<boost::asio::any_io_executor, void (boost::system::error_code, unsigned long), void>, boost::asio::any_io_executor, librados::v14_2_0::IoCtx const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned long*, librados::v14_2_0::WatchCtx2*, unsigned int) const (librados_asio.h:291)
==432931== by 0x668C3BE: boost::asio::async_result<boost::asio::basic_yield_context<boost::asio::any_io_executor>, void (boost::system::error_code, unsigned long)>::initiate<librados::async_watch<boost::asio::any_io_executor, boost::asio::basic_yield_context<boost::asio::any_io_executor> >(boost::asio::any_io_executor, librados::v14_2_0::IoCtx&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned long*, librados::v14_2_0::WatchCtx2*, unsigned int, boost::asio::basic_yield_context<boost::asio::any_io_executor>&&)::{lambda(auto:1, boost::asio::any_io_executor, librados::v14_2_0::IoCtx const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned long*, librados::v14_2_0::WatchCtx2*, unsigned int)#1}, boost::asio::any_io_executor&, librados::v14_2_0::IoCtx&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned long*&, librados::v14_2_0::WatchCtx2*&, unsigned int&>(librados::async_watch<boost::asio::any_io_executor, boost::asio::basic_yield_context<boost::asio::any_io_executor> >(boost::asio::any_io_executor, librados::v14_2_0::IoCtx&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned long*, librados::v14_2_0::WatchCtx2*, unsigned int, boost::asio::basic_yield_context<boost::asio::any_io_executor>&&)::{lambda(auto:1, boost::asio::any_io_executor, librados::v14_2_0::IoCtx const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned long*, librados::v14_2_0::WatchCtx2*, unsigned int)#1}&&, boost::asio::basic_yield_context<boost::asio::any_io_executor> const&, boost::asio::any_io_executor&, librados::v14_2_0::IoCtx&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned long*&, librados::v14_2_0::WatchCtx2*&, unsigned int&)::{lambda()#1}::operator()() const (spawn.hpp:666)
==432931== by 0x668E502: void boost::asio::detail::spawned_thread_base::call<boost::asio::async_result<boost::asio::basic_yield_context<boost::asio::any_io_executor>, void (boost::system::error_code, unsigned long)>::initiate<librados::async_watch<boost::asio::any_io_executor, boost::asio::basic_yield_context<boost::asio::any_io_executor> >(boost::asio::any_io_executor, librados::v14_2_0::IoCtx&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned long*, librados::v14_2_0::WatchCtx2*, unsigned int, boost::asio::basic_yield_context<boost::asio::any_io_executor>&&)::{lambda(auto:1, boost::asio::any_io_executor, librados::v14_2_0::IoCtx const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned long*, librados::v14_2_0::WatchCtx2*, unsigned int)#1}, boost::asio::any_io_executor&, librados::v14_2_0::IoCtx&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned long*&, librados::v14_2_0::WatchCtx2*&, unsigned int&>(librados::async_watch<boost::asio::any_io_executor, boost::asio::basic_yield_context<boost::asio::any_io_executor> >(boost::asio::any_io_executor, librados::v14_2_0::IoCtx&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned long*, librados::v14_2_0::WatchCtx2*, unsigned int, boost::asio::basic_yield_context<boost::asio::any_io_executor>&&)::{lambda(auto:1, boost::asio::any_io_executor, librados::v14_2_0::IoCtx const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned long*, librados::v14_2_0::WatchCtx2*, unsigned int)#1}&&, boost::asio::basic_yield_context<boost::asio::any_io_executor> const&, boost::asio::any_io_executor&, librados::v14_2_0::IoCtx&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned long*&, librados::v14_2_0::WatchCtx2*&, unsigned int&)::{lambda()#1}>(void*) (spawn.hpp:141)
==432931== by 0x43269B6: boost::asio::detail::spawned_fiber_thread::resume() (spawn.hpp:105)
==432931== by 0x40ED5CE: boost::asio::detail::spawned_thread_resumer::operator()() (spawn.hpp:214)
==432931== by 0x41ADC1C: boost::asio::detail::spawn_handler_base<boost::asio::any_io_executor>::resume() (spawn.hpp:299)
==432931== by 0x66930CE: boost::asio::detail::spawn_handler<boost::asio::any_io_executor, void (boost::system::error_code, unsigned long), void>::operator()(boost::system::error_code, unsigned long) (spawn.hpp:461)
==432931== by 0x6692F38: boost::asio::result_of<boost::asio::detail::spawn_handler<boost::asio::any_io_executor, void (boost::system::error_code, unsigned long), void> (boost::system::error_code, unsigned long)>::type boost::asio::executor_binder<boost::asio::detail::spawn_handler<boost::asio::any_io_executor, void (boost::system::error_code, unsigned long), void>, boost::asio::any_io_executor>::operator()<boost::system::error_code, unsigned long>(boost::system::error_code&&, unsigned long&&) && (bind_executor.hpp:391)
==432931==
==432931== Thread 67 fn_anonymous:
==432931== Invalid write of size 8
==432931== at 0xCC73268: librados::IoCtxImpl::set_sync_op_version(unsigned long) (IoCtxImpl.cc:1573)
==432931== by 0xCC73F16: librados::IoCtxImpl::unwatch(unsigned long) (IoCtxImpl.cc:1768)
==432931== by 0xCC44DA7: librados::v14_2_0::IoCtx::unwatch2(unsigned long) (librados_cxx.cc:2149)
==432931== by 0x662CCAB: rgw_rados_ref::unwatch(DoutPrefixProvider const*, unsigned long, optional_yield) (rgw_tools.cc:145)
==432931== by 0x76BB81F: RGWSI_Notify::unwatch(DoutPrefixProvider const*, rgw_rados_ref&, unsigned long, optional_yield) (svc_notify.cc:334)
==432931== by 0x76C5C03: RGWWatcher::unregister_watch(optional_yield) (svc_notify.cc:117)
==432931== by 0x76C57B9: RGWWatcher::reinit() (svc_notify.cc:95)
==432931== by 0x76C48F4: RGWWatcher::C_ReinitWatch::finish(int) (svc_notify.cc:39)
==432931== by 0x447385C: Context::complete(int) (Context.h:102)
==432931== by 0xCE97A13: Finisher::finisher_thread_entry() (Finisher.cc:109)
==432931== by 0xCE985AF: Finisher::FinisherThread::entry() (Finisher.h:67)
==432931== by 0xCF0CA94: Thread::entry_wrapper() (Thread.cc:87)
==432931== Address 0x1c3ddfb8 is 72 bytes inside a block of size 416 free'd
==432931== at 0xCA73E78: operator delete(void*, unsigned long) (vg_replace_malloc.c:1181)
==432931== by 0xCC09BBA: librados::IoCtxImpl::put() (IoCtxImpl.h:82)
==432931== by 0xCC3FA62: librados::v14_2_0::IoCtx::close() (librados_cxx.cc:1171)
==432931== by 0xCC3FA1F: librados::v14_2_0::IoCtx::~IoCtx() (librados_cxx.cc:1161)
==432931== by 0x4101CD9: rgw_rados_ref::~rgw_rados_ref() (rgw_tools.h:126)
==432931== by 0x76C860A: RGWWatcher::~RGWWatcher() (svc_notify.cc:25)
==432931== by 0x76C8683: void std::destroy_at<RGWWatcher>(RGWWatcher*) (stl_construct.h:88)
==432931== by 0x76C8188: void std::_Destroy<RGWWatcher>(RGWWatcher*) (stl_construct.h:164)
==432931== by 0x76C78B1: void std::_Destroy<RGWWatcher*>(RGWWatcher*, RGWWatcher*) (stl_construct.h:212)
==432931== by 0x76C7510: _Destroy<RGWWatcher*, RGWWatcher> (alloc_traits.h:1045)
==432931== by 0x76C7510: std::vector<RGWWatcher, std::allocator<RGWWatcher> >::_M_erase_at_end(RGWWatcher*) (stl_vector.h:2238)
==432931== by 0x76C6A6F: std::vector<RGWWatcher, std::allocator<RGWWatcher> >::clear() (stl_vector.h:1864)
==432931== by 0x76BABF7: RGWSI_Notify::finalize_watch(boost::asio::basic_yield_context<boost::asio::any_io_executor>) (svc_notify.cc:249)
==432931== Block was alloc'd at
==432931== at 0xCA702AC: operator new(unsigned long) (vg_replace_malloc.c:487)
==432931== by 0xCCAB5A1: librados::v14_2_0::RadosClient::create_ioctx(char const*, librados::IoCtxImpl**) (RadosClient.cc:482)
==432931== by 0xCBF3AA3: rados_ioctx_create@@ (librados_c.cc:1131)
==432931== by 0xCC46C52: librados::v14_2_0::Rados::ioctx_create(char const*, librados::v14_2_0::IoCtx&) (librados_cxx.cc:2662)
==432931== by 0x662B674: rgw_init_ioctx(DoutPrefixProvider const*, librados::v14_2_0::Rados*, rgw_pool const&, librados::v14_2_0::IoCtx&, bool, bool, bool) (rgw_tools.cc:30)
==432931== by 0x662C70E: rgw_get_rados_ref(DoutPrefixProvider const*, librados::v14_2_0::Rados*, rgw_raw_obj, rgw_rados_ref*) (rgw_tools.cc:108)
==432931== by 0x76BA51F: RGWSI_Notify::init_watch(DoutPrefixProvider const*, boost::asio::basic_yield_context<boost::asio::any_io_executor>) (svc_notify.cc:195)
==432931== by 0x76BACCC: RGWSI_Notify::do_start(optional_yield, DoutPrefixProvider const*)::{lambda(boost::asio::basic_yield_context<boost::asio::any_io_executor>)#1}::operator()(boost::asio::basic_yield_context<boost::asio::any_io_executor>) const (svc_notify.cc:279)
==432931== by 0x76C2FEB: void boost::asio::detail::spawn_entry_point<boost::asio::io_context::basic_executor_type<std::allocator<void>, 0ul>, RGWSI_Notify::do_start(optional_yield, DoutPrefixProvider const*)::{lambda(boost::asio::basic_yield_context<boost::asio::any_io_executor>)#1}, RGWSI_Notify::do_start(optional_yield, DoutPrefixProvider const*)::{lambda(std::__exception_ptr::exception_ptr, int)#1}>::call<int>(boost::asio::basic_yield_context<boost::asio::io_context::basic_executor_type<std::allocator<void>, 0ul> > const&, boost::asio::void_type<int>) (spawn.hpp:780)
==432931== by 0x76C2959: boost::asio::detail::spawn_entry_point<boost::asio::io_context::basic_executor_type<std::allocator<void>, 0ul>, RGWSI_Notify::do_start(optional_yield, DoutPrefixProvider const*)::{lambda(boost::asio::basic_yield_context<boost::asio::any_io_executor>)#1}, RGWSI_Notify::do_start(optional_yield, DoutPrefixProvider const*)::{lambda(std::__exception_ptr::exception_ptr, int)#1}>::operator()(boost::asio::detail::spawned_thread_base*) (spawn.hpp:737)
==432931== by 0x76C2495: boost::asio::detail::spawned_fiber_thread::entry_point<boost::asio::detail::spawn_entry_point<boost::asio::io_context::basic_executor_type<std::allocator<void>, 0ul>, RGWSI_Notify::do_start(optional_yield, DoutPrefixProvider const*)::{lambda(boost::asio::basic_yield_context<boost::asio::any_io_executor>)#1}, RGWSI_Notify::do_start(optional_yield, DoutPrefixProvider const*)::{lambda(std::__exception_ptr::exception_ptr, int)#1}> >::operator()(boost::context::fiber&&) (spawn.hpp:152)
==432931== by 0x76C1F3D: boost::context::fiber std::__invoke_impl<boost::context::fiber, boost::asio::detail::spawned_fiber_thread::entry_point<boost::asio::detail::spawn_entry_point<boost::asio::io_context::basic_executor_type<std::allocator<void>, 0ul>, RGWSI_Notify::do_start(optional_yield, DoutPrefixProvider const*)::{lambda(boost::asio::basic_yield_context<boost::asio::any_io_executor>)#1}, RGWSI_Notify::do_start(optional_yield, DoutPrefixProvider const*)::{lambda(std::__exception_ptr::exception_ptr, int)#1}> >&, boost::context::fiber>(std::__invoke_other, boost::asio::detail::spawned_fiber_thread::entry_point<boost::asio::detail::spawn_entry_point<boost::asio::io_context::basic_executor_type<std::allocator<void>, 0ul>, RGWSI_Notify::do_start(optional_yield, DoutPrefixProvider const*)::{lambda(boost::asio::basic_yield_context<boost::asio::any_io_executor>)#1}, RGWSI_Notify::do_start(optional_yield, DoutPrefixProvider const*)::{lambda(std::__exception_ptr::exception_ptr, int)#1}> >&, boost::context::fiber&&) (invoke.h:63)
==432931==
==432931== Invalid read of size 8
==432931== at 0xCC73381: librados::IoCtxImpl::watch(object_t const&, unsigned long*, librados::v14_2_0::WatchCtx*, librados::v14_2_0::WatchCtx2*, unsigned int, bool) (IoCtxImpl.cc:1660)
==432931== by 0xCC73306: librados::IoCtxImpl::watch(object_t const&, unsigned long*, librados::v14_2_0::WatchCtx*, librados::v14_2_0::WatchCtx2*, bool) (IoCtxImpl.cc:1647)
==432931== by 0xCC44A87: librados::v14_2_0::IoCtx::watch2(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned long*, librados::v14_2_0::WatchCtx2*) (librados_cxx.cc:2115)
==432931== by 0x662CB03: rgw_rados_ref::watch(DoutPrefixProvider const*, unsigned long*, librados::v14_2_0::WatchCtx2*, optional_yield) (rgw_tools.cc:131)
==432931== by 0x76C5C7B: RGWWatcher::register_watch(optional_yield) (svc_notify.cc:127)
==432931== by 0x76C5948: RGWWatcher::reinit() (svc_notify.cc:107)
==432931== by 0x76C48F4: RGWWatcher::C_ReinitWatch::finish(int) (svc_notify.cc:39)
==432931== by 0x447385C: Context::complete(int) (Context.h:102)
==432931== by 0xCE97A13: Finisher::finisher_thread_entry() (Finisher.cc:109)
==432931== by 0xCE985AF: Finisher::FinisherThread::entry() (Finisher.h:67)
==432931== by 0xCF0CA94: Thread::entry_wrapper() (Thread.cc:87)
==432931== by 0xCF0CA13: Thread::_entry_func(void*) (Thread.cc:74)
==432931== Address 0x198 is not stack'd, malloc'd or (recently) free'd
==432931==
==432931==
==432931== Process terminating with default action of signal 11 (SIGSEGV): dumping core
==432931== at 0x105CCE9C: __pthread_kill_implementation (pthread_kill.c:44)
==432931== by 0x10572F3D: raise (raise.c:26)
==432931== by 0x8105C81: reraise_fatal(int) (signal_handler.cc:92)
==432931== by 0x8107417: handle_oneshot_fatal_signal(int) (signal_handler.cc:371)
==432931== by 0x1057306F: ??? (in /usr/lib64/libc.so.6)
==432931== by 0xCC73380: librados::IoCtxImpl::watch(object_t const&, unsigned long*, librados::v14_2_0::WatchCtx*, librados::v14_2_0::WatchCtx2*, unsigned int, bool) (IoCtxImpl.cc:1660)
==432931== by 0xCC73306: librados::IoCtxImpl::watch(object_t const&, unsigned long*, librados::v14_2_0::WatchCtx*, librados::v14_2_0::WatchCtx2*, bool) (IoCtxImpl.cc:1647)
==432931== by 0xCC44A87: librados::v14_2_0::IoCtx::watch2(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned long*, librados::v14_2_0::WatchCtx2*) (librados_cxx.cc:2115)
==432931== by 0x662CB03: rgw_rados_ref::watch(DoutPrefixProvider const*, unsigned long*, librados::v14_2_0::WatchCtx2*, optional_yield) (rgw_tools.cc:131)
==432931== by 0x76C5C7B: RGWWatcher::register_watch(optional_yield) (svc_notify.cc:127)
==432931== by 0x76C5948: RGWWatcher::reinit() (svc_notify.cc:107)
==432931== by 0x76C48F4: RGWWatcher::C_ReinitWatch::finish(int) (svc_notify.cc:39)
==432931==
==432931== HEAP SUMMARY:
==432931== in use at exit: 76,833,089 bytes in 55,391 blocks
==432931== total heap usage: 153,147 allocs, 97,756 frees, 142,043,581 bytes allocated
==432931==
==432931== LEAK SUMMARY:
==432931== definitely lost: 0 bytes in 0 blocks
==432931== indirectly lost: 0 bytes in 0 blocks
==432931== possibly lost: 105,624 bytes in 81 blocks
==432931== still reachable: 76,720,481 bytes in 55,295 blocks
==432931== suppressed: 6,984 bytes in 15 blocks
==432931== Rerun with --leak-check=full to see details of leaked memory
==432931==
==432931== For lists of detected and suppressed errors, rerun with: -s
==432931== ERROR SUMMARY: 8 errors from 6 contexts (suppressed: 0 from 0)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment