stonedb
stonedb copied to clipboard
bug: Assertion failed in traceable_object
Have you read the Contributing Guidelines on issues?
- [X] I have read the Contributing Guidelines on issues.
Please confirm if bug report does NOT exists already ?
- [X] I confirm there is no existing issue for this
Describe the problem
Assertion failed when it use source to insert data inot stonedb.
50 ../sysdeps/unix/sysv/linux/raise.c: No such file or directory.
(gdb) where
#0 __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50
#1 0x00007f53668e9859 in __GI_abort () at abort.c:79
#2 0x00007f53668e9729 in __assert_fail_base (fmt=0x7f5366a7f588 "%s%s%s:%u: %s%sAssertion `%s' failed.\n%n", assertion=0x55efc503595a "m_sizeAllocated == 0", file=0x55efc5035910 "/home/lihao/workshop/stonedb-ver-1/storage/tianmu/mm/traceable_object.cpp", line=131,
function=<optimized out>) at assert.c:92
#3 0x00007f53668fafd6 in __GI___assert_fail (assertion=0x55efc503595a "m_sizeAllocated == 0", file=0x55efc5035910 "/home/lihao/workshop/stonedb-ver-1/storage/tianmu/mm/traceable_object.cpp", line=131,
function=0x55efc50358d8 "virtual Tianmu::mm::TraceableObject::~TraceableObject()") at assert.c:101
#4 0x000055efc4580486 in Tianmu::mm::TraceableObject::~TraceableObject (this=0x7f4ff0000ba0, __in_chrg=<optimized out>) at /home/lihao/workshop/stonedb-ver-1/storage/tianmu/mm/traceable_object.cpp:131
#5 0x000055efc4602e58 in Tianmu::core::Pack::~Pack (this=0x7f4ff0000ba0, __in_chrg=<optimized out>) at /home/lihao/workshop/stonedb-ver-1/storage/tianmu/data/pack.h:45
#6 0x000055efc4813770 in Tianmu::core::PackInt::PackInt (this=0x7f4ff0000ba0, dpn=0x7f5060900000, pc=..., s=0x7f5038020ff0) at /home/lihao/workshop/stonedb-ver-1/storage/tianmu/data/pack_int.cpp:33
#7 0x000055efc46173db in __gnu_cxx::new_allocator<Tianmu::core::PackInt>::construct<Tianmu::core::PackInt<Tianmu::core::DPN*&, Tianmu::core::ObjectId<(Tianmu::core::COORD_TYPE)0, 3, Tianmu::core::object_id_helper::empty> const&, Tianmu::core::ColumnShare*&> > (
this=0x7f52c97f8a9f, __p=0x7f4ff0000ba0) at /usr/include/c++/9/ext/new_allocator.h:146
#8 0x000055efc4616018 in std::allocator_traits<std::allocator<Tianmu::core::PackInt> >::construct<Tianmu::core::PackInt<Tianmu::core::DPN*&, Tianmu::core::ObjectId<(Tianmu::core::COORD_TYPE)0, 3, Tianmu::core::object_id_helper::empty> const&, Tianmu::core::ColumnShare*&> > (__a=..., __p=0x7f4ff0000ba0) at /usr/include/c++/9/bits/alloc_traits.h:483
#9 0x000055efc46138bb in std::_Sp_counted_ptr_inplace<Tianmu::core::PackInt, std::allocator<Tianmu::core::PackInt>, (__gnu_cxx::_Lock_policy)2>::_Sp_counted_ptr_inplace<Tianmu::core::DPN*&, Tianmu::core::ObjectId<(Tianmu::core::COORD_TYPE)0, 3, Tianmu::core::object_id_helper::empty> const&, Tianmu::core::ColumnShare*&> (this=0x7f4ff0000b90, __a=...) at /usr/include/c++/9/bits/shared_ptr_base.h:548
#10 0x000055efc4610304 in std::__shared_count<(__gnu_cxx::_Lock_policy)2>::__shared_count<Tianmu::core::PackInt, std::allocator<Tianmu::core::PackInt>, Tianmu::core::DPN*&, Tianmu::core::ObjectId<(Tianmu::core::COORD_TYPE)0, 3, Tianmu::core::object_id_helper::empty> const&, Tianmu::core::ColumnShare*&> (this=0x7f52c97f8cb8, __p=@0x7f52c97f8cb0: 0x0, __a=...) at /usr/include/c++/9/bits/shared_ptr_base.h:679
#11 0x000055efc460cb6c in std::__shared_ptr<Tianmu::core::PackInt, (__gnu_cxx::_Lock_policy)2>::__shared_ptr<std::allocator<Tianmu::core::PackInt>, Tianmu::core::DPN*&, Tianmu::core::ObjectId<(Tianmu::core::COORD_TYPE)0, 3, Tianmu::core::object_id_helper::empty> const&, Tianmu::core::ColumnShare*&> (this=0x7f52c97f8cb0, __tag=...) at /usr/include/c++/9/bits/shared_ptr_base.h:1344
#12 0x000055efc460a537 in std::shared_ptr<Tianmu::core::PackInt>::shared_ptr<std::allocator<Tianmu::core::PackInt>, Tianmu::core::DPN*&, Tianmu::core::ObjectId<(Tianmu::core::COORD_TYPE)0, 3, Tianmu::core::object_id_helper::empty> const&, Tianmu::core::ColumnShare*&> (
this=0x7f52c97f8cb0, __tag=...) at /usr/include/c++/9/bits/shared_ptr.h:359
#13 0x000055efc4607f8b in std::allocate_shared<Tianmu::core::PackInt, std::allocator<Tianmu::core::PackInt>, Tianmu::core::DPN*&, Tianmu::core::ObjectId<(Tianmu::core::COORD_TYPE)0, 3, Tianmu::core::object_id_helper::empty> const&, Tianmu::core::ColumnShare*&> (__a=...)
at /usr/include/c++/9/bits/shared_ptr.h:702
#14 0x000055efc460555a in std::make_shared<Tianmu::core::PackInt, Tianmu::core::DPN*&, Tianmu::core::ObjectId<(Tianmu::core::COORD_TYPE)0, 3, Tianmu::core::object_id_helper::empty> const&, Tianmu::core::ColumnShare*&> () at /usr/include/c++/9/bits/shared_ptr.h:718
#15 0x000055efc45f822e in Tianmu::core::TianmuAttr::Fetch (this=0x7f5018010d00, pc=...) at /home/lihao/workshop/stonedb-ver-1/storage/tianmu/vc/tianmu_attr.cpp:897
#16 0x000055efc4604fc1 in Tianmu::core::DataCache::GetOrFetchObject<Tianmu::core::Pack, Tianmu::core::ObjectId<(Tianmu::core::COORD_TYPE)0, 3, Tianmu::core::object_id_helper::empty>, Tianmu::core::TianmuAttr> (this=0x55efc5fb7980, coord_=..., fetcher_=0x7f5018010d00)
at /home/lihao/workshop/stonedb-ver-1/storage/tianmu/core/data_cache.h:234
#17 0x000055efc45fb840 in Tianmu::core::TianmuAttr::CopyPackForWrite (this=0x7f5018010d00, pi=1) at /home/lihao/workshop/stonedb-ver-1/storage/tianmu/vc/tianmu_attr.cpp:1312
#18 0x000055efc45f856e in Tianmu::core::TianmuAttr::PreparePackForLoad (this=0x7f5018010d00) at /home/lihao/workshop/stonedb-ver-1/storage/tianmu/vc/tianmu_attr.cpp:912
#19 0x000055efc45f85f6 in Tianmu::core::TianmuAttr::LoadData (this=0x7f5018010d00, nvs=0x7f5018017850, conn_info=0x7f501800d9f0) at /home/lihao/workshop/stonedb-ver-1/storage/tianmu/vc/tianmu_attr.cpp:921
#20 0x000055efc452f4fd in std::__invoke_impl<void, void (Tianmu::core::TianmuAttr::*&)(Tianmu::loader::ValueCache*, Tianmu::core::Transaction*), Tianmu::core::TianmuAttr<Tianmu::loader::ValueCache*&, Tianmu::core::Transaction*&>*&> (__f=
@0x7f501800fbc8: (void (Tianmu::core::TianmuAttr::*)(class Tianmu::core::TianmuAttr * const, class Tianmu::loader::ValueCache *, class Tianmu::core::Transaction *)) 0x55efc45f858a <Tianmu::core::TianmuAttr::LoadData(Tianmu::loader::ValueCache*, Tianmu::core::Transaction*)>, __t=@0x7f501800fbe8: 0x7f5018010d00) at /usr/include/c++/9/bits/invoke.h:73
#21 0x000055efc452edef in std::__invoke<void (Tianmu::core::TianmuAttr::*&)(Tianmu::loader::ValueCache*, Tianmu::core::Transaction*), Tianmu::core::TianmuAttr*&, Tianmu::loader::ValueCache*&, Tianmu::core::Transaction*&> (__fn=
@0x7f501800fbc8: (void (Tianmu::core::TianmuAttr::*)(class Tianmu::core::TianmuAttr * const, class Tianmu::loader::ValueCache *, class Tianmu::core::Transaction *)) 0x55efc45f858a <Tianmu::core::TianmuAttr::LoadData(Tianmu::loader::ValueCache*, Tianmu::core::Transaction*)>) at /usr/include/c++/9/bits/invoke.h:95
#22 0x000055efc452e583 in std::_Bind<void (Tianmu::core::TianmuAttr::*(Tianmu::core::TianmuAttr*, Tianmu::loader::ValueCache*, Tianmu::core::Transaction*))(Tianmu::loader::ValueCache*, Tianmu::core::Transaction*)>::__call<void, , 0ul, 1ul, 2ul>(std::tuple<>&&, std::_Index_tuple<0ul, 1ul, 2ul>) (this=0x7f501800fbc8, __args=empty std::tuple) at /usr/include/c++/9/functional:400
#23 0x000055efc452d529 in std::_Bind<void (Tianmu::core::TianmuAttr::*(Tianmu::core::TianmuAttr*, Tianmu::loader::ValueCache*, Tianmu::core::Transaction*))(Tianmu::loader::ValueCache*, Tianmu::core::Transaction*)>::operator()<, void>() (this=0x7f501800fbc8)
at /usr/include/c++/9/functional:484
#24 0x000055efc452ba3f in std::__invoke_impl<void, std::_Bind<void (Tianmu::core::TianmuAttr::*(Tianmu::core::TianmuAttr*, Tianmu::loader::ValueCache*, Tianmu::core::Transaction*))(Tianmu::loader::ValueCache*, Tianmu::core::Transaction*)>&>(std::__invoke_other, std::_Bind<void (Tianmu::core::TianmuAttr::*(Tianmu::core::TianmuAttr*, Tianmu::loader::ValueCache*, Tianmu::core::Transaction*))(Tianmu::loader::ValueCache*, Tianmu::core::Transaction*)>&) (__f=...) at /usr/include/c++/9/bits/invoke.h:60
#25 0x000055efc452a2df in std::__invoke<std::_Bind<void (Tianmu::core::TianmuAttr::*(Tianmu::core::TianmuAttr*, Tianmu::loader::ValueCache*, Tianmu::core::Transaction*))(Tianmu::loader::ValueCache*, Tianmu::core::Transaction*)>&>(std::_Bind<void (Tianmu::core::TianmuAttr::*(Tianmu::core::TianmuAttr*, Tianmu::loader::ValueCache*, Tianmu::core::Transaction*))(Tianmu::loader::ValueCache*, Tianmu::core::Transaction*)>&) (__fn=...) at /usr/include/c++/9/bits/invoke.h:95
#26 0x000055efc4528aab in std::__future_base::_Task_state<std::_Bind<void (Tianmu::core::TianmuAttr::*(Tianmu::core::TianmuAttr*, Tianmu::loader::ValueCache*, Tianmu::core::Transaction*))(Tianmu::loader::ValueCache*, Tianmu::core::Transaction*)>, std::allocator<int>, void ()>::_M_run()::{lambda()#1}::operator()() const (this=0x7f501800fba0) at /usr/include/c++/9/future:1421
#27 0x000055efc452d600 in std::__future_base::_Task_setter<std::unique_ptr<std::__future_base::_Result<void>, std::__future_base::_Result_base::_Deleter>, std::__future_base::_Task_state<std::_Bind<void (Tianmu::core::TianmuAttr::*(Tianmu::core::TianmuAttr*, Tianmu::loader::ValueCache*, Tianmu::core::Transaction*))(Tianmu::loader::ValueCache*, Tianmu::core::Transaction*)>, std::allocator<int>, void ()>::_M_run()::{lambda()#1}, void>::operator()() const (this=0x7f52c97f9500) at /usr/include/c++/9/future:1362
#28 0x000055efc452bb0e in std::_Function_handler<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> (), std::__future_base::_Task_setter<std::unique_ptr<std::__future_base::_Result<void>, std::__future_base::_Result_base::_Deleter>, std::__future_base::_Task_state<std::_Bind<void (Tianmu::core::TianmuAttr::*(Tianmu::core::TianmuAttr*, Tianmu::loader::ValueCache*, Tianmu::core::Transaction*))(Tianmu::loader::ValueCache*, Tianmu::core::Transaction*)>, std::allocator<int>, void ()>::_M_run()::{lambda()#1}, void> >::_M_invoke(std::_Any_data const&) (__functor=...) at /usr/include/c++/9/bits/std_function.h:286
#29 0x000055efc4420aae in std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>::operator()() const (this=0x7f52c97f9500) at /usr/include/c++/9/bits/std_function.h:688
#30 0x000055efc4419cd4 in std::__future_base::_State_baseV2::_M_do_set(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*) (this=0x7f501800fba0, __f=0x7f52c97f9500, __did_set=0x7f52c97f945f)
at /usr/include/c++/9/future:561
#31 0x000055efc443284f in std::__invoke_impl<void, void (std::__future_base::_State_baseV2::*)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*), std::__future_base::_State_baseV2<std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*>*> (__f=
@0x7f52c97f94a0: (void (std::__future_base::_State_baseV2::*)(class std::__future_base::_State_baseV2 * const, class std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter>()> *, bool *)) 0x55efc4419c9a <std::__future_base::_State_baseV2::_M_do_set(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*)>, __t=@0x7f52c97f9470: 0x7f501800fba0) at /usr/include/c++/9/bits/invoke.h:73
#32 0x000055efc4429729 in std::__invoke<void (std::__future_base::_State_baseV2::*)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*), std::__future_base::_State_baseV2*, std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*>(void (std::__future_base::_State_baseV2::*&&)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*), std::__future_base::_State_baseV2*&&, std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*&&, bool*&&) (__fn=
@0x7f52c97f94a0: (void (std::__future_base::_State_baseV2::*)(class std::__future_base::_State_baseV2 * const, class std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter>()> *, bool *)) 0x55efc4419c9a <std::__future_base::_State_baseV2::_M_do_set(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*)>) at /usr/include/c++/9/bits/invoke.h:95
--Type <RET> for more, q to quit, c to continue without paging--q
m_sizeAllocated
is 0
that leads the assertion failed.
Expected behavior
Makes assertion sucess.
How To Reproduce
No response
Environment
No response
Are you interested in submitting a PR to solve the problem?
- [X] Yes, I will!
You can try using the latest version of the code, which seems to have solved this problem
You can try using the latest version of the code, which seems to have solved this problem
Ok, Nice
When the server crashes randomly, the data will corruption, leads to this assertion failed. On with rocksdb 7.4. It works with RocksDB 6.xxx