Bug #47882
Updated by Abhishek Lekshmanan over 3 years ago
<pre>
1: /ssd/builds/cpp/ceph-nautilus/build/lib/libradosgw.so.2(+0x201803e) [0x7f109beef03e]
2: /lib64/libpthread.so.0(+0x132d0) [0x7f108db692d0]
3: (std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::length() const+0xc) [0x7f109b3be522]
4: (std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_assign(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)+0x3a) [0x7f109b3c3192]
5: (std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::assign(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)+0x23) [0x7f109b3c0bd9]
6: (std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::operator=(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)+0x1ca) [0x7f109b3bf3be]
7: (rgw_user::operator=(rgw_user const&)+0x23) [0x7f109b4f16ef]
8: (rgw::sal::RGWUser::RGWUser(rgw_user const&)+0x4a) [0x7f109b71c382]
9: (rgw::sal::RGWRadosUser::RGWRadosUser(rgw::sal::RGWRadosStore*, rgw_user const&)+0x27) [0x7f109b71d84f]
10: (RGWOp::init_quota()+0xf3) [0x7f109ba36e4f]
11: (RGWOp::init_processing()+0x46) [0x7f109b52468e]
12: (rgw_process_authenticated(RGWHandler_REST*, RGWOp*&, RGWRequest*, req_state*, bool)+0x931) [0x7f109b517f3b]
13: (process_request(rgw::sal::RGWRadosStore*, RGWREST*, RGWRequest*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, rgw::auth::StrategyRegistry const&, RGWRestfulIO*, OpsLogSocket*, optional_yield, rgw::dmclock::Scheduler*, int*)+0x195d) [0x7f109b51afeb]
</pre>
For requests on paths like admin/metadata/bucket/foobar which'll try to initialize quota fail as s->bucket or s->bucket_name aren't populated, which crashes on dereferencing bucket related params. Normal S3/Swift protocol requests would've populated s->bucket in post_auth_init or while parsing policies.