Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

pedis crashed after memtier_benchmark restart #32

Open
tracymacding opened this issue Nov 15, 2018 · 1 comment
Open

pedis crashed after memtier_benchmark restart #32

tracymacding opened this issue Nov 15, 2018 · 1 comment

Comments

@tracymacding
Copy link
Contributor

tracymacding commented Nov 15, 2018

backtrace:
#0 0x000000000074986c in boost::intrusive::list_node_traits<void*>::get_previous (n=@0x7fffffff96c0: 0x8e) at /opt/scylladb/include/boost/intrusive/detail/list_node.hpp:54 #1 0x00000000007dc731 in boost::intrusive::circular_list_algorithms<boost::intrusive::list_node_traits<void*> >::transfer (p=@0x7fffffff96c0: 0x8e, i=@0x7fffffff96b0: 0x302bddb67028) at /opt/scylladb/include/boost/intrusive/circular_list_algorithms.hpp:284 #2 0x00000000007d6e7b in boost::intrusive::list_impl<boost::intrusive::bhtraits<logalloc::segment_descriptor, boost::intrusive::list_node_traits<void*>, (boost::intrusive::link_mode_type)1, boost::intrusive::dft_tag, 1u>, unsigned long, false, void>::splice (this=0x30000027bb30, p=..., x=..., new_ele=...) at /opt/scylladb/include/boost/intrusive/list.hpp:928 #3 0x00000000007d2542 in log_histogram<logalloc::segment_descriptor, logalloc::segment_descriptor_hist_options>::adjust_up (this=0x30000027b240, v=...) at ./utils/log_histogram.hh:237 #4 0x00000000007cf8de in logalloc::region_impl::free (this=0x30000027b210, obj=0x302bd806ad70, size=24) at utils/logalloc.cc:1354 #5 0x0000000000a3fdb1 in allocation_strategy::destroy<managed<managed_bytes> > (this=0x30000027b210, obj=0x302bd806ad70) at ./utils/allocation_strategy.hh:151 #6 0x0000000000a393f2 in managed_ref<managed_bytes>::~managed_ref (this=0x302bd806ad08, __in_chrg=<optimized out>) at utils/managed_ref.hh:61 #7 0x0000000000a34470 in redis::cache_entry::~cache_entry (this=0x302bd806acf0, __in_chrg=<optimized out>) at cache.hh:179 #8 0x0000000000a3a1b5 in allocation_strategy::destroy<redis::cache_entry> (this=0x30000027b210, obj=0x302bd806acf0) at ./utils/allocation_strategy.hh:150 #9 0x0000000000a34ed4 in auto current_deleter<redis::cache_entry>()::{lambda(redis::cache_entry*)#1}::operator()(redis::cache_entry*) const ( __closure=0x7fffffff99e0, obj=0x302bd806acf0) at ./utils/allocation_strategy.hh:202 #10 0x0000000000a4dd05 in boost::intrusive::detail::node_disposer<auto current_deleter<redis::cache_entry>()::{lambda(redis::cache_entry*)#1}, boost::intrusive::mhtraits<redis::cache_entry, boost::intrusive::unordered_set_member_hook<void, void, void, void>, &redis::cache_entry::_cache_link>, (boost::intrusive::algo_types)1>::operator()(boost::intrusive::slist_node<void*>* const&) (this=0x7fffffff99e0, p=@0x7fffffff9938: 0x302bd806acf8) at /opt/scylladb/include/boost/intrusive/detail/node_cloner_disposer.hpp:96 #11 0x0000000000a4bb9c in boost::intrusive::node_cast_adaptor<boost::intrusive::detail::node_disposer<auto current_deleter<redis::cache_entry>()::{lambda(redis::cache_entry*)#1}, boost::intrusive::mhtraits<redis::cache_entry, boost::intrusive::unordered_set_member_hook<void, void, void, void>, &redis::cache_entry::_cache_link>, (boost::intrusive::algo_types)1>, boost::intrusive::slist_node<void*>*, boost::intrusive::slist_node<void*> >::operator()(boost::intrusive::slist_node<void*>) (this=0x7fffffff99e0, to_clone=0x302bd806acf8) at /opt/scylladb/include/boost/intrusive/hashtable.hpp:570 #12 0x0000000000a47be4 in boost::intrusive::slist_impl<boost::intrusive::trivial_value_traits<boost::intrusive::slist_node_traits<void*>, (boost::intrusive::link_mode_type)0>, unsigned long, 0ul, void>::erase_after_and_dispose<boost::intrusive::node_cast_adaptor<boost::intrusive::detail::node_disposer<auto current_deleter<redis::cache_entry>()::{lambda(redis::cache_entry*)#1}, boost::intrusive::mhtraits<redis::cache_entry, boost::intrusive::unordered_set_member_hook<void, void, void, void>, &redis::cache_entry::_cache_link>, (boost::intrusive::algo_types)1>, boost::intrusive::slist_node<void*>*, boost::intrusive::slist_node<void*> > >(boost::intrusive::node_cast_adaptor<boost::intrusive::detail::node_disposer<auto current_deleter<redis::cache_entry>()::{lambda(redis::cache_entry*)#1}, boost::intrusive::mhtraits<redis::cache_entry, boost::intrusive::unordered_set_member_hook<void, void, void, void>, &redis::cache_entry::_cache_link>, (boost::intrusive::algo_types)1>, boost::intrusive::slist_node<void*>*, boost::intrusive::slist_node<void*> ><boost::intrusive::trivial_value_traits<boost::intrusive::slist_node_traits<void*>, (boost::intrusive::link_mode_type)0>, true>, boost::intrusive::node_cast_adaptor<boost::intrusive::detail::node_disposer<auto current_deleter<redis::cache_entry>()::{lambda(redis::cache_entry*)#1}, boost::intrusive::mhtraits<redis::cache_entry, boost::intrusive::unordered_set_member_hook<void, void, void, void>, &redis::cache_entry::_cache_link>, (boost::intrusive::algo_types)1>, boost::intrusive::slist_node<void*>*, boost::intrusive::slist_node<void*> >) (this=0x302bde053610, prev=..., disposer=...) at /opt/scylladb/include/boost/intrusive/slist.hpp:1053 #13 0x0000000000a41417 in boost::intrusive::bucket_plus_vtraits<boost::intrusive::mhtraits<redis::cache_entry, boost::intrusive::unordered_set_member_hook<void, void, void, void>, &redis::cache_entry::_cache_link>, boost::intrusive::detail::bucket_traits_impl<boost::intrusive::detail::get_slist_impl<boost::intrusive::slist_node_traits<void*> >::type> >::priv_erase_node<boost::intrusive::node_cast_adaptor<boost::intrusive::detail::node_disposer<auto current_deleter<redis::cache_entry>()::{lambda(redis::cache_entry*)#1}, boost::intrusive::mhtraits<redis::cache_entry, boost::intrusive::unordered_set_member_hook<void, void, void, void>, &redis::cache_entry::_cache_link>, (boost::intrusive::algo_types)1>, boost::intrusive::slist_node<void*>*, boost::intrusive::slist_node<void*> > >(boost::intrusive::detail::bucket_impl<boost::intrusive::detail::get_slist_impl<boost::intrusive::slist_node_traits<void*> >::type>&, boost::intrusive::slist_ite---Type <return> to continue, or q <return> to quit--- rator<boost::intrusive::trivial_value_traits<boost::intrusive::slist_node_traits<void*>, (boost::intrusive::link_mode_type)0>, false>, boost::intrusive::node_cast_adaptor<boost::intrusive::detail::node_disposer<auto current_deleter<redis::cache_entry>()::{lambda(redis::cache_entry*)#1}, boost::intrusive::mhtraits<redis::cache_entry, boost::intrusive::unordered_set_member_hook<void, void, void, void>, &redis::cache_entry::_cache_link>, (boost::intrusive::algo_types)1>, boost::intrusive::slist_node<void*>*, boost::intrusive::slist_node<void*> >, boost::move_detail::bool_<false>) (b=..., i=..., node_disposer=...) at /opt/scylladb/include/boost/intrusive/hashtable.hpp:757 #14 0x0000000000a3a5f6 in boost::intrusive::hashtable_impl<boost::intrusive::mhtraits<redis::cache_entry, boost::intrusive::unordered_set_member_hook<void, void, void, void>, &redis::cache_entry::_cache_link>, void, void, void, boost::intrusive::detail::bucket_traits_impl<boost::intrusive::detail::get_slist_impl<boost::intrusive::slist_node_traits<void*> >::type>, unsigned long, 7ul>::erase_and_dispose<auto current_deleter<redis::cache_entry>()::{lambda(redis::cache_entry*)#1}>(boost::intrusive::bucket_plus_vtraits<boost::intrusive::mhtraits<redis::cache_entry, boost::intrusive::unordered_set_member_hook<void, void, void, void>, &redis::cache_entry::_cache_link>, boost::intrusive::detail::bucket_traits_impl<boost::intrusive::detail::get_slist_impl<boost::intrusive::slist_node_traits<void*> >::type> >, boost::move_detail::disable_if_convertible) (this=0x30000023a430, i=..., disposer=...) at /opt/scylladb/include/boost/intrusive/hashtable.hpp:2279 #15 0x0000000000a35490 in redis::cache::insert_if (this=0x30000023a420, entry=0x302bd81e8060, expired=0, nx=false, xx=false) at cache.hh:513 #16 0x00000000009fa9e4 in redis::database::<lambda()>::operator()(void) const (__closure=0x7fffffff9c60) at db.cc:290 #17 0x00000000009faab6 in with_allocator<redis::database::set(redis::redis_key, bytes, long int, uint32_t)::<lambda()> >(allocation_strategy &, <unknown type in /u01/jeff.dk/github/tracymacding/pedis/build/release/pedis, CU 0x4ce4579, DIE 0x4e85566>) (alloc=..., func=<unknown type in /u01/jeff.dk/github/tracymacding/pedis/build/release/pedis, CU 0x4ce4579, DIE 0x4e85566>) at ./utils/allocation_strategy.hh:271 #18 0x00000000009fabbc in redis::database::set (this=0x30000023a410, rk=..., val=..., expired=0, flag=1) at db.cc:298 #19 0x00000000008d0b3a in std::__invoke_impl<seastar::future<seastar::foreign_ptr<seastar::lw_shared_ptr<seastar::scattered_message<char> > > >, seastar::future<seastar::foreign_ptr<seastar::lw_shared_ptr<seastar::scattered_message<char> > > > (redis::database::* const&)(redis::redis_key, seastar::basic_sstring<char, unsigned int, 31u, true>, long, unsigned int), seastar::shared_ptr<redis::database>, redis::redis_key, seastar::basic_sstring<char, unsigned int, 31u, true>, long, unsigned char>(std::__invoke_memfun_deref, seastar::future<seastar::foreign_ptr<seastar::lw_shared_ptr<seastar::scattered_message<char> > > > (redis::database::* const&)(redis::redis_key, seastar::basic_sstring<char, unsigned int, 31u, true>, long, unsigned int), seastar::shared_ptr<redis::database>&&, redis::redis_key&&, seastar::basic_sstring<char, unsigned int, 31u, true>&&, long&&, unsigned char&&) (__f= @0x7fffffffa030: (seastar::future<seastar::foreign_ptr<seastar::lw_shared_ptr<seastar::scattered_message<char> > > > (redis::database::*)(redis::database * const, redis::redis_key, seastar::basic_sstring<char, unsigned int, 31, true>, long, unsigned int)) 0x9faaea <redis::database::set(redis::redis_key, seastar::basic_sstring<char, unsigned int, 31u, true>, long, unsigned int)>, __t=<unknown type in /u01/jeff.dk/github/tracymacding/pedis/build/release/pedis, CU 0x4710955, DIE 0x4a8ab08>, __args#0=<unknown type in /u01/jeff.dk/github/tracymacding/pedis/build/release/pedis, CU 0x4710955, DIE 0x4a8ab33>, __args#1=<unknown type in /u01/jeff.dk/github/tracymacding/pedis/build/release/pedis, CU 0x4710955, DIE 0x4a8ab42>, __args#2=<unknown type in /u01/jeff.dk/github/tracymacding/pedis/build/release/pedis, CU 0x4710955, DIE 0x4a8ab51>, __args#3=<unknown type in /u01/jeff.dk/github/tracymacding/pedis/build/release/pedis, CU 0x4710955, DIE 0x4a8ab60>) at /opt/scylladb/include/c++/7/bits/invoke.h:73 #20 0x00000000008ab9e1 in std::__invoke<seastar::future<seastar::foreign_ptr<seastar::lw_shared_ptr<seastar::scattered_message<char> > > > (redis::database::* const&)(redis::redis_key, seastar::basic_sstring<char, unsigned int, 31u, true>, long, unsigned int), seastar::shared_ptr<redis::database>, redis::redis_key, seastar::basic_sstring<char, unsigned int, 31u, true>, long, unsigned char>(seastar::future<seastar::foreign_ptr<seastar::lw_shared_ptr<seastar::scattered_message<char> > > > (redis::database::* const&)(redis::redis_key, seastar::basic_sstring<char, unsigned int, 31u, true>, long, unsigned int), seastar::shared_ptr<redis::database>&&, redis::redis_key&&, seastar::basic_sstring<char, unsigned int, 31u, true>&&, long&&, unsigned char&&) (__fn= @0x7fffffffa030: (seastar::future<seastar::foreign_ptr<seastar::lw_shared_ptr<seastar::scattered_message<char> > > > (redis::database::*)(redis::database * const, redis::redis_key, seastar::basic_sstring<char, unsigned int, 31, true>, long, unsigned int)) 0x9faaea <redis::database::set(redis::redis_key, seastar::basic_sstring<char, unsigned int, 31u, true>, long, unsigned int)>, __args#0=<unknown type in /u01/jeff.dk/github/tracymacding/pedis/build/release/pedis, CU 0x4710955, DIE 0x4ab6312>, ---Type <return> to continue, or q <return> to quit--- __args#1=<unknown type in /u01/jeff.dk/github/tracymacding/pedis/build/release/pedis, CU 0x4710955, DIE 0x4ab6321>, __args#2=<unknown type in /u01/jeff.dk/github/tracymacding/pedis/build/release/pedis, CU 0x4710955, DIE 0x4ab6330>, __args#3=<unknown type in /u01/jeff.dk/github/tracymacding/pedis/build/release/pedis, CU 0x4710955, DIE 0x4ab633f>, __args#4=<unknown type in /u01/jeff.dk/github/tracymacding/pedis/build/release/pedis, CU 0x4710955, DIE 0x4ab634e>) at /opt/scylladb/include/c++/7/bits/invoke.h:96 #21 0x00000000008998b7 in std::_Mem_fn_base<seastar::future<seastar::foreign_ptr<seastar::lw_shared_ptr<seastar::scattered_message<char> > > > (redis::database::*)(redis::redis_key, seastar::basic_sstring<char, unsigned int, 31u, true>, long, unsigned int), true>::operator()<seastar::shared_ptr<redis::database>, redis::redis_key, seastar::basic_sstring<char, unsigned int, 31u, true>, long, unsigned char>(seastar::shared_ptr<redis::database>&&, redis::redis_key&&, seastar::basic_sstring<char, unsigned int, 31u, true>&&, long&&, unsigned char&&) const (this=0x7fffffffa030, __args#0=<unknown type in /u01/jeff.dk/github/tracymacding/pedis/build/release/pedis, CU 0x4710955, DIE 0x4ada3ed>, __args#1=<unknown type in /u01/jeff.dk/github/tracymacding/pedis/build/release/pedis, CU 0x4710955, DIE 0x4ada3fc>, __args#2=<unknown type in /u01/jeff.dk/github/tracymacding/pedis/build/release/pedis, CU 0x4710955, DIE 0x4ada40b>, __args#3=<unknown type in /u01/jeff.dk/github/tracymacding/pedis/build/release/pedis, CU 0x4710955, DIE 0x4ada41a>, __args#4=<unknown type in /u01/jeff.dk/github/tracymacding/pedis/build/release/pedis, CU 0x4710955, DIE 0x4ada429>) at /opt/scylladb/include/c++/7/functional:175 #22 0x00000000008871c3 in seastar::apply_helper<std::_Mem_fn<seastar::future<seastar::foreign_ptr<seastar::lw_shared_ptr<seastar::scattered_message<char> > > > (redis::database::*)(redis::redis_key, seastar::basic_sstring<char, unsigned int, 31u, true>, long, unsigned int)>, std::tuple<seastar::shared_ptr<redis::database>, redis::redis_key, seastar::basic_sstring<char, unsigned int, 31u, true>, long, unsigned char>&&, std::integer_sequence<unsigned long, 0ul, 1ul, 2ul, 3ul, 4ul> >::apply(std::_Mem_fn<seastar::future<seastar::foreign_ptr<seastar::lw_shared_ptr<seastar::scattered_message<char> > > > (redis::database::*)(redis::redis_key, seastar::basic_sstring<char, unsigned int, 31u, true>, long, unsigned int)>&&, std::tuple<seastar::shared_ptr<redis::database>, redis::redis_key, seastar::basic_sstring<char, unsigned int, 31u, true>, long, unsigned char>&&) ( func=<unknown type in /u01/jeff.dk/github/tracymacding/pedis/build/release/pedis, CU 0x4710955, DIE 0x4afd5f9>, args=<unknown type in /u01/jeff.dk/github/tracymacding/pedis/build/release/pedis, CU 0x4710955, DIE 0x4afd608>) at /u01/jeff.dk/github/tracymacding/pedis/seastar/core/apply.hh:35 #23 0x000000000088721f in seastar::apply<std::_Mem_fn<seastar::future<seastar::foreign_ptr<seastar::lw_shared_ptr<seastar::scattered_message<char> > > > (redis::database::*)(redis::redis_key, seastar::basic_sstring<char, unsigned int, 31u, true>, long, unsigned int)>, seastar::shared_ptr<redis::database>, redis::redis_key, seastar::basic_sstring<char, unsigned int, 31u, true>, long, unsigned char>(std::_Mem_fn<seastar::future<seastar::foreign_ptr<seastar::lw_shared_ptr<seastar::scattered_message<char> > > > (redis::database::*)(redis::redis_key, seastar::basic_sstring<char, unsigned int, 31u, true>, long, unsigned int)>&&, std::tuple<seastar::shared_ptr<redis::database>, redis::redis_key, seastar::basic_sstring<char, unsigned int, 31u, true>, long, unsigned char>&&) ( func=<unknown type in /u01/jeff.dk/github/tracymacding/pedis/build/release/pedis, CU 0x4710955, DIE 0x4afd5bc>, args=<unknown type in /u01/jeff.dk/github/tracymacding/pedis/build/release/pedis, CU 0x4710955, DIE 0x4afd5ca>) at /u01/jeff.dk/github/tracymacding/pedis/seastar/core/apply.hh:43 #24 0x000000000088726f in seastar::futurize<seastar::future<seastar::foreign_ptr<seastar::lw_shared_ptr<seastar::scattered_message<char> > > > >::apply<std::_Mem_fn<seastar::future<seastar::foreign_ptr<seastar::lw_shared_ptr<seastar::scattered_message<char> > > > (redis::database::*)(redis::redis_key, seastar::basic_sstring<char, unsigned int, 31u, true>, long, unsigned int)>, seastar::shared_ptr<redis::database>, redis::redis_key, seastar::basic_sstring<char, unsigned int, 31u, true>, long, unsigned char>(std::_Mem_fn<seastar::future<seastar::foreign_ptr<seastar::lw_shared_ptr<seastar::scattered_message<char> > > > (redis::database::*)(redis::redis_key, seastar::basic_sstring<char, unsigned int, 31u, true>, long, unsigned int)>&&, std::tuple<seastar::shared_ptr<redis::database>, redis::redis_key, seastar::basic_sstring<char, unsigned int, 31u, true>, long, unsigned char>&&) ( func=<unknown type in /u01/jeff.dk/github/tracymacding/pedis/build/release/pedis, CU 0x4710955, DIE 0x4afd557>, args=<unknown type in /u01/jeff.dk/github/tracymacding/pedis/build/release/pedis, CU 0x4710955, DIE 0x4afd566>) at /u01/jeff.dk/github/tracymacding/pedis/seastar/core/future.hh:1389 #25 0x000000000087d1ea in seastar::future<seastar::foreign_ptr<seastar::lw_shared_ptr<seastar::scattered_message<char> > > > seastar::sharded<redis::database>---Type <return> to continue, or q <return> to quit--- ::invoke_on<seastar::future<seastar::foreign_ptr<seastar::lw_shared_ptr<seastar::scattered_message<char> > > >, redis::redis_key, seastar::basic_sstring<char, unsigned int, 31u, true>, long, unsigned int, redis::redis_key, seastar::basic_sstring<char, unsigned int, 31u, true>, long&, unsigned char&, seastar::future<seastar::foreign_ptr<seastar::lw_shared_ptr<seastar::scattered_message<char> > > > >(unsigned int, seastar::future<seastar::foreign_ptr<seastar::lw_shared_ptr<seastar::scattered_message<char> > > > (redis::database::*)(redis::redis_key, seastar::basic_sstring<char, unsigned int, 31u, true>, long, unsigned int), redis::redis_key&&, seastar::basic_sstring<char, unsigned int, 31u, true>&&, long&, unsigned char&)::{lambda()#1}::operator()() (__closure=0x30000010d310) at /u01/jeff.dk/github/tracymacding/pedis/seastar/core/sharded.hh:317 #26 0x00000000008998ef in seastar::futurize<seastar::future<seastar::foreign_ptr<seastar::lw_shared_ptr<seastar::scattered_message<char> > > > >::apply<seastar::future<seastar::foreign_ptr<seastar::lw_shared_ptr<seastar::scattered_message<char> > > > seastar::sharded<redis::database>::invoke_on<seastar::future<seastar::foreign_ptr<seastar::lw_shared_ptr<seastar::scattered_message<char> > > >, redis::redis_key, seastar::basic_sstring<char, unsigned int, 31u, true>, long, unsigned int, redis::redis_key, seastar::basic_sstring<char, unsigned int, 31u, true>, long&, unsigned char&, seastar::future<seastar::foreign_ptr<seastar::lw_shared_ptr<seastar::scattered_message<char> > > > >(unsigned int, seastar::future<seastar::foreign_ptr<seastar::lw_shared_ptr<seastar::scattered_message<char> > > > (redis::database::*)(redis::redis_key, seastar::basic_sstring<char, unsigned int, 31u, true>, long, unsigned int), redis::redis_key&&, seastar::basic_sstring<char, unsigned int, 31u, true>&&, long&, unsigned char&)::{lambda()#1}&>(seastar::future<seastar::foreign_ptr<seastar::lw_shared_ptr<seastar::scattered_message<char> > > > seastar::sharded<redis::database>::invoke_on<seastar::future<seastar::foreign_ptr<seastar::lw_shared_ptr<seastar::scattered_message<char> > > >, redis::redis_key, seastar::basic_sstring<char, unsigned int, 31u, true>, long, unsigned int, redis::redis_key, seastar::basic_sstring<char, unsigned int, 31u, true>, long&, unsigned char&, seastar::future<seastar::foreign_ptr<seastar::lw_shared_ptr<seastar::scattered_message<char> > > > >(unsigned int, seastar::future<seastar::foreign_ptr<seastar::lw_shared_ptr<seastar::scattered_message<char> > > > (redis::database::*)(redis::redis_key, seastar::basic_sstring<char, unsigned int, 31u, true>, long, unsigned int), redis::redis_key&&, seastar::basic_sstring<char, unsigned int, 31u, true>&&, long&, unsigned char&)::{lambda()#1}&) (func=...) at /u01/jeff.dk/github/tracymacding/pedis/seastar/core/future.hh:1399 #27 0x000000000088737b in seastar::smp::submit_to<seastar::future<seastar::foreign_ptr<seastar::lw_shared_ptr<seastar::scattered_message<char> > > > seastar::sharded<redis::database>::invoke_on<seastar::future<seastar::foreign_ptr<seastar::lw_shared_ptr<seastar::scattered_message<char> > > >, redis::redis_key, seastar::basic_sstring<char, unsigned int, 31u, true>, long, unsigned int, redis::redis_key, seastar::basic_sstring<char, unsigned int, 31u, true>, long&, unsigned char&, seastar::future<seastar::foreign_ptr<seastar::lw_shared_ptr<seastar::scattered_message<char> > > > >(unsigned int, seastar::future<seastar::foreign_ptr<seastar::lw_shared_ptr<seastar::scattered_message<char> > > > (redis::database::*)(redis::redis_key, seastar::basic_sstring<char, unsigned int, 31u, true>, long, unsigned int), redis::redis_key&&, seastar::basic_sstring<char, unsigned int, 31u, true>&&, long&, unsigned char&)::{lambda()#1}>(unsigned int, seastar::future<seastar::foreign_ptr<seastar::lw_shared_ptr<seastar::scattered_message<char> > > > seastar::sharded<redis::database>::invoke_on<seastar::future<seastar::foreign_ptr<seastar::lw_shared_ptr<seastar::scattered_message<char> > > >, redis::redis_key, seastar::basic_sstring<char, unsigned int, 31u, true>, long, unsigned int, redis::redis_key, seastar::basic_sstring<char, unsigned int, 31u, true>, long&, unsigned char&, seastar::future<seastar::foreign_ptr<seastar::lw_shared_ptr<seastar::scattered_message<char> > > > >(unsigned int, seastar::future<seastar::foreign_ptr<seastar::lw_shared_ptr<seastar::scattered_message<char> > > > (redis::database::*)(redis::redis_key, seastar::basic_sstring<char, unsigned int, 31u, true>, long, unsigned int), redis::redis_key&&, seastar::basic_sstring<char, unsigned int, 31u, true>&&, long&, unsigned char&)::{lambda()#1}&&) (t=0, func=<unknown type in /u01/jeff.dk/github/tracymacding/pedis/build/release/pedis, CU 0x4710955, DIE 0x4ab5e5a>) at /u01/jeff.dk/github/tracymacding/pedis/seastar/core/reactor.hh:1258 #28 0x000000000087d34e in seastar::sharded<redis::database>::invoke_on<seastar::future<seastar::foreign_ptr<seastar::lw_shared_ptr<seastar::scattered_message<char> > > >, redis::redis_key, seastar::basic_sstring<char, unsigned int, 31u, true>, long, unsigned int, redis::redis_key, seastar::basic_sstring<char, unsigned int, 31u, true>, long&, unsigned char&, seastar::future<seastar::foreign_ptr<seastar::lw_shared_ptr<seastar::scattered_message<char> > > > >(unsigned int, seastar::future<seastar::foreign_ptr<seastar::lw_shared_ptr<seastar::scattered_message<char> > > > (redis::database::*)(redis::redis_key, seastar::basic_sstring<char, unsigned int, 31u, true>, long, unsigned int), redis::redis_key&&, seastar::basic_sstring<char, unsigned int, 31u, true>&&, long&, unsigned char&) (this=0x1218c20 <redis::_databases>, id=0, func= (seastar::future<seastar::foreign_ptr<seastar::lw_shared_ptr<seastar::scattered_message<char> > > > (redis::database::*)(redis::database * const, redis::redis_key, seastar::basic_sstring<char, unsigned int, 31, true>, long, unsigned int)) 0x9faaea <redis::database::set(redis::redis_key, seastar::basic_sstring<char, unsigned int, 31u, true>, long, unsigned int)>, ---Type <return> to continue, or q <return> to quit--- args#0=<unknown type in /u01/jeff.dk/github/tracymacding/pedis/build/release/pedis, CU 0x4710955, DIE 0x4ada2f4>, args#1=<unknown type in /u01/jeff.dk/github/tracymacding/pedis/build/release/pedis, CU 0x4710955, DIE 0x4ada304>, args#2=@0x7fffffffa278: 0, args#3=@0x7fffffffa277: 1 '\001') at /u01/jeff.dk/github/tracymacding/pedis/seastar/core/sharded.hh:318 #29 0x0000000000829d02 in redis::redis_service::set (this=0x2aaaaaae1e48, req=...) at redis.cc:135 #30 0x000000000099ff7b in redis::<lambda(redis::request_wrapper&)>::operator()(redis::request_wrapper &) const (__closure=0x30000019eb18, req=...) at server.cc:34 #31 0x00000000009af419 in std::_Function_handler<seastar::future<seastar::foreign_ptr<seastar::lw_shared_ptr<seastar::scattered_message<char> > > >(redis::request_wrapper&), redis::<lambda(redis::request_wrapper&)> >::_M_invoke(const std::_Any_data &, redis::request_wrapper &) (__functor=..., __args#0=...) at /opt/scylladb/include/c++/7/bits/std_function.h:302 #32 0x00000000009d45d5 in std::function<seastar::future<seastar::foreign_ptr<seastar::lw_shared_ptr<seastar::scattered_message<char> > > > (redis::request_wrapper&)>::operator()(redis::request_wrapper&) const (this=0x30000019eb18, __args#0=...) at /opt/scylladb/include/c++/7/bits/std_function.h:706 #33 0x00000000009a4d5d in redis::server::connection::do_handle_one (this=0x3000000c6208, req=...) at server.cc:156 #34 0x00000000009a4de7 in redis::server::connection::<lambda()>::<lambda()>::operator()(void) const (__closure=0x7fffffffa6e0) at server.cc:174 #35 0x00000000009b6722 in seastar::apply_helper<redis::server::connection::handle()::<lambda()>::<lambda()>, std::tuple<>&&, std::integer_sequence<long unsigned int> >::apply(<unknown type in /u01/jeff.dk/github/tracymacding/pedis/build/release/pedis, CU 0x4b1e702, DIE 0x4cbf097>, <unknown type in /u01/jeff.dk/github/tracymacding/pedis/build/release/pedis, CU 0x4b1e702, DIE 0x4cbf0a5>) ( func=<unknown type in /u01/jeff.dk/github/tracymacding/pedis/build/release/pedis, CU 0x4b1e702, DIE 0x4cbf097>, args=<unknown type in /u01/jeff.dk/github/tracymacding/pedis/build/release/pedis, CU 0x4b1e702, DIE 0x4cbf0a5>) at /u01/jeff.dk/github/tracymacding/pedis/seastar/core/apply.hh:35 #36 0x00000000009b676d in seastar::apply<redis::server::connection::handle()::<lambda()>::<lambda()> >(<unknown type in /u01/jeff.dk/github/tracymacding/pedis/build/release/pedis, CU 0x4b1e702, DIE 0x4cbf05a>, <unknown type in /u01/jeff.dk/github/tracymacding/pedis/build/release/pedis, CU 0x4b1e702, DIE 0x4cbf068>) (func=<unknown type in /u01/jeff.dk/github/tracymacding/pedis/build/release/pedis, CU 0x4b1e702, DIE 0x4cbf05a>, args=<unknown type in /u01/jeff.dk/github/tracymacding/pedis/build/release/pedis, CU 0x4b1e702, DIE 0x4cbf068>) at /u01/jeff.dk/github/tracymacding/pedis/seastar/core/apply.hh:43 #37 0x00000000009b67bd in seastar::futurize<seastar::future<seastar::foreign_ptr<seastar::lw_shared_ptr<seastar::scattered_message<char> > > > >::apply<redis::server::connection::handle()::<lambda()>::<lambda()> >(<unknown type in /u01/jeff.dk/github/tracymacding/pedis/build/release/pedis, CU 0x4b1e702, DIE 0x4cbf013>, <unknown type in /u01/jeff.dk/github/tracymacding/pedis/build/release/pedis, CU 0x4b1e702, DIE 0x4cbf022>) ( func=<unknown type in /u01/jeff.dk/github/tracymacding/pedis/build/release/pedis, CU 0x4b1e702, DIE 0x4cbf013>, args=<unknown type in /u01/jeff.dk/github/tracymacding/pedis/build/release/pedis, CU 0x4b1e702, DIE 0x4cbf022>) at /u01/jeff.dk/github/tracymacding/pedis/seastar/core/future.hh:1389 #38 0x00000000009aa256 in seastar::future<>::then<redis::server::connection::handle()::<lambda()>::<lambda()> >(<unknown type in /u01/jeff.dk/github/tracymacding/pedis/build/release/pedis, CU 0x4b1e702, DIE 0x4c5b31d>) (this=0x7fffffffa6d0, func=<unknown type in /u01/jeff.dk/github/tracymacding/pedis/build/release/pedis, CU 0x4b1e702, DIE 0x4c5b31d>) at /u01/jeff.dk/github/tracymacding/pedis/seastar/core/future.hh:952 #39 0x00000000009a4e41 in redis::server::connection::<lambda()>::operator()(void) const (__closure=0x300000104188) at server.cc:175 #40 0x00000000009b699f in seastar::apply_helper<redis::server::connection::handle()::<lambda()>, std::tuple<>&&, std::integer_sequence<long unsigned int> >::apply(<unknown type in /u01/jeff.dk/github/tracymacding/pedis/build/release/pedis, CU 0x4b1e702, DIE 0x4cbed0b>, <unknown type in /u01/jeff.dk/github/tracymacding/pedis/build/release/pedis, CU 0x4b1e702, DIE 0x4cbed19>) ( func=<unknown type in /u01/jeff.dk/github/tracymacding/pedis/build/release/pedis, CU 0x4b1e702, DIE 0x4cbed0b>, args=<unknown type in /u01/jeff.dk/github/tracymacding/pedis/build/release/pedis, CU 0x4b1e702, DIE 0x4cbed19>) at /u01/jeff.dk/github/tracymacding/pedis/seastar/core/apply.hh:35 #41 0x00000000009b69ea in seastar::apply<redis::server::connection::handle()::<lambda()> >(<unknown type in /u01/jeff.dk/github/tracymacding/pedis/build/relea---Type <return> to continue, or q <return> to quit--- se/pedis, CU 0x4b1e702, DIE 0x4cbecce>, <unknown type in /u01/jeff.dk/github/tracymacding/pedis/build/release/pedis, CU 0x4b1e702, DIE 0x4cbecdc>) ( func=<unknown type in /u01/jeff.dk/github/tracymacding/pedis/build/release/pedis, CU 0x4b1e702, DIE 0x4cbecce>, args=<unknown type in /u01/jeff.dk/github/tracymacding/pedis/build/release/pedis, CU 0x4b1e702, DIE 0x4cbecdc>) at /u01/jeff.dk/github/tracymacding/pedis/seastar/core/apply.hh:43 #42 0x00000000009b6a3b in seastar::futurize<seastar::future<seastar::foreign_ptr<seastar::lw_shared_ptr<seastar::scattered_message<char> > > > >::apply<redis::server::connection::handle()::<lambda()> >(<unknown type in /u01/jeff.dk/github/tracymacding/pedis/build/release/pedis, CU 0x4b1e702, DIE 0x4cbec87>, <unknown type in /u01/jeff.dk/github/tracymacding/pedis/build/release/pedis, CU 0x4b1e702, DIE 0x4cbec96>) ( func=<unknown type in /u01/jeff.dk/github/tracymacding/pedis/build/release/pedis, CU 0x4b1e702, DIE 0x4cbec87>, args=<unknown type in /u01/jeff.dk/github/tracymacding/pedis/build/release/pedis, CU 0x4b1e702, DIE 0x4cbec96>) at /u01/jeff.dk/github/tracymacding/pedis/seastar/core/future.hh:1389 #43 0x00000000009d1573 in seastar::future<>::<lambda(auto:1&&)>::operator()<seastar::future_state<> >(<unknown type in /u01/jeff.dk/github/tracymacding/pedis/build/release/pedis, CU 0x4b1e702, DIE 0x4c5b9fe>) (__closure=0x300000104158, state=<unknown type in /u01/jeff.dk/github/tracymacding/pedis/build/release/pedis, CU 0x4b1e702, DIE 0x4c5b9fe>) at /u01/jeff.dk/github/tracymacding/pedis/seastar/core/future.hh:963 #44 0x00000000009d16d6 in seastar::continuation<seastar::future<T>::then(Func&&) [with Func = redis::server::connection::handle()::<lambda()>; Result = seastar::future<seastar::foreign_ptr<seastar::lw_shared_ptr<seastar::scattered_message<char> > > >; T = {}]::<lambda(auto:1&&)> >::run_and_dispose(void) ( this=0x300000104140) at /u01/jeff.dk/github/tracymacding/pedis/seastar/core/future.hh:414 #45 0x0000000000472a5f in seastar::reactor::run_tasks (this=this@entry=0x300000020000, tq=...) at core/reactor.cc:2699 #46 0x0000000000472d53 in seastar::reactor::run_some_tasks (this=this@entry=0x300000020000) at core/reactor.cc:3122 #47 0x00000000004c6ed0 in run_some_tasks (this=0x300000020000) at /u01/jeff.dk/github/tracymacding/pedis/seastar/util/log.hh:149 #48 seastar::reactor::run (this=0x300000020000) at core/reactor.cc:3269 #49 0x0000000000568d4e in seastar::app_template::run_deprecated(int, char**, std::function<void ()>&&) (this=<optimized out>, ac=<optimized out>, av=0x7fffffffb1f8, func=<optimized out>) at core/app-template.cc:185 #50 0x0000000000730603 in main (ac=3, av=0x7fffffffb1f8) at main.cc:81

