Actions
Bug #36302
closedlibrgw: crashes in multisite configuration
% Done:
0%
Source:
Tags:
librgw multisite
Backport:
luminous mimic
Regression:
No
Severity:
3 - minor
Reviewed:
Affected Versions:
ceph-qa-suite:
Pull request ID:
Crash signature (v1):
Crash signature (v2):
Description
librgw is missing the calls to rgw_http_client_init() and rgw::curl::setup_curl() that allocate the RGWHTTPManager and RGWCurlHandles classes required by multisite. This leads to crashes like this:
Thread 66 "data-notifier" received signal SIGSEGV, Segmentation fault. [Switching to Thread 0x7fe5e17f5700 (LWP 22801)] #0 0x00007fe610072251 in Mutex::Lock(bool) () from /usr/lib/ceph/libceph-common.so.0 #1 0x00007fe60a35b285 in RGWCurlHandles::get_curl_handle() () from /usr/lib/librgw.so.2 #2 0x00007fe60a35d6d9 in RGWHTTPClient::init_request(rgw_http_req_data*, bool) () from /usr/lib/librgw.so.2 #3 0x00007fe60a35e6d0 in RGWHTTPManager::add_request(RGWHTTPClient*, bool) () from /usr/lib/librgw.so.2 #4 0x00007fe60a2df92e in RGWRESTStreamRWRequest::send(RGWHTTPManager*) () from /usr/lib/librgw.so.2 #5 0x00007fe60a2e8746 in RGWRESTSendResource::aio_send(ceph::buffer::list&) () from /usr/lib/librgw.so.2 #6 0x00007fe60a2a724e in RGWSendRawRESTResourceCR<int>::send_request() () from /usr/lib/librgw.so.2 #7 0x00007fe60a1ea2ee in RGWSimpleCoroutine::state_send_request() () from /usr/lib/librgw.so.2 #8 0x00007fe60a1ed85c in RGWSimpleCoroutine::operate() () from /usr/lib/librgw.so.2 #9 0x00007fe60a1eb196 in RGWCoroutinesStack::operate(RGWCoroutinesEnv*) () from /usr/lib/librgw.so.2 #10 0x00007fe60a1ee32b in RGWCoroutinesManager::run(std::__cxx11::list<RGWCoroutinesStack*, std::allocator<RGWCoroutinesStack*> >&) () from /usr/lib/librgw.so.2 #11 0x00007fe60a2b7cec in RGWDataNotifierManager::notify_all(std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, RGWRESTConn*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, RGWRESTConn*> > >&, std::map<int, std::set<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::less<int>, std::allocator<std::pair<int const, std::set<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > > >&) () from /usr/lib/librgw.so.2 #12 0x00007fe60a253a6f in RGWDataNotifier::process() () from /usr/lib/librgw.so.2 #13 0x00007fe60a242900 in RGWRadosThread::Worker::entry() () from /usr/lib/librgw.so.2 #14 0x00007fe61a33a6ba in start_thread (arg=0x7fe5e17f5700) at pthread_create.c:333 #15 0x00007fe6198d241d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109
Reported in https://github.com/nfs-ganesha/nfs-ganesha/issues/348
Actions