cpp-btree icon indicating copy to clipboard operation
cpp-btree copied to clipboard

Assertion failure in btree::btree_node::construct_value

Open smccauliff opened this issue 5 years ago • 0 comments

This appears to be from this line: assert(memcmp(zero_value, v, sizeof(value_type)) == 0);

If a new value is being constructed why should it be zero initalized? Commenting out this assert causes segv later in the program.

__GI_raise 0x00007fedd5098f47 __GI_abort 0x00007fedd509a8b1 __assert_fail_base 0x00007fedd508a42a __GI___assert_fail 0x00007fedd508a4a2 btree::btree_node<btree::btree_map_params<unsigned long, app::MessageAndCoverCount, std::less, std::allocator<std::pair<unsigned long const, app::MessageAndCoverCount> >, 256> >::construct_value<std::pair<unsigned long const, app::MessageAndCoverCount> > btree.h:881 btree::btree_node<btree::btree_map_params<unsigned long, app::MessageAndCoverCount, std::less, std::allocator<std::pair<unsigned long const, app::MessageAndCoverCount> >, 256> >::construct_value<std::pair<unsigned long const, app::MessageAndCoverCount> > btree.h:894 btree::btree_node<btree::btree_map_params<unsigned long, app::MessageAndCoverCount, std::less, std::allocator<std::pair<unsigned long const, app::MessageAndCoverCount> >, 256> >::move_value btree.h:615 btree::btree_node<btree::btree_map_params<unsigned long, app::MessageAndCoverCount, std::less, std::allocator<std::pair<unsigned long const, app::MessageAndCoverCount> >, 256> >::rebalance_right_to_left btree.h:1819 btree::btree<btree::btree_map_params<unsigned long, app::MessageAndCoverCount, std::less, std::allocator<std::pair<unsigned long const, app::MessageAndCoverCount> >, 256> >::rebalance_or_split btree.h:2351 btree::btree<btree::btree_map_params<unsigned long, app::MessageAndCoverCount, std::less, std::allocator<std::pair<unsigned long const, app::MessageAndCoverCount> >, 256> >::internal_emplace<std::piecewise_construct_t const&, std::tuple<unsigned long const&>, std::tuple<> >(btree::btree_iterator<btree::btree_node<btree::btree_map_params<unsigned long, app::MessageAndCoverCount, std::less, std::allocator<std::pair<unsigned long const, app::MessageAndCoverCount> >, 256> > const, std::pair<unsigned long const, app::MessageAndCoverCount> const&, std::pair<unsigned long const, app::MessageAndCoverCount> const*>, std::piecewise_construct_t const&, std::tuple<unsigned long const&>&&, std::tuple<>&&) btree.h:2559 btree::btree<btree::btree_map_params<unsigned long, app::MessageAndCoverCount, std::less, std::allocator<std::pair<unsigned long const, app::MessageAndCoverCount> >, 256> >::emplace_unique_key_args<std::piecewise_construct_t const&, std::tuple<unsigned long const&>, std::tuple<> >(unsigned long const&, std::piecewise_construct_t const&, std::tuple<unsigned long const&>&&, std::tuple<>&&) btree.h:2122 btree::btree_map_container<btree::btree<btree::btree_map_params<unsigned long, app::MessageAndCoverCount, std::less, std::allocator<std::pair<unsigned long const, app::MessageAndCoverCount> >, 256> > >::try_emplace<>(unsigned long const&) map.h:70 btree::btree_map_container<btree::btree<btree::btree_map_params<unsigned long, app::MessageAndCoverCount, std::less, std::allocator<std::pair<unsigned long const, app::MessageAndCoverCount> >, 256> > >::operator[] map.h:118 app::CacheTest::PopulateCache test_cache.cpp:218

smccauliff avatar Sep 24 '20 20:09 smccauliff