@tracymacding
Copy link
Contributor Author

tracymacding commented Nov 15, 2018

from debug info, program cores here:
#0 0x0000000000a3ed1d in boost::intrusive::list_node_traits<void*>::get_previous (n=@0x7fffffff96c0: 0x8e) at /opt/scylladb/include/boost/intrusive/detail/list_node.hpp:51 #1 <function called from gdb> #2 0x000000000074986c in boost::intrusive::list_node_traits<void*>::get_previous (n=@0x7fffffff96c0: 0x8e) at /opt/scylladb/include/boost/intrusive/detail/list_node.hpp:54 #3 0x00000000007dc731 in boost::intrusive::circular_list_algorithms<boost::intrusive::list_node_traits<void*> >::transfer (p=@0x7fffffff96c0: 0x8e, i=@0x7fffffff96b0: 0x302bddb67028) at /opt/scylladb/include/boost/intrusive/circular_list_algorithms.hpp:284 #4 0x00000000007d6e7b in boost::intrusive::list_impl<boost::intrusive::bhtraits<logalloc::segment_descriptor, boost::intrusive::list_node_traits<void*>, (boost::intrusive::link_mode_type)1, boost::intrusive::dft_tag, 1u>, unsigned long, false, void>::splice (this=0x30000027bb30, p=..., x=..., new_ele=...) at /opt/scylladb/include/boost/intrusive/list.hpp:928 #5 0x00000000007d2542 in log_histogram<logalloc::segment_descriptor, logalloc::segment_descriptor_hist_options>::adjust_up (this=0x30000027b240, v=...) at ./utils/log_histogram.hh:237

