Skip to content

[Bug]: Segmentation fault when shutdown #2953

@yingfeng

Description

@yingfeng

Is there an existing issue for the same bug?

  • I have checked the existing issues.

Version or Commit ID

3632fc4

Other environment information

Actual behavior and How to reproduce it

Steps to reproduce:

Create table and import data.

infominer=> CREATE TABLE wiki(url varchar DEFAULT '', title varchar DEFAULT '', body varchar DEFAULT '');
 OK
----
(0 rows)

infominer=> COPY wiki FROM '/home/infominer/codebase/benchmark/wiki/wiki-articles.json' WITH (FORMAT JSONL );
IMPORT 5032105 Rows
infominer=> exit

Then shutdown and restart Infinity

Then shutdown Infinity

   0# infinity::PrintStacktrace@infinity_core(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) at /home/infominer/codebase/workspace/infinity/src/common/utility/exception_impl.cpp:45
   1# infinity::UnrecoverableError@infinity_core(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, char const*, unsigned int) at /home/infominer/codebase/workspace/infinity/src/common/utility/exception_impl.cpp:80
   2# infinity::LocalFileHandle@infinity_core::Read(void*, unsigned long) at /home/infominer/codebase/workspace/infinity/src/storage/io/local_file_handle_impl.cpp:106
   3# infinity::BlockVersion@infinity_core::LoadFromFile(infinity::LocalFileHandle@infinity_core*) at /home/infominer/codebase/workspace/infinity/src/storage/catalog/meta/block_version_impl.cpp:191
   4# infinity::VersionFileWorker@infinity_core::ReadFromFileImpl(unsigned long, bool) at /home/infominer/codebase/workspace/infinity/src/storage/buffer/file_worker/version_file_worker_impl.cpp:92
   5# infinity::FileWorker@infinity_core::ReadFromFile(bool) at /home/infominer/codebase/workspace/infinity/src/storage/buffer/file_worker/file_worker_impl.cpp:143
   6# infinity::BufferObj@infinity_core::Load() at /home/infominer/codebase/workspace/infinity/src/storage/buffer/buffer_obj_impl.cpp:114
   7# infinity::NewTxn@infinity_core::CommitSegmentVersion(infinity::WalSegmentInfo@infinity_core&, infinity::SegmentMeta@infinity_core&) at /home/infominer/codebase/workspace/infinity/src/storage/new_txn/new_txn_data_impl.cpp:1877
   8# infinity::NewTxn@infinity_core::PrepareCommitImport(infinity::WalCmdImportV2@infinity_core*) at /home/infominer/codebase/workspace/infinity/src/storage/new_txn/new_txn_data_impl.cpp:1492
   9# infinity::NewTxn@infinity_core::ReplayImport(infinity::WalCmdImportV2@infinity_core*, unsigned long, long) at /home/infominer/codebase/workspace/infinity/src/storage/new_txn/new_txn_data_impl.cpp:447
  10# infinity::NewTxn@infinity_core::ReplayWalCmd(std::shared_ptr<infinity::WalCmd@infinity_core> const&, unsigned long, long) at /home/infominer/codebase/workspace/infinity/src/storage/new_txn/new_txn_impl.cpp:5747
  11# infinity::WalManager@infinity_core::ReplayWalEntries(std::vector<std::shared_ptr<infinity::WalEntry@infinity_core>, std::allocator<std::shared_ptr<infinity::WalEntry@infinity_core> > > const&) at /home/infominer/codebase/workspace/infinity/src/storage/wal/wal_manager_impl.cpp:708
  12# infinity::Storage@infinity_core::AdminToWriter() at /home/infominer/codebase/workspace/infinity/src/storage/storage_impl.cpp:291
  13# infinity::Storage@infinity_core::SetStorageMode(infinity::StorageMode@infinity_core) at /home/infominer/codebase/workspace/infinity/src/storage/storage_impl.cpp:743
  14# infinity::InfinityContext@infinity_core::ChangeServerRole(infinity::NodeRole, bool, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned short) at /home/infominer/codebase/workspace/infinity/src/main/infinity_context_impl.cpp:135
  15# infinity::InfinityContext@infinity_core::InitPhase2(bool) at /home/infominer/codebase/workspace/infinity/src/main/infinity_context_impl.cpp:93
  16# main at /home/infominer/codebase/workspace/infinity/src/bin/infinity_main.cpp:283
  17# __libc_start_call_main at ../sysdeps/nptl/libc_start_call_main.h:58
  18# __libc_start_main_impl at ../csu/libc-start.c:360
  19# _start at :0
  20#


Thread 1 "infinity" received signal SIGSEGV, Segmentation fault.
infinity::PrintTransactionHistory@infinity_core() () at /home/infominer/codebase/workspace/infinity/src/common/utility/exception_impl.cpp:29
29	    auto *txn_manager = InfinityContext::instance().storage()->new_txn_manager();
(gdb) bt
#0  infinity::PrintTransactionHistory@infinity_core() () at /home/infominer/codebase/workspace/infinity/src/common/utility/exception_impl.cpp:29
#1  0x000055555646bce9 in (anonymous namespace)::TerminateHandler () at /home/infominer/codebase/workspace/infinity/src/bin/infinity_main.cpp:218
#2  0x0000555559888c9a in __cxxabiv1::__terminate(void (*)()) ()
#3  0x0000555559888d01 in std::terminate() ()
#4  0x0000555559888e68 in __cxa_throw ()
#5  0x0000555557e1feab in infinity::UnrecoverableError@infinity_core(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, char const*, unsigned int) (message=..., file_name=<optimized out>, line=line@entry=106) at /home/infominer/codebase/workspace/infinity/src/common/utility/exception_impl.cpp:84
#6  0x0000555556cbf0b9 in infinity::LocalFileHandle@infinity_core::Read(void*, unsigned long) (this=0x7fff7fc288f0, buffer=0x7fff7e232530, nbytes=8)
    at /home/infominer/codebase/workspace/infinity/src/storage/io/local_file_handle_impl.cpp:106
