Project

General

Profile

Bug #57470

multisite segfault in elasticsearch sync module

Added by Ruler lipa over 1 year ago. Updated over 1 year ago.

Status:
New
Priority:
Normal
Assignee:
Target version:
-
% Done:

0%

Source:
Tags:
multisite elasticsearch sync
Backport:
Regression:
No
Severity:
3 - minor
Reviewed:
09/08/2022
Affected Versions:
ceph-qa-suite:
rgw
Pull request ID:
Crash signature (v1):
Crash signature (v2):

Description

During the operation of the elastic synchronization module, when trying to write objects to the storage with user metadata, errors occur leading to segfault:
Error 1: If the explicit_custom_meta option = true (crash log - 1)

 ceph version 17.2.3 (dff484dfc9e19a9819f375586300b3b79d80034d) quincy (stable)
 1: /lib64/libpthread.so.0(+0x12ce0) [0x7f9a5ce6ace0]
 2: (RGWRESTMgr_MDSearch_S3::get_handler(rgw::sal::Store*, req_state*, rgw::auth::StrategyRegistry const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)+0x4c) [0x7f9a5fe78d3c]
 3: (RGWREST::get_handler(rgw::sal::Store*, req_state*, rgw::auth::StrategyRegistry const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, RGWRestfulIO*, RGWRESTMgr**, int*)+0x101) [0x7f9a5ffedee1]
 4: (process_request(rgw::sal::Store*, RGWREST*, RGWRequest*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, rgw::auth::StrategyRegistry const&, RGWRestfulIO*, OpsLogSink*, optional_yield, rgw::dmclock::Scheduler*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> >*, std::shared_ptr<RateLimiter>, int*)+0x684) [0x7f9a5fb89674]
 5: /lib64/libradosgw.so.2(+0x659f7a) [0x7f9a5faf7f7a]
 6: /lib64/libradosgw.so.2(+0x65b621) [0x7f9a5faf9621]
 7: /lib64/libradosgw.so.2(+0x65b79c) [0x7f9a5faf979c]
 8: make_fcontext()

Error 2: If the explicit_custom_meta option = false (crash log - 2)

 ceph version 17.2.3 (dff484dfc9e19a9819f375586300b3b79d80034d) quincy (stable)
 1: /lib64/libpthread.so.0(+0x12ce0) [0x7f80f8be9ce0]
 2: (es_obj_metadata::dump(ceph::Formatter*) const+0xce2) [0x7f80fbbf35e2]
 3: (RGWElasticHandleRemoteObjCBCR::operate(DoutPrefixProvider const*)+0x5f6) [0x7f80fbbf5436]
 4: (RGWCoroutinesStack::operate(DoutPrefixProvider const*, RGWCoroutinesEnv*)+0x15c) [0x7f80fbc7a00c]
 5: (RGWCoroutinesManager::run(DoutPrefixProvider const*, std::__cxx11::list<RGWCoroutinesStack*, std::allocator<RGWCoroutinesStack*> >&)+0x296) [0x7f80fbc7ae36]
 6: (RGWCoroutinesManager::run(DoutPrefixProvider const*, RGWCoroutine*)+0x91) [0x7f80fbc7c101]
 7: (RGWRemoteDataLog::run_sync(DoutPrefixProvider const*, int)+0x1b4) [0x7f80fbb6b0d4]
 8: (RGWDataSyncProcessorThread::process(DoutPrefixProvider const*)+0x59) [0x7f80fbd4bdb9]
 9: (RGWRadosThread::Worker::entry()+0x13a) [0x7f80fbd0a2da]
 10: /lib64/libpthread.so.0(+0x81ca) [0x7f80f8bdf1ca]
 11: clone()

If objects are recorded without user metadata, then there are no errors!

History

#1 Updated by Casey Bodley over 1 year ago

  • Assignee set to Yehuda Sadeh

Also available in: Atom PDF