Hi,
RGW enable bucket notification for http push_endpoint, it will crash when exec
delete multi objects command.
ceph version: v16.2.13
Thread 483 "radosgw" received signal SIGABRT, Aborted.
[Switching to Thread 0x7f94c0ac1700 (LWP 500)]
0x00007f95b86f2acf in raise () from /lib64/libc.so.6
(gdb) bt
#0 0x00007f95b86f2acf in raise () from /lib64/libc.so.6
#1 0x00007f95b86c5ea5 in abort () from /lib64/libc.so.6
#2 0x00007f95b86c5d79 in __assert_fail_base.cold.0 () from /lib64/libc.so.6
#3 0x00007f95b86eb426 in __assert_fail () from /lib64/libc.so.6
#4 0x00007f95c7480332 in boost::context::continuation::resume() &&
(this=0x55a1b3705158) at
/opt/ceph-16.2.13/build/boost/include/boost/context/continuation_fcontext.hpp:263
#5 0x00007f95c74802cd in boost::context::continuation::resume() &
(this=0x55a1b3705158) at
/opt/ceph-16.2.13/build/boost/include/boost/context/continuation_fcontext.hpp:259
#6 0x00007f95c74803db in spawn::detail::continuation_context::resume
(this=0x55a1b3705158) at
/opt/ceph-16.2.13/src/spawn/include/spawn/impl/spawn.hpp:37
#7 0x00007f95c7499de0 in
spawn::detail::coro_async_result<boost::asio::executor_binder<void (*)(),
boost::asio::strand<boost::asio::io_context::executor_type> >, void>::get
(this=0x55a1b4b0b248)
at /opt/ceph-16.2.13/src/spawn/include/spawn/impl/spawn.hpp:256
#8 0x00007f95c7d28659 in librados::async_operate<boost::asio::io_context,
spawn::basic_yield_context<boost::asio::executor_binder<void (*)(),
boost::asio::strand<boost::asio::io_context::executor_type> > > > (ctx=...,
io=..., oid="ifind-project-other-tv", write_op=0x55a1b4b0b460, flags=1024,
token=...) at /opt/ceph-16.2.13/src/librados/librados_asio.h:185
#9 0x00007f95c7d24d9d in rgw_rados_operate (dpp=0x55a1b463c000, ioctx=...,
oid="ifind-project-other-tv", op=0x55a1b4b0b460, y=..., flags=1024) at
/opt/ceph-16.2.13/src/rgw/rgw_tools.cc:269
#10 0x00007f95c7f4caff in rgw::notify::publish_reserve (dpp=0x55a1b463c000,
event_type=rgw::notify::ObjectRemovedDelete, res=..., req_tags=0x0) at
/opt/ceph-16.2.13/src/rgw/rgw_notify.cc:796
#11 0x00007f95c7b182e0 in RGWDeleteMultiObj::handle_individual_object
(this=0x55a1b463c000, o=..., y=..., formatter_flush_cond=0x7f9485248130) at
/opt/ceph-16.2.13/src/rgw/rgw_op.cc:7164
#12 0x00007f95c7b18c45 in
RGWDeleteMultiObj::<lambda(yield_context)>::operator()(yield_context) const
(__closure=0x55a1b0160fa8, yield=...) at
/opt/ceph-16.2.13/src/rgw/rgw_op.cc:7267
#13 0x00007f95c7b2f43f in
spawn::detail::spawn_helper<boost::asio::executor_binder<void (*)(),
boost::asio::strand<boost::asio::io_context::executor_type> >,
RGWDeleteMultiObj::execute(optional_yield)::<lambda(yield_context)>,
boost::context::basic_fixedsize_stack<boost::context::stack_traits>
>::<lambda(boost::context::continuation&&)>::operator()(boost::context::continuation
&&) const (
this=0x7f9485247f60, c=...) at
/opt/ceph-16.2.13/src/spawn/include/spawn/impl/spawn.hpp:390
#14 0x00007f95c7b30610 in std::__invoke_impl<boost::context::continuation,
spawn::detail::spawn_helper<Handler, Function, StackAllocator>::operator()()
[with Handler = boost::asio::executor_binder<void (*)(),
boost::asio::strand<boost::asio::io_context::executor_type> >; Function =
RGWDeleteMultiObj::execute(optional_yield)::<lambda(yield_context)>;
StackAllocator =
boost::context::basic_fixedsize_stack<boost::context::stack_traits>]::<lambda(boost::context::continuation&&)>&,
boost::context::continuation>(std::__invoke_other,
spawn::detail::spawn_helper<boost::asio::executor_binder<void (*)(),
boost::asio::strand<boost::asio::io_context::executor_type> >,
RGWDeleteMultiObj::execute(optional_yield)::<lambda(yield_context)>,
boost::context::basic_fixedsize_stack<boost::context::stack_traits>
>::<lambda(boost::context::continuation&&)> &, boost::context::continuation &&)
(__f=..., __args#0=...) at /usr/include/c++/8/bits/invoke.h:60
#15 0x00007f95c7b30531 in std::__invoke<spawn::detail::spawn_helper<Handler,
Function, StackAllocator>::operator()() [with Handler =
boost::asio::executor_binder<void (*)(),
boost::asio::strand<boost::asio::io_context::executor_type> >; Function =
RGWDeleteMultiObj::execute(optional_yield)::<lambda(yield_context)>;
StackAllocator =
boost::context::basic_fixedsize_stack<boost::context::stack_traits>]::<lambda(boost::context::continuation&&)>&,
boost::context::continuation>(spawn::detail::spawn_helper<boost::asio::executor_binder<void
(*)(), boost::asio::strand<boost::asio::io_context::executor_type> >,
RGWDeleteMultiObj::execute(optional_yield)::<lambda(yield_context)>,
boost::context::basic_fixedsize_stack<boost::context::stack_traits>
>::<lambda(boost::context::continuation&&)> &, boost::context::continuation &&)
(__fn=..., __args#0=...) at /usr/include/c++/8/bits/invoke.h:96
#16 0x00007f95c7b304a2 in std::invoke<spawn::detail::spawn_helper<Handler,
Function, StackAllocator>::operator()() [with Handler =
boost::asio::executor_binder<void (*)(),
boost::asio::strand<boost::asio::io_context::executor_type> >; Function =
RGWDeleteMultiObj::execute(optional_yield)::<lambda(yield_context)>;
StackAllocator =
boost::context::basic_fixedsize_stack<boost::context::stack_traits>]::<lambda(boost::context::continuation&&)>&,
boost::context::continuation>(spawn::detail::spawn_helper<boost::asio::executor_binder<void
(*)(), boost::asio::strand<boost::asio::io_context::executor_type> >,
RGWDeleteMultiObj::execute(optional_yield)::<lambda(yield_context)>,
boost::context::basic_fixedsize_stack<boost::context::stack_traits>
>::<lambda(boost::context::continuation&&)> &, boost::context::continuation &&)
(__fn=..., __args#0=...) at /usr/include/c++/8/functional:82
#17 0x00007f95c7b3036f in
boost::context::detail::record<boost::context::continuation,
boost::context::basic_fixedsize_stack<boost::context::stack_traits>,
spawn::detail::spawn_helper<Handler, Function, StackAllocator>::operator()()
[with Handler = boost::asio::executor_binder<void (*)(),
boost::asio::strand<boost::asio::io_context::executor_type> >; Function =
RGWDeleteMultiObj::execute(optional_yield)::<lambda(yield_context)>;
StackAllocator =
boost::context::basic_fixedsize_stack<boost::context::stack_traits>]::<lambda(boost::context::continuation&&)>
>::run(boost::context::detail::fcontext_t) (
this=0x55a1b4b0bf00, fctx=0x7f9485247d10) at
/opt/ceph-16.2.13/build/boost/include/boost/context/continuation_fcontext.hpp:146
#18 0x00007f95c7b3015a in
boost::context::detail::context_entry<boost::context::detail::record<boost::context::continuation,
boost::context::basic_fixedsize_stack<boost::context::stack_traits>,
spawn::detail::spawn_helper<Handler, Function, StackAllocator>::operator()()
[with Handler = boost::asio::executor_binder<void (*)(),
boost::asio::strand<boost::asio::io_context::executor_type> >; Function =
RGWDeleteMultiObj::execute(optional_yield)::<lambda(yield_context)>;
StackAllocator =
boost::context::basic_fixedsize_stack<boost::context::stack_traits>]::<lambda(boost::context::continuation&&)>
> >(boost::context::detail::transfer_t) (t=...) at
/opt/ceph-16.2.13/build/boost/include/boost/context/continuation_fcontext.hpp:80
#19 0x00007f95c809175f in make_fcontext () from /lib64/libradosgw.so.2
#20 0x9435c9c14cf40130 in ?? ()
#21 0xacf2d40e6f64164e in ?? ()
#22 0x00000000d9ff03a8 in ?? ()
#23 0x0000000000000025 in ?? ()
#24 0x5f7265767265535f in ?? ()
#25 0x000055a1b4b0bef8 in ?? ()
#26 0x0000000000000007 in ?? ()
#27 0x00322d7466697773 in ?? ()
#28 0x0000000000020000 in ?? ()
#29 0x000055a1b4b0c000 in ?? ()
#30 0x0000000000020000 in ?? ()
#31 0x00007f9485247f60 in ?? ()
#32 0x3234346330623365 in ?? ()
Reproduceļ¼
1. create topic
rgw_topic='{"push-endpoint": "'$httpserver'","verify-ssl":
"false","persistent":"true"}'
aws --region=default --endpoint-url $srcEndpoint sns create-topic
--name=$userId --attributes="$rgw_topic"
2. create bucket notification
bucket_notify='{"TopicConfigurations": [{"Id": "'$bk'", "TopicArn": "'$topic'",
"Events": ["s3:ObjectCreated:*", "s3:ObjectRemoved:*"]}]}'
aws --region=default --endpoint-url $srcEndpoint s3api
put-bucket-notification-configuration --bucket=$bucketName
--notification-configuration="$bucket_notify"
3. delete multi objects
aws s3api --endpoint-url $srcEndpoint delete-objects --bucket $bucketName
--delete '{"Objects":[{"Key":"obj1"}]}'
I had report this problem in https://tracker.ceph.com/issues/71427
rgw_multi_object_del_aio set to 1 didn't help, anyone can have a workaround to
resolve this problem ?
thanks.
_______________________________________________
ceph-users mailing list -- [email protected]
To unsubscribe send an email to [email protected]