#7  0x0000555556af81b6 in infinity::BlockVersion@infinity_core::LoadFromFile(infinity::LocalFileHandle@infinity_core*) (file_handle=0x7fff7fc288f0)
    at /home/infominer/codebase/workspace/infinity/src/storage/catalog/meta/block_version_impl.cpp:191
#8  0x0000555556ad7405 in infinity::VersionFileWorker@infinity_core::ReadFromFileImpl(unsigned long, bool) (this=0x7fff8ab432c0, file_size=<optimized out>,
    from_spill=<optimized out>) at /home/infominer/codebase/workspace/infinity/src/storage/buffer/file_worker/version_file_worker_impl.cpp:92
#9  0x0000555556acfe13 in infinity::FileWorker@infinity_core::ReadFromFile(bool) (this=0x7fff8ab432c0, from_spill=false)
    at /home/infominer/codebase/workspace/infinity/src/storage/buffer/file_worker/file_worker_impl.cpp:143
#10 0x0000555556ac5d32 in infinity::BufferObj@infinity_core::Load() (this=0x7fff8acb14e0)
    at /home/infominer/codebase/workspace/infinity/src/storage/buffer/buffer_obj_impl.cpp:114
#11 0x0000555556f4829e in infinity::NewTxn@infinity_core::CommitSegmentVersion(infinity::WalSegmentInfo@infinity_core&, infinity::SegmentMeta@infinity_core&) (
    this=this@entry=0x7fff8a75f300, segment_info=..., segment_meta=...) at /home/infominer/codebase/workspace/infinity/src/storage/new_txn/new_txn_data_impl.cpp:1877
#12 0x0000555556f39009 in infinity::NewTxn@infinity_core::PrepareCommitImport(infinity::WalCmdImportV2@infinity_core*) (this=this@entry=0x7fff8a75f300,
    import_cmd=import_cmd@entry=0x7ffff781dd30) at /home/infominer/codebase/workspace/infinity/src/storage/new_txn/new_txn_data_impl.cpp:1492
#13 0x0000555556f3871f in infinity::NewTxn@infinity_core::ReplayImport(infinity::WalCmdImportV2@infinity_core*, unsigned long, long) (this=0x7fff8a75f300,
    import_cmd=0x7ffff781dd30, commit_ts=<optimized out>, txn_id=<optimized out>)
    at /home/infominer/codebase/workspace/infinity/src/storage/new_txn/new_txn_data_impl.cpp:447
#14 0x0000555556f84dad in infinity::NewTxn@infinity_core::ReplayWalCmd(std::shared_ptr<infinity::WalCmd@infinity_core> const&, unsigned long, long) (
    this=0x7fff8a75f300, command=..., commit_ts=20, txn_id=19) at /home/infominer/codebase/workspace/infinity/src/storage/new_txn/new_txn_impl.cpp:5747
#15 0x000055555706d9ec in infinity::WalManager@infinity_core::ReplayWalEntries(std::vector<std::shared_ptr<infinity::WalEntry@infinity_core>, std::allocator<std::shared_ptr<infinity::WalEntry@infinity_core> > > const&) (this=<optimized out>, replay_entries=...)
    at /home/infominer/codebase/workspace/infinity/src/storage/wal/wal_manager_impl.cpp:708
#16 0x0000555557027bac in infinity::Storage@infinity_core::AdminToWriter() (this=this@entry=0x7ffff7836f00)
    at /home/infominer/codebase/workspace/infinity/src/storage/storage_impl.cpp:291
#17 0x000055555702c61f in infinity::Storage@infinity_core::SetStorageMode(infinity::StorageMode@infinity_core) (this=0x7ffff7836f00, target_mode=StorageMode::kWritable)
    at /home/infominer/codebase/workspace/infinity/src/storage/storage_impl.cpp:743
#18 0x00005555568e9bf3 in infinity::InfinityContext@infinity_core::ChangeServerRole(infinity::NodeRole, bool, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned short) (
    this=this@entry=0x555559acc038 <infinity::Singleton@infinity_core<infinity::InfinityContext@infinity_core>::instance()::instance>,
    target_role=target_role@entry=infinity::NodeRole::kStandalone, from_leader=false, node_name=..., node_ip=..., node_port=0)
    at /home/infominer/codebase/workspace/infinity/src/main/infinity_context_impl.cpp:135
#19 0x00005555568ea7e3 in infinity::InfinityContext@infinity_core::InitPhase2(bool) (
--Type <RET> for more, q to quit, c to continue without paging--
    this=0x555559acc038 <infinity::Singleton@infinity_core<infinity::InfinityContext@infinity_core>::instance()::instance>, admin_flag=<optimized out>)
    at /home/infominer/codebase/workspace/infinity/src/main/infinity_context_impl.cpp:93

Expected behavior

No response

Additional information

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions