Project

General

Profile

Actions

Bug #58748

open

rgw crashed in RGWObjManifest::encode during bucket notification test

Added by Yuval Lifshitz about 1 year ago. Updated 3 months ago.

Status:
New
Priority:
Normal
Target version:
-
% 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

Also available in: Atom PDF