Skip to content

Instantly share code, notes, and snippets.

@cbodley
Created March 5, 2023 19:32
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save cbodley/d0ab0a9a75fcfeb5341e3a09f80eee5a to your computer and use it in GitHub Desktop.
Save cbodley/d0ab0a9a75fcfeb5341e3a09f80eee5a to your computer and use it in GitHub Desktop.
asan warning makecontext/swapcontext
setting up user testid
==139529==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases!
=================================================================
==139529==ERROR: AddressSanitizer: heap-buffer-overflow on address 0x6190000a04a8 at pc 0x5558ab885f43 bp 0x7fb8534d2e70 sp 0x7fb8534d2e68
READ of size 8 at 0x6190000a04a8 thread T80
#0 0x5558ab885f42 in boost::context::detail::activation_record::resume() /home/cbodley/ceph/build/boost/include/boost/context/continuation_ucontext.hpp:12
6
#1 0x5558ab893393 in boost::context::continuation::resume() && /home/cbodley/ceph/build/boost/include/boost/context/continuation_ucontext.hpp:410
#2 0x5558abe73fe9 in boost::context::continuation::resume() & /home/cbodley/ceph/build/boost/include/boost/context/continuation_ucontext.hpp:403
#3 0x5558abe73fe9 in spawn::detail::continuation_context::resume() /home/cbodley/ceph/src/spawn/include/spawn/impl/spawn.hpp:37
#4 0x5558abe7ac41 in spawn::detail::coro_async_result<boost::asio::executor_binder<void (*)(), boost::asio::strand<boost::asio::io_context::basic_executor_type<std::allocator<void>, 0ul> > >, void>::get() /home/cbodley/ceph/src/spawn/include/spawn/impl/spawn.hpp:256
#5 0x5558ad616839 in boost::asio::constraint<!boost::asio::detail::async_result_has_initiate_memfn<spawn::basic_yield_context<boost::asio::executor_binder<void (*)(), boost::asio::strand<boost::asio::io_context::basic_executor_type<std::allocator<void>, 0ul> > > >, void (boost::system::error_code)>::value, boost::asio::async_result<std::decay<spawn::basic_yield_context<boost::asio::executor_binder<void (*)(), boost::asio::strand<boost::asio::io_context::basic_executor_type<std::allocator<void>, 0ul> > > > >::type, void (boost::system::error_code)>::return_type>::type boost::asio::async_initiate<spawn::basic_yield_context<boost::asio::executor_binder<void (*)(), boost::asio::strand<boost::asio::io_context::basic_executor_type<std::allocator<void>, 0ul> > > >, void (boost::system::error_code), boost::asio::basic_waitable_timer<ceph::coarse_mono_clock, boost::asio::wait_traits<ceph::coarse_mono_clock>, boost::asio::io_context::basic_executor_type<std::allocator<void>, 0ul> >::initiate_async_wait>(boost::asio::basic_waitable_timer<ceph::coarse_mono_clock, boost::asio::wait_traits<ceph::coarse_mono_clock>, boost::asio::io_context::basic_executor_type<std::allocator<void>, 0ul> >::initiate_async_wait&&, spawn::basic_yield_context<boost::asio::executor_binder<void (*)(), boost::asio::strand<boost::asio::io_context::basic_executor_type<std::allocator<void>, 0ul> > > >&) /home/cbodley/ceph/build/boost/include/boost/asio/async_result.hpp:885
#6 0x5558ad64b053 in auto boost::asio::basic_waitable_timer<ceph::coarse_mono_clock, boost::asio::wait_traits<ceph::coarse_mono_clock>, boost::asio::io_context::basic_executor_type<std::allocator<void>, 0ul> >::async_wait<spawn::basic_yield_context<boost::asio::executor_binder<void (*)(), boost::asio::strand<boost::asio::io_context::basic_executor_type<std::allocator<void>, 0ul> > > > >(spawn::basic_yield_context<boost::asio::executor_binder<void (*)(), boost::asio::strand<boost::asio::io_context::basic_executor_type<std::allocator<void>, 0ul> > > >&&) /home/cbodley/ceph/build/boost/include/boost/asio/basic_waitable_timer.hpp:776
#7 0x5558ad64b053 in rgw::notify::Manager::process_queues(spawn::basic_yield_context<boost::asio::executor_binder<void (*)(), boost::asio::strand<boost::asio::io_context::basic_executor_type<std::allocator<void>, 0ul> > > >) /home/cbodley/ceph/src/rgw/driver/rados/rgw_notify.cc:397
#8 0x5558ad64f8f1 in rgw::notify::Manager::Manager(ceph::common::CephContext*, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, rgw::sal::RadosStore*)::{lambda(spawn::basic_yield_context<boost::asio::executor_binder<void (*)(), boost::asio::strand<boost::asio::io_context::basic_executor_type<std::allocator<void>, 0ul> > > >)#1}::operator()(spawn::basic_yield_context<boost::asio::executor_binder<void (*)(), boost::asio::strand<boost::asio::io_context::basic_executor_type<std::allocator<void>, 0ul> > > >) const /home/cbodley/ceph/src/rgw/driver/rados/rgw_notify.cc:492
...
0x6190000a04a8 is located 8 bytes to the right of 1056-byte region [0x6190000a0080,0x6190000a04a0)
allocated by thread T80 here:
#0 0x7fb8c24bb1a8 in operator new(unsigned long) (/lib64/libasan.so.8+0xbb1a8)
#1 0x5558aeed8529 in boost::context::detail::activation_record::current() (/home/cbodley/ceph/build/bin/radosgw-admin+0x13483529)
#2 0x5558ab893393 in boost::context::continuation::resume() && /home/cbodley/ceph/build/boost/include/boost/context/continuation_ucontext.hpp:410
#3 0x5558ad610b7b in boost::context::continuation boost::context::callcc<boost::context::basic_protected_fixedsize_stack<boost::context::stack_traits>, spawn::detail::spawn_helper<boost::asio::executor_binder<void (*)(), boost::asio::strand<boost::asio::io_context::basic_executor_type<std::allocator<void>, 0ul> > >, rgw::notify::Manager::Manager(ceph::common::CephContext*, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, rgw::sal::RadosStore*)::{lambda(spawn::basic_yield_context<boost::asio::executor_binder<void (*)(), boost::asio::strand<boost::asio::io_context::basic_executor_type<std::allocator<void>, 0ul> > > >)#1}, boost::context::basic_protected_fixedsize_stack<boost::context::stack_traits> >::operator()()::{lambda(boost::context::continuation&&)#1}>(std::allocator_arg_t, boost::context::basic_protected_fixedsize_stack<boost::context::stack_traits>&&, spawn::detail::spawn_helper<boost::asio::executor_binder<void (*)(), boost::asio::strand<boost::asio::io_context::basic_executor_type<std::allocator<void>, 0ul> > >, rgw::notify::Manager::Manager(ceph::common::CephContext*, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, rgw::sal::RadosStore*)::{lambda(spawn::basic_yield_context<boost::asio::executor_binder<void (*)(), boost::asio::strand<boost::asio::io_context::basic_executor_type<std::allocator<void>, 0ul> > > >)#1}, boost::context::basic_protected_fixedsize_stack<boost::context::stack_traits> >::operator()()::{lambda(boost::context::continuation&&)#1}&&) /home/cbodley/ceph/build/boost/include/boost/context/continuation_ucontext.hpp:516
#4 0x5558ad610ede in spawn::detail::spawn_helper<boost::asio::executor_binder<void (*)(), boost::asio::strand<boost::asio::io_context::basic_executor_type<std::allocator<void>, 0ul> > >, rgw::notify::Manager::Manager(ceph::common::CephContext*, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, rgw::sal::RadosStore*)::{lambda(spawn::basic_yield_context<boost::asio::executor_binder<void (*)(), boost::asio::strand<boost::asio::io_context::basic_executor_type<std::allocator<void>, 0ul> > > >)#1}, boost::context::basic_protected_fixedsize_stack<boost::context::stack_traits> >::operator()() /home/cbodley/ceph/src/spawn/include/spawn/impl/spawn.hpp:381
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment