Open haitaoguan opened 1 year ago
ACK
(gdb) bt
#0 __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50
#1 0x00007f6d20488859 in __GI_abort () at abort.c:79
#2 0x00007f6d20488729 in __assert_fail_base (fmt=0x7f6d2061e588 "%s%s%s:%u: %s%sAssertion `%s' failed.\n%n",
assertion=0x5610bbc5f96e "r.low < r.high",
file=0x5610bbc5f568 "/data/codebase/stonedb57/stonedb/storage/tianmu/compress/word_graph.cpp", line=731, function=<optimized out>)
at assert.c:92
#3 0x00007f6d20499fd6 in __GI___assert_fail (assertion=0x5610bbc5f96e "r.low < r.high",
file=0x5610bbc5f568 "/data/codebase/stonedb57/stonedb/storage/tianmu/compress/word_graph.cpp", line=731,
function=0x5610bbc5f8e0 "void Tianmu::compress::WordGraph::GetRange(Tianmu::compress::WordGraph::PEdge, Tianmu::compress::WordGraph::PSEdge, Tianmu::compress::Range&)") at assert.c:101
#4 0x00005610bb641131 in Tianmu::compress::WordGraph::GetRange (this=0x7f67d4003ff0, e=267, se=0, r=...)
at /data/codebase/stonedb57/stonedb/storage/tianmu/compress/word_graph.cpp:731
#5 0x00005610bb6413d1 in Tianmu::compress::WordGraph::Move (this=0x7f67d4003ff0, str=0x7f67d40071a1 "0", len=@0x7f6c947d0df0: 2, rng=...,
total=@0x7f6c947d0dee: 256) at /data/codebase/stonedb57/stonedb/storage/tianmu/compress/word_graph.cpp:782
#6 0x00005610bb638eba in Tianmu::compress::PPM::Compress (this=0x7f6c947d0ee0, dest=0x7f6839cf9080 "\002", dlen=@0x7f6c947d0ec8: 655242,
src=0x7f67d40071a0 "90", slen=67) at /data/codebase/stonedb57/stonedb/storage/tianmu/compress/ppm.cpp:283
#7 0x00005610bb584840 in Tianmu::compress::TextCompressor::CompressPlain (this=0x7f6c947d1470, dest=0x7f6839cf9005 "\002\a:",
dlen=@0x7f6c947d10cc: 655365, src=0x7f67d4007160 "", slen=720896, ver=2, lev=7)
at /data/codebase/stonedb57/stonedb/storage/tianmu/compress/text_compressor.cpp:167
#8 0x00005610bb585179 in Tianmu::compress::TextCompressor::CompressVer2 (this=0x7f6c947d1470, dest=0x7f6839cf9000 "\001",
dlen=@0x7f6c947d10cc: 655365, index=0x7f6839a5c000, lens=0x7f6839d9a000, nrec=65536, ver=2, lev=7)
at /data/codebase/stonedb57/stonedb/storage/tianmu/compress/text_compressor.cpp:318
#9 0x00005610bb585c52 in Tianmu::compress::TextCompressor::Compress (this=0x7f6c947d1470, dest=0x7f6839cf9000 "\001",
dlen=@0x7f6c947d10cc: 655365, index=0x7f6839a5c000, lens=0x7f6839d9a000, nrec=65536, packlen=@0x7f6c947d10d0: 655360, ver=2, lev=7)
at /data/codebase/stonedb57/stonedb/storage/tianmu/compress/text_compressor.cpp:494
#10 0x00005610bb52f243 in Tianmu::core::PackStr::Compress (this=0x7f67d4003cf0)
at /data/codebase/stonedb57/stonedb/storage/tianmu/core/pack_str.cpp:404
#11 0x00005610bb530092 in Tianmu::core::PackStr::Save (this=0x7f67d4003cf0)
at /data/codebase/stonedb57/stonedb/storage/tianmu/core/pack_str.cpp:513
#12 0x00005610bb1e3f6f in Tianmu::core::TianmuAttr::LoadData (this=0x7f673c007500, nvs=0x7f673c015630, conn_info=0x7f673c00c640)
at /data/codebase/stonedb57/stonedb/storage/tianmu/core/tianmu_attr.cpp:895
#13 0x00005610bb241d4d 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=
@0x7f673c014358: (void (Tianmu::core::TianmuAttr::*)(class Tianmu::core::TianmuAttr * const, class Tianmu::loader::ValueCache *, class Tianmu::core::Transaction *)) 0x5610bb1e3da2 <Tianmu::core::TianmuAttr::LoadData(Tianmu::loader::ValueCache*, Tianmu::core::Transaction*)>,
__t=@0x7f673c014378: 0x7f673c007500) at /usr/include/c++/9/bits/invoke.h:73
#14 0x00005610bb241b6f in std::__invoke<void (Tianmu::core::TianmuAttr::*&)(Tianmu::loader::ValueCache*, Tianmu::core::Transaction*), Tianmu::core::TianmuAttr*&, Tianmu::loader::ValueCache*&, Tianmu::core::Transaction*&> (__fn=
@0x7f673c014358: (void (Tianmu::core::TianmuAttr::*)(class Tianmu::core::TianmuAttr * const, class Tianmu::loader::ValueCache *, class Tianmu::core::Transaction *)) 0x5610bb1e3da2 <Tianmu::core::TianmuAttr::LoadData(Tianmu::loader::ValueCache*, Tianmu::core::Transaction*)>)
at /usr/include/c++/9/bits/invoke.h:95
#15 0x00005610bb2417eb 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=0x7f673c014358, __args=empty std::tuple) at /usr/include/c++/9/functional:400
#16 0x00005610bb240e0f 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=0x7f673c014358)
--Type <RET> for more, q to quit, c to continue without paging--
at /usr/include/c++/9/functional:484
#17 0x00005610bb240593 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
#18 0x00005610bb23ff74 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
#19 0x00005610bb23f637 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=0x7f673c014330) at /usr/include/c++/9/future:1421
#20 0x00005610bb240ee6 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=0x7f6c947f5d80) at /usr/include/c++/9/future:1362
#21 0x00005610bb240662 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
#22 0x00005610bb0f4796 in std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>::operator()() const (this=0x7f6c947f5d80) at /usr/include/c++/9/bits/std_function.h:688
#23 0x00005610bb0ed7b2 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=0x7f673c014330, __f=0x7f6c947f5d80, __did_set=0x7f6c947f5cdf)
at /usr/include/c++/9/future:561
#24 0x00005610bb1065b3 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=
@0x7f6c947f5d20: (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 *)) 0x5610bb0ed778 <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=@0x7f6c947f5cf0: 0x7f673c014330) at /usr/include/c++/9/bits/invoke.h:73
#25 0x00005610bb0fd5b7 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=
@0x7f6c947f5d20: (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 *)) 0x5610bb0ed778 <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
#26 0x00005610bb0f4348 in std::call_once<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*>(std::once_flag&, 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_b--Type <RET> for more, q to quit, c to continue without paging--
ase::_State_baseV2*&&, std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*&&, bool*&&)::{lambda()#1}::operator()() const (this=0x7f6c947f5c60) at /usr/include/c++/9/mutex:671
#27 0x00005610bb0f437f in std::call_once<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*>(std::once_flag&, 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*&&)::{lambda()#2}::operator()() const (this=0x0) at /usr/include/c++/9/mutex:676
#28 0x00005610bb0f4394 in std::call_once<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*>(std::once_flag&, 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*&&)::{lambda()#2}::_FUN() () at /usr/include/c++/9/mutex:676
#29 0x00007f6d207ba4df in __pthread_once_slow (once_control=0x7f673c014348, init_routine=0x5610bb74d350 <__once_proxy>)
at pthread_once.c:116
#30 0x00005610bb0e7510 in __gthread_once (__once=0x7f673c014348, __func=0x5610bb74d350 <__once_proxy>)
at /usr/include/x86_64-linux-gnu/c++/9/bits/gthr-default.h:700
#31 0x00005610bb0f4455 in std::call_once<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*>(std::once_flag&, 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*&&) (__once=..., __f=
@0x7f6c947f5d20: (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 *)) 0x5610bb0ed778 <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/mutex:683
#32 0x00005610bb0ed366 in std::__future_base::_State_baseV2::_M_set_result(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>, bool) (this=0x7f673c014330, __res=..., __ignore_failure=false)
at /usr/include/c++/9/future:401
#33 0x00005610bb23f6a9 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() (this=0x7f673c014330) at /usr/include/c++/9/future:1423
#34 0x00005610bb10355f in std::packaged_task<void ()>::operator()() (this=0x7f673c011710) at /usr/include/c++/9/future:1551
#35 0x00005610bb22f61b in Tianmu::utils::thread_pool::add_task<void (Tianmu::core::TianmuAttr::*)(Tianmu::loader::ValueCache*, Tianmu::core::Transaction*), Tianmu::core::TianmuAttr*, Tianmu::loader::ValueCache*, Tianmu::core::Transaction*&>(void (Tianmu::core::TianmuAttr::*&&)(Tianmu::loader::ValueCache*, Tianmu::core::Transaction*), Tianmu::core::TianmuAttr*&&, Tianmu::loader::ValueCache*&&, Tianmu::core::Transaction*&)::{lambda()#1}::operator()() const (this=0x7f673c011c60) at /data/codebase/stonedb57/stonedb/storage/tianmu/util/thread_pool.h:94
#36 0x00005610bb23b1cf in std::_Function_handler<void (), Tianmu::utils::thread_pool::add_task<void (Tianmu::core::TianmuAttr::*)(Tianmu::loader::ValueCache*, Tianmu::core::Transaction*), Tianmu::core::TianmuAttr*, Tianmu::loader::ValueCache*, Tianmu::core::Transaction*&>(void (Tianmu::core::TianmuAttr::*&&)(Tianmu::loader::ValueCache*, Tianmu::core::Transaction*), Tianmu::core::TianmuAttr*&&, Tianmu::loader::ValueCache*&&, Tianmu::core::Transaction*&)::{lambda()#1}>::_M_invoke(std::_Any_data const&) (__functor=...)
at /usr/include/c++/9/bits/std_function.h:300
#37 0x00005610bb0f2e4a in std::function<void ()>::operator()() const (this=0x7f6c947f5ec0) at /usr/include/c++/9/bits/std_function.h:688
#38 0x00005610bb0edd07 in Tianmu::utils::thread_pool::thread_pool(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<cha--Type <RET> for more, q to quit, c to continue without paging--
r> > const&, unsigned long)::{lambda()#1}::operator()() const (__closure=0x5610bf7ad588)
at /data/codebase/stonedb57/stonedb/storage/tianmu/util/thread_pool.h:61
#39 0x00005610bb128848 in std::__invoke_impl<void, Tianmu::utils::thread_pool::thread_pool(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned long)::{lambda()#1}>(std::__invoke_other, Tianmu::utils::thread_pool::thread_pool(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned long)::{lambda()#1}&&) (__f=...)
at /usr/include/c++/9/bits/invoke.h:60
#40 0x00005610bb1285b9 in std::__invoke<Tianmu::utils::thread_pool::thread_pool(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned long)::{lambda()#1}>(std::__invoke_result&&, (Tianmu::utils::thread_pool::thread_pool(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned long)::{lambda()#1}&&)...) (__fn=...)
at /usr/include/c++/9/bits/invoke.h:95
#41 0x00005610bb127c94 in std::thread::_Invoker<std::tuple<Tianmu::utils::thread_pool::thread_pool(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned long)::{lambda()#1}> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) (this=0x5610bf7ad588)
at /usr/include/c++/9/thread:244
#42 0x00005610bb12740f in std::thread::_Invoker<std::tuple<Tianmu::utils::thread_pool::thread_pool(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned long)::{lambda()#1}> >::operator()() (this=0x5610bf7ad588)
at /usr/include/c++/9/thread:251
#43 0x00005610bb1263d0 in std::thread::_State_impl<std::thread::_Invoker<std::tuple<Tianmu::utils::thread_pool::thread_pool(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned long)::{lambda()#1}> > >::_M_run() (this=0x5610bf7ad580)
at /usr/include/c++/9/thread:195
#44 0x00005610bb7648d4 in execute_native_thread_routine ()
#45 0x00007f6d207b1609 in start_thread (arg=<optimized out>) at pthread_create.c:477
#46 0x00007f6d20585133 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
Check the StoneDB5.6,it crashed likewise.
The PPM2 does not work, the code for PPM2 seems not completed, and code is not from some third-party. If we want to support it , we need to know what is PPM2, how it works in principle, and research the code to learn how it implents, after that we can start to slove the bug . It is a feature task.
change it to a feature as customer rarely use this compress algorithm.
Have you read the Contributing Guidelines on issues?
Please confirm if bug report does NOT exists already ?
Describe the problem
Expected behavior
No response
How To Reproduce
No response
Environment
./mysqld Ver 5.7.36-StoneDB for Linux on x86_64 (build-) build information as follow: Repository address: https://github.com/stoneatom/stonedb.git:stonedb-5.7-dev Branch name: stonedb-5.7-dev Last commit ID: 29e3f7c Last commit time: Date: Thu Jan 12 17:58:24 2023 +0800 Build time: Date: Mon Jan 16 08:21:32 CST 2023
Are you interested in submitting a PR to solve the problem?