in function adjust_up:
void adjust_up(T& v) { auto b = traits::cached_bucket(v); auto nb = opts.bucket_of(traits::hist_key(v)); if (nb != b) { traits::cache_bucket(v, nb); _buckets[nb].splice(_buckets[nb].begin(), _buckets[b], _buckets[b].iterator_to(v)); _watermark = std::max(ssize_t(nb), _watermark); } }
gdb shows variables value
(gdb) p nb $35 = 143 (gdb) p b $36 = 142 (gdb) p _buckets[nb].begin() $37 = {static stateful_value_traits = false, members_ = {nodeptr_ = 0x30000027bb30}} (gdb) p _buckets[b] $38 = (std::array<boost::intrusive::list<logalloc::segment_descriptor, boost::intrusive::constant_time_size<false>, void, void, void>, 143>::value_type &) @0x30000027bb20: {<boost::intrusive::list_impl<boost::intrusive::bhtraits<logalloc::segment_descriptor, boost::intrusive::list_node_traits<void*>, (boost::intrusive::link_mode_type)1, boost::intrusive::dft_tag, 1>, unsigned long, false, void>> = {static constant_time_size = false, static stateful_value_traits = <optimized out>, static has_container_from_iterator = <optimized out>, static safemode_or_autounlink = true, data_ = {<boost::intrusive::bhtraits<logalloc::segment_descriptor, boost::intrusive::list_node_traits<void*>, (boost::intrusive::link_mode_type)1, boost::intrusive::dft_tag, 1>> = {<boost::intrusive::bhtraits_base<logalloc::segment_descriptor, boost::intrusive::list_node<void*>*, boost::intrusive::dft_tag, 1>> = {<No data fields>}, static link_mode = boost::intrusive::safe_link}, root_plus_size_ = {<boost::intrusive::detail::size_holder<false, unsigned long, void>> = {static constant_time_size = <optimized out>}, m_header = {<boost::intrusive::list_node<void*>> = {next_ = 0x302bddb67028, prev_ = 0x302bddb67028}, <No data fields>}}}}, <No data fields>} (gdb) p _buckets[b].iterator_to(v) $39 = {static stateful_value_traits = false, members_ = {nodeptr_ = 0x30000027bb20}}

