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

[Bug]: Sanitize, memory leak #2465

Closed
1 task done
JinHai-CN opened this issue Jan 16, 2025 · 0 comments · Fixed by #2475
Closed
1 task done

[Bug]: Sanitize, memory leak #2465

JinHai-CN opened this issue Jan 16, 2025 · 0 comments · Fixed by #2475
Assignees
Labels
bug Something isn't working

Comments

@JinHai-CN
Copy link
Contributor

Is there an existing issue for the same bug?

  • I have checked the existing issues.

Version or Commit ID

main

Other environment information

No response

Actual behavior and How to reproduce it

Run debug version restart test case: python/restart_test/test_memidx.py

==128285==ERROR: LeakSanitizer: detected memory leaks

Direct leak of 120 byte(s) in 1 object(s) allocated from:
    #0 0x6123acdae8d1 in operator new(unsigned long) (/home/infiniflow/Documents/development/infinity/cmake-build-debug/src/infinity+0xdd88d1) (BuildId: 0e91bd383cd297317e6d9c1321ac71009f05ac8b)
    #1 0x6123b20d2dc5 in infinity::IVFIndexInMem@ivf_index_data_in_mem::IVFIndexInMem(infinity::RowID, infinity::IndexIVFOption@index_ivf const&, infinity::LogicalType, infinity::EmbeddingDataType, unsigned int, infinity::SegmentIndexEntry@segment_index_entry*) /home/infiniflow/Documents/development/infinity/src/storage/knn_index/knn_ivf/ivf_index_data_in_mem.cpp:58:26
    #2 0x6123b20e359f in infinity::IVFIndexInMemT@ivf_index_data_in_mem<(infinity::LogicalType)23, (infinity::EmbeddingDataType)5>::IVFIndexInMemT(infinity::RowID, infinity::IndexIVFOption@index_ivf const&, unsigned int, infinity::SegmentIndexEntry@segment_index_entry*) /home/infiniflow/Documents/development/infinity/src/storage/knn_index/knn_ivf/ivf_index_data_in_mem.cpp:132:11
    #3 0x6123b20e352e in infinity::IVFIndexInMemT@ivf_index_data_in_mem<(infinity::LogicalType)23, (infinity::EmbeddingDataType)5>* std::__1::construct_at[abi:ne190105]<infinity::IVFIndexInMemT@ivf_index_data_in_mem<(infinity::LogicalType)23, (infinity::EmbeddingDataType)5>, infinity::RowID const&, infinity::IndexIVFOption@index_ivf const&, unsigned long, infinity::SegmentIndexEntry@segment_index_entry*&, infinity::IVFIndexInMemT@ivf_index_data_in_mem<(infinity::LogicalType)23, (infinity::EmbeddingDataType)5>*>(infinity::IVFIndexInMemT@ivf_index_data_in_mem<(infinity::LogicalType)23, (infinity::EmbeddingDataType)5>*, infinity::RowID const&, infinity::IndexIVFOption@index_ivf const&, unsigned long&&, infinity::SegmentIndexEntry@segment_index_entry*&) /usr/lib/llvm-19/include/c++/v1/__memory/construct_at.h:41:46
    #4 0x6123b20e3474 in infinity::IVFIndexInMemT@ivf_index_data_in_mem<(infinity::LogicalType)23, (infinity::EmbeddingDataType)5>* std::__1::__construct_at[abi:ne190105]<infinity::IVFIndexInMemT@ivf_index_data_in_mem<(infinity::LogicalType)23, (infinity::EmbeddingDataType)5>, infinity::RowID const&, infinity::IndexIVFOption@index_ivf const&, unsigned long, infinity::SegmentIndexEntry@segment_index_entry*&, infinity::IVFIndexInMemT@ivf_index_data_in_mem<(infinity::LogicalType)23, (infinity::EmbeddingDataType)5>*>(infinity::IVFIndexInMemT@ivf_index_data_in_mem<(infinity::LogicalType)23, (infinity::EmbeddingDataType)5>*, infinity::RowID const&, infinity::IndexIVFOption@index_ivf const&, unsigned long&&, infinity::SegmentIndexEntry@segment_index_entry*&) /usr/lib/llvm-19/include/c++/v1/__memory/construct_at.h:49:10
    #5 0x6123b20e31b8 in void std::__1::allocator_traits<std::__1::allocator<infinity::IVFIndexInMemT@ivf_index_data_in_mem<(infinity::LogicalType)23, (infinity::EmbeddingDataType)5>>>::construct[abi:ne190105]<infinity::IVFIndexInMemT@ivf_index_data_in_mem<(infinity::LogicalType)23, (infinity::EmbeddingDataType)5>, infinity::RowID const&, infinity::IndexIVFOption@index_ivf const&, unsigned long, infinity::SegmentIndexEntry@segment_index_entry*&, void, 0>(std::__1::allocator<infinity::IVFIndexInMemT@ivf_index_data_in_mem<(infinity::LogicalType)23, (infinity::EmbeddingDataType)5>>&, infinity::IVFIndexInMemT@ivf_index_data_in_mem<(infinity::LogicalType)23, (infinity::EmbeddingDataType)5>*, infinity::RowID const&, infinity::IndexIVFOption@index_ivf const&, unsigned long&&, infinity::SegmentIndexEntry@segment_index_entry*&) /usr/lib/llvm-19/include/c++/v1/__memory/allocator_traits.h:328:5
    #6 0x6123b20e2d6f in std::__1::__shared_ptr_emplace<infinity::IVFIndexInMemT@ivf_index_data_in_mem<(infinity::LogicalType)23, (infinity::EmbeddingDataType)5>, std::__1::allocator<infinity::IVFIndexInMemT@ivf_index_data_in_mem<(infinity::LogicalType)23, (infinity::EmbeddingDataType)5>>>::__shared_ptr_emplace[abi:ne190105]<infinity::RowID const&, infinity::IndexIVFOption@index_ivf const&, unsigned long, infinity::SegmentIndexEntry@segment_index_entry*&, std::__1::allocator<infinity::IVFIndexInMemT@ivf_index_data_in_mem<(infinity::LogicalType)23, (infinity::EmbeddingDataType)5>>, 0>(std::__1::allocator<infinity::IVFIndexInMemT@ivf_index_data_in_mem<(infinity::LogicalType)23, (infinity::EmbeddingDataType)5>>, infinity::RowID const&, infinity::IndexIVFOption@index_ivf const&, unsigned long&&, infinity::SegmentIndexEntry@segment_index_entry*&) /usr/lib/llvm-19/include/c++/v1/__memory/shared_ptr.h:264:5
    #7 0x6123b20e287e in std::__1::shared_ptr<infinity::IVFIndexInMemT@ivf_index_data_in_mem<(infinity::LogicalType)23, (infinity::EmbeddingDataType)5>> std::__1::allocate_shared[abi:ne190105]<infinity::IVFIndexInMemT@ivf_index_data_in_mem<(infinity::LogicalType)23, (infinity::EmbeddingDataType)5>, std::__1::allocator<infinity::IVFIndexInMemT@ivf_index_data_in_mem<(infinity::LogicalType)23, (infinity::EmbeddingDataType)5>>, infinity::RowID const&, infinity::IndexIVFOption@index_ivf const&, unsigned long, infinity::SegmentIndexEntry@segment_index_entry*&, 0>(std::__1::allocator<infinity::IVFIndexInMemT@ivf_index_data_in_mem<(infinity::LogicalType)23, (infinity::EmbeddingDataType)5>> const&, infinity::RowID const&, infinity::IndexIVFOption@index_ivf const&, unsigned long&&, infinity::SegmentIndexEntry@segment_index_entry*&) /usr/lib/llvm-19/include/c++/v1/__memory/shared_ptr.h:843:51
    #8 0x6123b20e26dc in std::__1::shared_ptr<infinity::IVFIndexInMemT@ivf_index_data_in_mem<(infinity::LogicalType)23, (infinity::EmbeddingDataType)5>> std::__1::make_shared[abi:ne190105]<infinity::IVFIndexInMemT@ivf_index_data_in_mem<(infinity::LogicalType)23, (infinity::EmbeddingDataType)5>, infinity::RowID const&, infinity::IndexIVFOption@index_ivf const&, unsigned long, infinity::SegmentIndexEntry@segment_index_entry*&, 0>(infinity::RowID const&, infinity::IndexIVFOption@index_ivf const&, unsigned long&&, infinity::SegmentIndexEntry@segment_index_entry*&) /usr/lib/llvm-19/include/c++/v1/__memory/shared_ptr.h:851:10
    #9 0x6123b20e25a7 in std::__1::shared_ptr<infinity::IVFIndexInMemT@ivf_index_data_in_mem<(infinity::LogicalType)23, (infinity::EmbeddingDataType)5>> infinity::MakeShared@stl<infinity::IVFIndexInMemT@ivf_index_data_in_mem<(infinity::LogicalType)23, (infinity::EmbeddingDataType)5>, infinity::RowID const&, infinity::IndexIVFOption@index_ivf const&, unsigned long, infinity::SegmentIndexEntry@segment_index_entry*&>(infinity::RowID const&, infinity::IndexIVFOption@index_ivf const&, unsigned long&&, infinity::SegmentIndexEntry@segment_index_entry*&) /home/infiniflow/Documents/development/infinity/src/common/stl.cppm:545:16
    #10 0x6123b20d54e9 in auto std::__1::shared_ptr<infinity::IVFIndexInMem@ivf_index_data_in_mem> infinity::GetNewIVFIndexInMem@ivf_index_data_in_mem<(infinity::LogicalType)23>(infinity::DataType const*, infinity::RowID, infinity::IndexIVFOption@index_ivf const&, infinity::SegmentIndexEntry@segment_index_entry*)::'lambda'<infinity::EmbeddingDataType $N>()::operator()<(infinity::EmbeddingDataType)5>() const /home/infiniflow/Documents/development/infinity/src/storage/knn_index/knn_ivf/ivf_index_data_in_mem.cpp:328:16
    #11 0x6123b20d3f61 in std::__1::shared_ptr<infinity::IVFIndexInMem@ivf_index_data_in_mem> infinity::GetNewIVFIndexInMem@ivf_index_data_in_mem<(infinity::LogicalType)23>(infinity::DataType const*, infinity::RowID, infinity::IndexIVFOption@index_ivf const&, infinity::SegmentIndexEntry@segment_index_entry*) /home/infiniflow/Documents/development/infinity/src/storage/knn_index/knn_ivf/ivf_index_data_in_mem.cpp:341:39
    #12 0x6123b20d3563 in infinity::IVFIndexInMem@ivf_index_data_in_mem::NewIVFIndexInMem(infinity::ColumnDef const*, infinity::IndexBase@index_base const*, infinity::RowID, infinity::SegmentIndexEntry@segment_index_entry*) /home/infiniflow/Documents/development/infinity/src/storage/knn_index/knn_ivf/ivf_index_data_in_mem.cpp:371:16
    #13 0x6123ae522b37 in infinity::SegmentIndexEntry@segment_index_entry::MemIndexInsert(std::__1::shared_ptr<infinity::BlockEntry@block_entry>, unsigned int, unsigned int, unsigned long, infinity::BufferManager@buffer_manager*, infinity::TxnStore@txn_store*) /home/infiniflow/Documents/development/infinity/src/storage/meta/entry/segment_index_entry.cpp:261:37
    #14 0x6123ae76e50a in infinity::TableEntry@table_entry::MemIndexInsertInner(infinity::TableIndexEntry@table_index_entry*, infinity::Txn@txn*, unsigned int, std::__1::vector<infinity::AppendRange@data_access_state, std::__1::allocator<infinity::AppendRange@data_access_state>>&) /home/infiniflow/Documents/development/infinity/src/storage/meta/entry/table_entry.cpp:765:30
    #15 0x6123ae768151 in infinity::TableEntry@table_entry::MemIndexInsert(infinity::Txn@txn*, std::__1::vector<infinity::AppendRange@data_access_state, std::__1::allocator<infinity::AppendRange@data_access_state>>&) /home/infiniflow/Documents/development/infinity/src/storage/meta/entry/table_entry.cpp:721:21
    #16 0x6123ae7674b7 in infinity::TableEntry@table_entry::AppendData(unsigned long, void*, unsigned long, infinity::BufferManager@buffer_manager*, bool) /home/infiniflow/Documents/development/infinity/src/storage/meta/entry/table_entry.cpp:500:9
    #17 0x6123ae3e3f85 in infinity::Catalog@catalog::Append(infinity::TableEntry@table_entry*, unsigned long, void*, unsigned long, infinity::BufferManager@buffer_manager*, bool) /home/infiniflow/Documents/development/infinity/src/storage/meta/catalog.cpp:414:25
    #18 0x6123ad17f9e5 in infinity::TxnTableStore@txn_store::PrepareCommit(unsigned long, unsigned long, infinity::BufferManager@buffer_manager*) /home/infiniflow/Documents/development/infinity/src/storage/txn/txn_store.cpp:473:5
    #19 0x6123ad187206 in infinity::TxnStore@txn_store::PrepareCommit(unsigned long, unsigned long, infinity::BufferManager@buffer_manager*) /home/infiniflow/Documents/development/infinity/src/storage/txn/txn_store.cpp:740:22
    #20 0x6123ad0f5340 in infinity::Txn@txn::CommitBottom() /home/infiniflow/Documents/development/infinity/src/storage/txn/txn.cpp:655:16
    #21 0x6123ad2cb6b7 in infinity::WalManager@wal_manager::Flush() /home/infiniflow/Documents/development/infinity/src/storage/wal/wal_manager.cpp:377:22
    #22 0x6123ad3010b9 in infinity::WalManager@wal_manager::Start()::$_0::operator()() const /home/infiniflow/Documents/development/infinity/src/storage/wal/wal_manager.cpp:122:37
    #23 0x6123ad301054 in decltype(std::declval<infinity::WalManager@wal_manager::Start()::$_0>()()) std::__1::__invoke[abi:ne190105]<infinity::WalManager@wal_manager::Start()::$_0>(infinity::WalManager@wal_manager::Start()::$_0&&) /usr/lib/llvm-19/include/c++/v1/__type_traits/invoke.h:149:25
    #24 0x6123ad30102c in void std::__1::__thread_execute[abi:ne190105]<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct>>, infinity::WalManager@wal_manager::Start()::$_0>(std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct>>, infinity::WalManager@wal_manager::Start()::$_0>&, std::__1::__tuple_indices<...>) /usr/lib/llvm-19/include/c++/v1/__thread/thread.h:192:3
    #25 0x6123ad300cf5 in void* std::__1::__thread_proxy[abi:ne190105]<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct>>, infinity::WalManager@wal_manager::Start()::$_0>>(void*) /usr/lib/llvm-19/include/c++/v1/__thread/thread.h:201:3
    #26 0x6123acd6dd9c in asan_thread_start(void*) asan_interceptors.cpp.o

Expected behavior

No response

Additional information

No response

@JinHai-CN JinHai-CN added the bug Something isn't working label Jan 16, 2025
@yangzq50 yangzq50 mentioned this issue Jan 20, 2025
1 task
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants