Actions
Bug #58748
openrgw crashed in RGWObjManifest::encode during bucket notification test
% Done:
0%
Source:
Tags:
Backport:
Regression:
No
Severity:
3 - minor
Reviewed:
Affected Versions:
ceph-qa-suite:
Pull request ID:
Crash signature (v1):
Crash signature (v2):
Description
crash do happening during PUT object, when RGW is running with vstart with bucket notifications.
load was done via hsbench (more details are here: https://gist.github.com/yuvalif/3419238fe8debc80c5fdadc30d9b2340)
backtrace does not seem related to the notifications code path:
#0 0x00007f87017041f3 in std::_Rb_tree_increment(std::_Rb_tree_node_base*) () from /lib64/libstdc++.so.6 #1 0x0000563c71d8accd in std::_Rb_tree_const_iterator<std::pair<unsigned long const, RGWObjManifestRule> >::operator++ (this=<synthetic pointer>) at /opt/rh/gcc-toolset-11/root/usr/include/c++/11/bits/stl_tree.h:366 #2 ceph::encode<unsigned long, RGWObjManifestRule, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, RGWObjManifestRule> >, denc_traits<unsigned long, void>, denc_traits<RGWObjManifestRule, void> > ( m=std::map with 1 element = {...}, bl=...) at ../src/include/encoding.h:1036 #3 0x0000563c71d9d74d in RGWObjManifest::encode (this=0x563c87da3c70, bl=...) at ../src/rgw/driver/rados/rgw_obj_manifest.h:270 #4 0x0000563c71d6df93 in encode (features=0, bl=..., c=...) at ../src/rgw/driver/rados/rgw_obj_manifest.h:618 #5 RGWRados::Object::Write::_do_write_meta (this=this@entry=0x7f85c563cc00, dpp=<optimized out>, dpp@entry=0x563c82119700, size=size@entry=1024, accounted_size=accounted_size@entry=1024, attrs=std::map with 4 elements = {...}, assume_noent=assume_noent@entry=true, modify_tail=true, _index_op=0x7f85c563c270, y=...) at ../src/rgw/driver/rados/rgw_rados.cc:3117 #6 0x0000563c71d6f36c in RGWRados::Object::Write::write_meta (this=this@entry=0x7f85c563cc00, dpp=0x563c82119700, size=size@entry=1024, accounted_size=accounted_size@entry=1024, attrs=std::map with 4 elements = {...}, y=...) at ../src/rgw/driver/rados/rgw_rados.cc:3316 #7 0x0000563c7210342c in rgw::putobj::AtomicObjectProcessor::complete (this=this@entry=0x563c87da3a28, accounted_size=1024, etag="070f903e3b6ad4f35a82f4827587c74f", mtime=mtime@entry=0x563c8211a018, set_mtime=..., attrs=std::map with 4 elements = {...}, delete_at=..., if_match=0x0, if_nomatch=0x0, user_data=0x0, zones_trace=0x0, pcanceled=0x0, y=...) at ../src/rgw/driver/rados/rgw_putobj_processor.cc:337 #8 0x0000563c71dd2763 in rgw::sal::RadosAtomicWriter::complete (this=this@entry=0x563c87da3a00, accounted_size=<optimized out>, etag="070f903e3b6ad4f35a82f4827587c74f", mtime=mtime@entry=0x563c8211a018, set_mtime=..., set_mtime@entry=..., attrs=std::map with 4 elements = {...}, delete_at=..., if_match=0x0, if_nomatch=0x0, user_data=0x0, zones_trace=0x0, canceled=0x0, y=...) at ../src/rgw/driver/rados/rgw_sal_rados.cc:2965 #9 0x0000563c71b1fb2c in RGWPutObj::execute (this=0x563c82119700, y=...) at /opt/rh/gcc-toolset-11/root/usr/include/c++/11/chrono:882 #10 0x0000563c718f5c14 in rgw_process_authenticated (handler=handler@entry=0x563c7d9acd80, op=@0x7f85c563da48: 0x563c82119700, req=req@entry=0x7f85c563e750, s=0x7f85c563dbc0, y=..., driver=0x563c74f7f540, skip_retarget=false) at ../src/rgw/rgw_process.cc:255 #11 0x0000563c718f9da2 in process_request (penv=..., req=req@entry=0x7f85c563e750, frontend_prefix="", client_io=client_io@entry=0x7f85c563e800, yield=..., scheduler=0x563c79ecad88, user=0x7f85c563e960, latency=0x7f85c563e728, http_ret=0x7f85c563e724) at ../src/rgw/rgw_process.cc:392 #12 0x0000563c7181625f in (anonymous namespace)::handle_connection<boost::asio::basic_stream_socket<boost::asio::ip::tcp, boost::asio::io_context::basic_executor_type<std::allocator<void>, 0> > > (context=..., env=..., stream=..., timeout=..., header_limit=16384, buffer=..., is_ssl=false, pause_mutex=..., scheduler=0x563c79ecad88, uri_prefix="", ec=..., yield=...) at ../src/rgw/rgw_asio_frontend.cc:275 #13 0x0000563c71816d34 in operator() (__closure=__closure@entry=0x563c7e997238, yield=...) at ../src/rgw/rgw_asio_frontend.cc:1037 #14 0x0000563c71816eed in operator() (__closure=__closure@entry=0x7f85c563ff18, c=...) at ../src/spawn/include/spawn/impl/spawn.hpp:390 #15 0x0000563c718170ea in std::__invoke_impl<boost::context::continuation, spawn::detail::spawn_helper<boost::asio::executor_binder<void (*)(), boost::asio::strand<boost::asio::io_context::basic_executor_type<std::allocator<void>, 0> > >, (anonymous namespace)::AsioFrontend::accept((anonymous namespace)::AsioFrontend::Listener&, boost::system::error_code)::<lambda(yield_context)>, boost::context::basic_protected_fixedsize_stack<boost::context::stack_traits> >::operator()( )::<lambda(boost::context::continuation&&)>&, boost::context::continuation> (__f=...) at /opt/rh/gcc-toolset-11/root/usr/include/c++/11/bits/invoke.h:61 #16 std::__invoke<spawn::detail::spawn_helper<boost::asio::executor_binder<void (*)(), boost::asio::strand<boost::asio::io_context::basic_executor_type<std::allocator<void>, 0> > >, (anonymous namespace)::AsioFrontend::accept((anonymous n --Type <RET> for more, q to quit, c to continue without paging-- amespace)::AsioFrontend::Listener&, boost::system::error_code)::<lambda(yield_context)>, boost::context::basic_protected_fixedsize_stack<boost::context::stack_traits> >::operator()()::<lambda(boost::context::continuation&&)>&, boost::cont ext::continuation> (__fn=...) at /opt/rh/gcc-toolset-11/root/usr/include/c++/11/bits/invoke.h:97 #17 std::invoke<spawn::detail::spawn_helper<boost::asio::executor_binder<void (*)(), boost::asio::strand<boost::asio::io_context::basic_executor_type<std::allocator<void>, 0> > >, (anonymous namespace)::AsioFrontend::accept((anonymous nam espace)::AsioFrontend::Listener&, boost::system::error_code)::<lambda(yield_context)>, boost::context::basic_protected_fixedsize_stack<boost::context::stack_traits> >::operator()()::<lambda(boost::context::continuation&&)>&, boost::contex t::continuation> (__fn=...) at /opt/rh/gcc-toolset-11/root/usr/include/c++/11/functional:98 #18 boost::context::detail::record<boost::context::continuation, 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>, 0> > >, (anonymous namespace)::AsioFrontend::accept((anonymous namespace)::AsioFrontend::Listener&, boost::system::error_code)::<lambda(yield_context)>, boost::context::basic_p rotected_fixedsize_stack<boost::context::stack_traits> >::operator()()::<lambda(boost::context::continuation&&)> >::run (fctx=<optimized out>, this=0x7f85c563ff00) at boost/include/boost/context/continuation_fcontext.hpp:143 #19 boost::context::detail::context_entry<boost::context::detail::record<boost::context::continuation, 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>, 0> > >, (anonymous namespace)::AsioFrontend::accept((anonymous namespace)::AsioFrontend::Listener&, boost::system::error_code)::<lambda(yi eld_context)>, boost::context::basic_protected_fixedsize_stack<boost::context::stack_traits> >::operator()()::<lambda(boost::context::continuation&&)> > >(boost::context::detail::transfer_t) (t=...) at boost/include/boost/context/continuation_fcontext.hpp:80 #20 0x0000563c728eb01f in make_fcontext () #21 0x0000000000000000 in ?? () pre>
Actions