while in boost splice:
(gdb) f 4 #4 0x00000000007d6e7b in boost::intrusive::list_impl<boost::intrusive::bhtraits<logalloc::segment_descriptor, boost::intrusive::list_node_traits<void*>, (boost::intrusive::link_mode_type)1, boost::intrusive::dft_tag, 1u>, unsigned long, false, void>::splice (this=0x30000027bb30, p=..., x=..., new_ele=...) at /opt/scylladb/include/boost/intrusive/list.hpp:928 928 node_algorithms::transfer(p.pointed_node(), new_ele.pointed_node()); (gdb) p p $40 = {static stateful_value_traits = false, members_ = {nodeptr_ = 0x8e}} (gdb) p x $41 = (boost::intrusive::list_impl<boost::intrusive::bhtraits<logalloc::segment_descriptor, boost::intrusive::list_node_traits<void*>, (boost::intrusive::link_mode_type)1, boost::intrusive::dft_tag, 1>, unsigned long, false, void> &) @0x30000027bb20: {static constant_time_size = false, static stateful_value_traits = <optimized out>, static has_container_from_iterator = <optimized out>, static safemode_or_autounlink = true, data_ = {<boost::intrusive::bhtraits<logalloc::segment_descriptor, boost::intrusive::list_node_traits<void*>, (boost::intrusive::link_mode_type)1, boost::intrusive::dft_tag, 1>> = {<boost::intrusive::bhtraits_base<logalloc::segment_descriptor, boost::intrusive::list_node<void*>*, boost::intrusive::dft_tag, 1>> = {<No data fields>}, static link_mode = boost::intrusive::safe_link}, root_plus_size_ = {<boost::intrusive::detail::size_holder<false, unsigned long, void>> = {static constant_time_size = <optimized out>}, m_header = {<boost::intrusive::list_node<void*>> = {next_ = 0x302bddb67028, prev_ = 0x302bddb67028}, <No data fields>}}}} (gdb) p new_ele $42 = {static stateful_value_traits = false, members_ = {nodeptr_ = 0x302bddb67028}}

it seems the first parameter @p in function splice contains invalid members_(0x8e) which caused the crash.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant