infiniflow / infinity

The AI-native database built for LLM applications, providing incredibly fast hybrid search of dense vector, sparse vector, tensor (multi-vector), and full-text
https://infiniflow.org
Apache License 2.0
2.65k stars 273 forks source link

[Bug]: HNSW memindex insert error #2119

Open JinHai-CN opened 3 weeks ago

JinHai-CN commented 3 weeks ago

Is there an existing issue for the same bug?

Version or Commit ID

main

Other environment information

No response

Actual behavior and How to reproduce it

https://github.com/infiniflow/infinity/actions/runs/11565756741/job/32193275465?pr=2113


==44734==ERROR: AddressSanitizer: FPE on unknown address 0x57bcf3cf9e58 (pc 0x57bcf3cf9e58 bp 0x7c84439fd810 sp 0x7c84439fd600 T18)
AddressSanitizer:DEADLYSIGNAL
AddressSanitizer:DEADLYSIGNAL
#0 0x57bcf3cf9e58 in void infinity::HnswIndexInMem@abstract_hnsw::InsertVecs<infinity::OneColumnIterator@segment_iter<float, false>, infinity::KnnHnsw@hnsw_alg<infinity::PlainL2VecStoreType@vec_store_type<float>, unsigned int>*>(infinity::KnnHnsw@hnsw_alg<infinity::PlainL2VecStoreType@vec_store_type<float>, unsigned int>*&, infinity::OneColumnIterator@segment_iter<float, false>&&, infinity::HnswInsertConfig@hnsw_common const&, unsigned long&) /infinity/src/storage/knn_index/knn_hnsw/abstract_hnsw.cppm:135:83
#1 0x57bcf3c1df4c in _ZZN8infinityW13abstract_hnsw14HnswIndexInMem10InsertVecsEPKNS_W13segment_entry12SegmentEntryEPNS_W14buffer_manager13BufferManagerEmmbRKNS_W11hnsw_common16HnswInsertConfigEENK3$_0clIRPNS_W8hnsw_alg7KnnHnswINS_W14vec_store_type19PlainL2VecStoreTypeIfEEjEEEEDaOT_ /infinity/src/storage/knn_index/knn_hnsw/abstract_hnsw.cpp:197:29
#2 0x57bcf3c1d56c in decltype(std::declval<infinity::HnswIndexInMem@abstract_hnsw::InsertVecs(infinity::SegmentEntry@segment_entry const*, infinity::BufferManager@buffer_manager*, unsigned long, unsigned long, bool, infinity::HnswInsertConfig@hnsw_common const&)::$_0>()(std::declval<infinity::KnnHnsw@hnsw_alg<infinity::PlainL2VecStoreType@vec_store_type<float>, unsigned int>*&>())) std::__1::__invoke[abi:ne180100]<infinity::HnswIndexInMem@abstract_hnsw::InsertVecs(infinity::SegmentEntry@segment_entry const*, infinity::BufferManager@buffer_manager*, unsigned long, unsigned long, bool, infinity::HnswInsertConfig@hnsw_common const&)::$_0, infinity::KnnHnsw@hnsw_alg<infinity::PlainL2VecStoreType@vec_store_type<float>, unsigned int>*&>(infinity::HnswIndexInMem@abstract_hnsw::InsertVecs(infinity::SegmentEntry@segment_entry const*, infinity::BufferManager@buffer_manager*, unsigned long, unsigned long, bool, infinity::HnswInsertConfig@hnsw_common const&)::$_0&&, infinity::KnnHnsw@hnsw_alg<infinity::PlainL2VecStoreType@vec_store_type<float>, unsigned int>*&) /usr/local/include/c++/v1/__type_traits/invoke.h:344:25
#3 0x57bcf3c1d52a in decltype(auto) std::__1::__variant_detail::__visitation::__variant::__value_visitor<infinity::HnswIndexInMem@abstract_hnsw::InsertVecs(infinity::SegmentEntry@segment_entry const*, infinity::BufferManager@buffer_manager*, unsigned long, unsigned long, bool, infinity::HnswInsertConfig@hnsw_common const&)::$_0>::operator()[abi:ne180100]<std::__1::__variant_detail::__alt<2ul, infinity::KnnHnsw@hnsw_alg<infinity::PlainL2VecStoreType@vec_store_type<float>, unsigned int>*>&>(std::__1::__variant_detail::__alt<2ul, infinity::KnnHnsw@hnsw_alg<infinity::PlainL2VecStoreType@vec_store_type<float>, unsigned int>*>&) const /usr/local/include/c++/v1/variant:619:14
#4 0x57bcf3c1d4cc in decltype(std::declval<std::__1::__variant_detail::__visitation::__variant::__value_visitor<infinity::HnswIndexInMem@abstract_hnsw::InsertVecs(infinity::SegmentEntry@segment_entry const*, infinity::BufferManager@buffer_manager*, unsigned long, unsigned long, bool, infinity::HnswInsertConfig@hnsw_common const&)::$_0>>()(std::declval<std::__1::__variant_detail::__alt<2ul, infinity::KnnHnsw@hnsw_alg<infinity::PlainL2VecStoreType@vec_store_type<float>, unsigned int>*>&>())) std::__1::__invoke[abi:ne180100]<std::__1::__variant_detail::__visitation::__variant::__value_visitor<infinity::HnswIndexInMem@abstract_hnsw::InsertVecs(infinity::SegmentEntry@segment_entry const*, infinity::BufferManager@buffer_manager*, unsigned long, unsigned long, bool, infinity::HnswInsertConfig@hnsw_common const&)::$_0>, std::__1::__variant_detail::__alt<2ul, infinity::KnnHnsw@hnsw_alg<infinity::PlainL2VecStoreType@vec_store_type<float>, unsigned int>*>&>(std::__1::__variant_detail::__visitation::__variant::__value_visitor<infinity::HnswIndexInMem@abstract_hnsw::InsertVecs(infinity::SegmentEntry@segment_entry const*, infinity::BufferManager@buffer_manager*, unsigned long, unsigned long, bool, infinity::HnswInsertConfig@hnsw_common const&)::$_0>&&, std::__1::__variant_detail::__alt<2ul, infinity::KnnHnsw@hnsw_alg<infinity::PlainL2VecStoreType@vec_store_type<float>, unsigned int>*>&) /usr/local/include/c++/v1/__type_traits/invoke.h:344:25
#5 0x57bcf3c1a5cc in decltype(auto) std::__1::__variant_detail::__visitation::__base::__dispatcher<2ul>::__dispatch[abi:ne180100]<std::__1::__variant_detail::__visitation::__variant::__value_visitor<infinity::HnswIndexInMem@abstract_hnsw::InsertVecs(infinity::SegmentEntry@segment_entry const*, infinity::BufferManager@buffer_manager*, unsigned long, unsigned long, bool, infinity::HnswInsertConfig@hnsw_common const&)::$_0>&&, std::__1::__variant_detail::__base<(std::__1::__variant_detail::_Trait)0, infinity::KnnHnsw@hnsw_alg<infinity::PlainCosVecStoreType@vec_store_type<float>, unsigned int>*, infinity::KnnHnsw@hnsw_alg<infinity::PlainIPVecStoreType@vec_store_type<float>, unsigned int>*, infinity::KnnHnsw@hnsw_alg<infinity::PlainL2VecStoreType@vec_store_type<float>, unsigned int>*, infinity::KnnHnsw@hnsw_alg<infinity::PlainCosVecStoreType@vec_store_type<unsigned char>, unsigned int>*, infinity::KnnHnsw@hnsw_alg<infinity::PlainIPVecStoreType@vec_store_type<unsigned char>, unsigned int>*, infinity::KnnHnsw@hnsw_alg<infinity::PlainL2VecStoreType@vec_store_type<unsigned char>, unsigned int>*, infinity::KnnHnsw@hnsw_alg<infinity::PlainCosVecStoreType@vec_store_type<signed char>, unsigned int>*, infinity::KnnHnsw@hnsw_alg<infinity::PlainIPVecStoreType@vec_store_type<signed char>, unsigned int>*, infinity::KnnHnsw@hnsw_alg<infinity::PlainL2VecStoreType@vec_store_type<signed char>, unsigned int>*, infinity::KnnHnsw@hnsw_alg<infinity::LVQCosVecStoreType@vec_store_type<float, signed char>, unsigned int>*, infinity::KnnHnsw@hnsw_alg<infinity::LVQIPVecStoreType@vec_store_type<float, signed char>, unsigned int>*, infinity::KnnHnsw@hnsw_alg<infinity::LVQL2VecStoreType@vec_store_type<float, signed char>, unsigned int>*, std::nullptr_t>&>(std::__1::__variant_detail::__visitation::__variant::__value_visitor<infinity::HnswIndexInMem@abstract_hnsw::InsertVecs(infinity::SegmentEntry@segment_entry const*, infinity::BufferManager@buffer_manager*, unsigned long, unsigned long, bool, infinity::HnswInsertConfig@hnsw_common const&)::$_0>&&, std::__1::__variant_detail::__base<(std::__1::__variant_detail::_Trait)0, infinity::KnnHnsw@hnsw_alg<infinity::PlainCosVecStoreType@vec_store_type<float>, unsigned int>*, infinity::KnnHnsw@hnsw_alg<infinity::PlainIPVecStoreType@vec_store_type<float>, unsigned int>*, infinity::KnnHnsw@hnsw_alg<infinity::PlainL2VecStoreType@vec_store_type<float>, unsigned int>*, infinity::KnnHnsw@hnsw_alg<infinity::PlainCosVecStoreType@vec_store_type<unsigned char>, unsigned int>*, infinity::KnnHnsw@hnsw_alg<infinity::PlainIPVecStoreType@vec_store_type<unsigned char>, unsigned int>*, infinity::KnnHnsw@hnsw_alg<infinity::PlainL2VecStoreType@vec_store_type<unsigned char>, unsigned int>*, infinity::KnnHnsw@hnsw_alg<infinity::PlainCosVecStoreType@vec_store_type<signed char>, unsigned int>*, infinity::KnnHnsw@hnsw_alg<infinity::PlainIPVecStoreType@vec_store_type<signed char>, unsigned int>*, infinity::KnnHnsw@hnsw_alg<infinity::PlainL2VecStoreType@vec_store_type<signed char>, unsigned int>*, infinity::KnnHnsw@hnsw_alg<infinity::LVQCosVecStoreType@vec_store_type<float, signed char>, unsigned int>*, infinity::KnnHnsw@hnsw_alg<infinity::LVQIPVecStoreType@vec_store_type<float, signed char>, unsigned int>*, infinity::KnnHnsw@hnsw_alg<infinity::LVQL2VecStoreType@vec_store_type<float, signed char>, unsigned int>*, std::nullptr_t>&) /usr/local/include/c++/v1/variant:533:14
#6 0x57bcf3c1a474 in decltype(auto) std::__1::__variant_detail::__visitation::__base::__visit_alt[abi:ne180100]<std::__1::__variant_detail::__visitation::__variant::__value_visitor<infinity::HnswIndexInMem@abstract_hnsw::InsertVecs(infinity::SegmentEntry@segment_entry const*, infinity::BufferManager@buffer_manager*, unsigned long, unsigned long, bool, infinity::HnswInsertConfig@hnsw_common const&)::$_0>, std::__1::__variant_detail::__impl<infinity::KnnHnsw@hnsw_alg<infinity::PlainCosVecStoreType@vec_store_type<float>, unsigned int>*, infinity::KnnHnsw@hnsw_alg<infinity::PlainIPVecStoreType@vec_store_type<float>, unsigned int>*, infinity::KnnHnsw@hnsw_alg<infinity::PlainL2VecStoreType@vec_store_type<float>, unsigned int>*, infinity::KnnHnsw@hnsw_alg<infinity::PlainCosVecStoreType@vec_store_type<unsigned char>, unsigned int>*, infinity::KnnHnsw@hnsw_alg<infinity::PlainIPVecStoreType@vec_store_type<unsigned char>, unsigned int>*, infinity::KnnHnsw@hnsw_alg<infinity::PlainL2VecStoreType@vec_store_type<unsigned char>, unsigned int>*, infinity::KnnHnsw@hnsw_alg<infinity::PlainCosVecStoreType@vec_store_type<signed char>, unsigned int>*, infinity::KnnHnsw@hnsw_alg<infinity::PlainIPVecStoreType@vec_store_type<signed char>, unsigned int>*, infinity::KnnHnsw@hnsw_alg<infinity::PlainL2VecStoreType@vec_store_type<signed char>, unsigned int>*, infinity::KnnHnsw@hnsw_alg<infinity::LVQCosVecStoreType@vec_store_type<float, signed char>, unsigned int>*, infinity::KnnHnsw@hnsw_alg<infinity::LVQIPVecStoreType@vec_store_type<float, signed char>, unsigned int>*, infinity::KnnHnsw@hnsw_alg<infinity::LVQL2VecStoreType@vec_store_type<float, signed char>, unsigned int>*, std::nullptr_t>&>(std::__1::__variant_detail::__visitation::__variant::__value_visitor<infinity::HnswIndexInMem@abstract_hnsw::InsertVecs(infinity::SegmentEntry@segment_entry const*, infinity::BufferManager@buffer_manager*, unsigned long, unsigned long, bool, infinity::HnswInsertConfig@hnsw_common const&)::$_0>&&, std::__1::__variant_detail::__impl<infinity::KnnHnsw@hnsw_alg<infinity::PlainCosVecStoreType@vec_store_type<float>, unsigned int>*, infinity::KnnHnsw@hnsw_alg<infinity::PlainIPVecStoreType@vec_store_type<float>, unsigned int>*, infinity::KnnHnsw@hnsw_alg<infinity::PlainL2VecStoreType@vec_store_type<float>, unsigned int>*, infinity::KnnHnsw@hnsw_alg<infinity::PlainCosVecStoreType@vec_store_type<unsigned char>, unsigned int>*, infinity::KnnHnsw@hnsw_alg<infinity::PlainIPVecStoreType@vec_store_type<unsigned char>, unsigned int>*, infinity::KnnHnsw@hnsw_alg<infinity::PlainL2VecStoreType@vec_store_type<unsigned char>, unsigned int>*, infinity::KnnHnsw@hnsw_alg<infinity::PlainCosVecStoreType@vec_store_type<signed char>, unsigned int>*, infinity::KnnHnsw@hnsw_alg<infinity::PlainIPVecStoreType@vec_store_type<signed char>, unsigned int>*, infinity::KnnHnsw@hnsw_alg<infinity::PlainL2VecStoreType@vec_store_type<signed char>, unsigned int>*, infinity::KnnHnsw@hnsw_alg<infinity::LVQCosVecStoreType@vec_store_type<float, signed char>, unsigned int>*, infinity::KnnHnsw@hnsw_alg<infinity::LVQIPVecStoreType@vec_store_type<float, signed char>, unsigned int>*, infinity::KnnHnsw@hnsw_alg<infinity::LVQL2VecStoreType@vec_store_type<float, signed char>, unsigned int>*, std::nullptr_t>&) /usr/local/include/c++/v1/variant:501:12
#7 0x57bcf3c1a2cc in decltype(auto) std::__1::__variant_detail::__visitation::__variant::__visit_alt[abi:ne180100]<std::__1::__variant_detail::__visitation::__variant::__value_visitor<infinity::HnswIndexInMem@abstract_hnsw::InsertVecs(infinity::SegmentEntry@segment_entry const*, infinity::BufferManager@buffer_manager*, unsigned long, unsigned long, bool, infinity::HnswInsertConfig@hnsw_common const&)::$_0>, std::__1::variant<infinity::KnnHnsw@hnsw_alg<infinity::PlainCosVecStoreType@vec_store_type<float>, unsigned int>*, infinity::KnnHnsw@hnsw_alg<infinity::PlainIPVecStoreType@vec_store_type<float>, unsigned int>*, infinity::KnnHnsw@hnsw_alg<infinity::PlainL2VecStoreType@vec_store_type<float>, unsigned int>*, infinity::KnnHnsw@hnsw_alg<infinity::PlainCosVecStoreType@vec_store_type<unsigned char>, unsigned int>*, infinity::KnnHnsw@hnsw_alg<infinity::PlainIPVecStoreType@vec_store_type<unsigned char>, unsigned int>*, infinity::KnnHnsw@hnsw_alg<infinity::PlainL2VecStoreType@vec_store_type<unsigned char>, unsigned int>*, infinity::KnnHnsw@hnsw_alg<infinity::PlainCosVecStoreType@vec_store_type<signed char>, unsigned int>*, infinity::KnnHnsw@hnsw_alg<infinity::PlainIPVecStoreType@vec_store_type<signed char>, unsigned int>*, infinity::KnnHnsw@hnsw_alg<infinity::PlainL2VecStoreType@vec_store_type<signed char>, unsigned int>*, infinity::KnnHnsw@hnsw_alg<infinity::LVQCosVecStoreType@vec_store_type<float, signed char>, unsigned int>*, infinity::KnnHnsw@hnsw_alg<infinity::LVQIPVecStoreType@vec_store_type<float, signed char>, unsigned int>*, infinity::KnnHnsw@hnsw_alg<infinity::LVQL2VecStoreType@vec_store_type<float, signed char>, unsigned int>*, std::nullptr_t>&>(std::__1::__variant_detail::__visitation::__variant::__value_visitor<infinity::HnswIndexInMem@abstract_hnsw::InsertVecs(infinity::SegmentEntry@segment_entry const*, infinity::BufferManager@buffer_manager*, unsigned long, unsigned long, bool, infinity::HnswInsertConfig@hnsw_common const&)::$_0>&&, std::__1::variant<infinity::KnnHnsw@hnsw_alg<infinity::PlainCosVecStoreType@vec_store_type<float>, unsigned int>*, infinity::KnnHnsw@hnsw_alg<infinity::PlainIPVecStoreType@vec_store_type<float>, unsigned int>*, infinity::KnnHnsw@hnsw_alg<infinity::PlainL2VecStoreType@vec_store_type<float>, unsigned int>*, infinity::KnnHnsw@hnsw_alg<infinity::PlainCosVecStoreType@vec_store_type<unsigned char>, unsigned int>*, infinity::KnnHnsw@hnsw_alg<infinity::PlainIPVecStoreType@vec_store_type<unsigned char>, unsigned int>*, infinity::KnnHnsw@hnsw_alg<infinity::PlainL2VecStoreType@vec_store_type<unsigned char>, unsigned int>*, infinity::KnnHnsw@hnsw_alg<infinity::PlainCosVecStoreType@vec_store_type<signed char>, unsigned int>*, infinity::KnnHnsw@hnsw_alg<infinity::PlainIPVecStoreType@vec_store_type<signed char>, unsigned int>*, infinity::KnnHnsw@hnsw_alg<infinity::PlainL2VecStoreType@vec_store_type<signed char>, unsigned int>*, infinity::KnnHnsw@hnsw_alg<infinity::LVQCosVecStoreType@vec_store_type<float, signed char>, unsigned int>*, infinity::KnnHnsw@hnsw_alg<infinity::LVQIPVecStoreType@vec_store_type<float, signed char>, unsigned int>*, infinity::KnnHnsw@hnsw_alg<infinity::LVQL2VecStoreType@vec_store_type<float, signed char>, unsigned int>*, std::nullptr_t>&) /usr/local/include/c++/v1/variant:586:12
#8 0x57bcf3c1a239 in decltype(auto) std::__1::__variant_detail::__visitation::__variant::__visit_value[abi:ne180100]<infinity::HnswIndexInMem@abstract_hnsw::InsertVecs(infinity::SegmentEntry@segment_entry const*, infinity::BufferManager@buffer_manager*, unsigned long, unsigned long, bool, infinity::HnswInsertConfig@hnsw_common const&)::$_0, std::__1::variant<infinity::KnnHnsw@hnsw_alg<infinity::PlainCosVecStoreType@vec_store_type<float>, unsigned int>*, infinity::KnnHnsw@hnsw_alg<infinity::PlainIPVecStoreType@vec_store_type<float>, unsigned int>*, infinity::KnnHnsw@hnsw_alg<infinity::PlainL2VecStoreType@vec_store_type<float>, unsigned int>*, infinity::KnnHnsw@hnsw_alg<infinity::PlainCosVecStoreType@vec_store_type<unsigned char>, unsigned int>*, infinity::KnnHnsw@hnsw_alg<infinity::PlainIPVecStoreType@vec_store_type<unsigned char>, unsigned int>*, infinity::KnnHnsw@hnsw_alg<infinity::PlainL2VecStoreType@vec_store_type<unsigned char>, unsigned int>*, infinity::KnnHnsw@hnsw_alg<infinity::PlainCosVecStoreType@vec_store_type<signed char>, unsigned int>*, infinity::KnnHnsw@hnsw_alg<infinity::PlainIPVecStoreType@vec_store_type<signed char>, unsigned int>*, infinity::KnnHnsw@hnsw_alg<infinity::PlainL2VecStoreType@vec_store_type<signed char>, unsigned int>*, infinity::KnnHnsw@hnsw_alg<infinity::LVQCosVecStoreType@vec_store_type<float, signed char>, unsigned int>*, infinity::KnnHnsw@hnsw_alg<infinity::LVQIPVecStoreType@vec_store_type<float, signed char>, unsigned int>*, infinity::KnnHnsw@hnsw_alg<infinity::LVQL2VecStoreType@vec_store_type<float, signed char>, unsigned int>*, std::nullptr_t>&>(infinity::HnswIndexInMem@abstract_hnsw::InsertVecs(infinity::SegmentEntry@segment_entry const*, infinity::BufferManager@buffer_manager*, unsigned long, unsigned long, bool, infinity::HnswInsertConfig@hnsw_common const&)::$_0&&, std::__1::variant<infinity::KnnHnsw@hnsw_alg<infinity::PlainCosVecStoreType@vec_store_type<float>, unsigned int>*, infinity::KnnHnsw@hnsw_alg<infinity::PlainIPVecStoreType@vec_store_type<float>, unsigned int>*, infinity::KnnHnsw@hnsw_alg<infinity::PlainL2VecStoreType@vec_store_type<float>, unsigned int>*, infinity::KnnHnsw@hnsw_alg<infinity::PlainCosVecStoreType@vec_store_type<unsigned char>, unsigned int>*, infinity::KnnHnsw@hnsw_alg<infinity::PlainIPVecStoreType@vec_store_type<unsigned char>, unsigned int>*, infinity::KnnHnsw@hnsw_alg<infinity::PlainL2VecStoreType@vec_store_type<unsigned char>, unsigned int>*, infinity::KnnHnsw@hnsw_alg<infinity::PlainCosVecStoreType@vec_store_type<signed char>, unsigned int>*, infinity::KnnHnsw@hnsw_alg<infinity::PlainIPVecStoreType@vec_store_type<signed char>, unsigned int>*, infinity::KnnHnsw@hnsw_alg<infinity::PlainL2VecStoreType@vec_store_type<signed char>, unsigned int>*, infinity::KnnHnsw@hnsw_alg<infinity::LVQCosVecStoreType@vec_store_type<float, signed char>, unsigned int>*, infinity::KnnHnsw@hnsw_alg<infinity::LVQIPVecStoreType@vec_store_type<float, signed char>, unsigned int>*, infinity::KnnHnsw@hnsw_alg<infinity::LVQL2VecStoreType@vec_store_type<float, signed char>, unsigned int>*, std::nullptr_t>&) /usr/local/include/c++/v1/variant:598:12
#9 0x57bcf3c04825 in decltype(auto) std::__1::visit[abi:ne180100]<infinity::HnswIndexInMem@abstract_hnsw::InsertVecs(infinity::SegmentEntry@segment_entry const*, infinity::BufferManager@buffer_manager*, unsigned long, unsigned long, bool, infinity::HnswInsertConfig@hnsw_common const&)::$_0, std::__1::variant<infinity::KnnHnsw@hnsw_alg<infinity::PlainCosVecStoreType@vec_store_type<float>, unsigned int>*, infinity::KnnHnsw@hnsw_alg<infinity::PlainIPVecStoreType@vec_store_type<float>, unsigned int>*, infinity::KnnHnsw@hnsw_alg<infinity::PlainL2VecStoreType@vec_store_type<float>, unsigned int>*, infinity::KnnHnsw@hnsw_alg<infinity::PlainCosVecStoreType@vec_store_type<unsigned char>, unsigned int>*, infinity::KnnHnsw@hnsw_alg<infinity::PlainIPVecStoreType@vec_store_type<unsigned char>, unsigned int>*, infinity::KnnHnsw@hnsw_alg<infinity::PlainL2VecStoreType@vec_store_type<unsigned char>, unsigned int>*, infinity::KnnHnsw@hnsw_alg<infinity::PlainCosVecStoreType@vec_store_type<signed char>, unsigned int>*, infinity::KnnHnsw@hnsw_alg<infinity::PlainIPVecStoreType@vec_store_type<signed char>, unsigned int>*, infinity::KnnHnsw@hnsw_alg<infinity::PlainL2VecStoreType@vec_store_type<signed char>, unsigned int>*, infinity::KnnHnsw@hnsw_alg<infinity::LVQCosVecStoreType@vec_store_type<float, signed char>, unsigned int>*, infinity::KnnHnsw@hnsw_alg<infinity::LVQIPVecStoreType@vec_store_type<float, signed char>, unsigned int>*, infinity::KnnHnsw@hnsw_alg<infinity::LVQL2VecStoreType@vec_store_type<float, signed char>, unsigned int>*, std::nullptr_t>&, void>(infinity::HnswIndexInMem@abstract_hnsw::InsertVecs(infinity::SegmentEntry@segment_entry const*, infinity::BufferManager@buffer_manager*, unsigned long, unsigned long, bool, infinity::HnswInsertConfig@hnsw_common const&)::$_0&&, std::__1::variant<infinity::KnnHnsw@hnsw_alg<infinity::PlainCosVecStoreType@vec_store_type<float>, unsigned int>*, infinity::KnnHnsw@hnsw_alg<infinity::PlainIPVecStoreType@vec_store_type<float>, unsigned int>*, infinity::KnnHnsw@hnsw_alg<infinity::PlainL2VecStoreType@vec_store_type<float>, unsigned int>*, infinity::KnnHnsw@hnsw_alg<infinity::PlainCosVecStoreType@vec_store_type<unsigned char>, unsigned int>*, infinity::KnnHnsw@hnsw_alg<infinity::PlainIPVecStoreType@vec_store_type<unsigned char>, unsigned int>*, infinity::KnnHnsw@hnsw_alg<infinity::PlainL2VecStoreType@vec_store_type<unsigned char>, unsigned int>*, infinity::KnnHnsw@hnsw_alg<infinity::PlainCosVecStoreType@vec_store_type<signed char>, unsigned int>*, infinity::KnnHnsw@hnsw_alg<infinity::PlainIPVecStoreType@vec_store_type<signed char>, unsigned int>*, infinity::KnnHnsw@hnsw_alg<infinity::PlainL2VecStoreType@vec_store_type<signed char>, unsigned int>*, infinity::KnnHnsw@hnsw_alg<infinity::LVQCosVecStoreType@vec_store_type<float, signed char>, unsigned int>*, infinity::KnnHnsw@hnsw_alg<infinity::LVQIPVecStoreType@vec_store_type<float, signed char>, unsigned int>*, infinity::KnnHnsw@hnsw_alg<infinity::LVQL2VecStoreType@vec_store_type<float, signed char>, unsigned int>*, std::nullptr_t>&) /usr/local/include/c++/v1/variant:1561:10
#10 0x57bcf3c0476e in infinity::HnswIndexInMem@abstract_hnsw::InsertVecs(infinity::SegmentEntry@segment_entry const*, infinity::BufferManager@buffer_manager*, unsigned long, unsigned long, bool, infinity::HnswInsertConfig@hnsw_common const&) /infinity/src/storage/knn_index/knn_hnsw/abstract_hnsw.cpp:181:5
#11 0x57bcf0ebd3b6 in infinity::SegmentIndexEntry@segment_index_entry::PopulateEntirely(infinity::SegmentEntry@segment_entry const*, infinity::Txn@txn*, infinity::PopulateEntireConfig@segment_index_entry const&) /infinity/src/storage/meta/entry/segment_index_entry.cpp:484:32
#12 0x57bcf0ebf8a5 in infinity::SegmentIndexEntry@segment_index_entry::CreateIndexPrepare(infinity::SegmentEntry@segment_entry const*, infinity::Txn@txn*, bool, bool) /infinity/src/storage/meta/entry/segment_index_entry.cpp:570:13
#13 0x57bcf103fd9f in infinity::TableIndexEntry@table_index_entry::CreateIndexPrepare(infinity::BaseTableRef@base_table_ref*, infinity::Txn@txn*, bool, bool, bool) /infinity/src/storage/meta/entry/table_index_entry.cpp:346:34
#14 0x57bcefb4eb55 in infinity::Txn@txn::CreateIndexPrepare(infinity::TableIndexEntry@table_index_entry*, infinity::BaseTableRef@base_table_ref*, bool, bool) /infinity/src/storage/txn/txn.cpp:345:63
#15 0x57bcf42781b7 in infinity::PhysicalCompactIndexPrepare@physical_compact_index_prepare::Execute(infinity::QueryContext@query_context*, infinity::OperatorState@operator_state*) /infinity/src/executor/operator/physical_compact_index_prepare.cpp:56:49
#16 0x57bcf0795fcc in infinity::FragmentTask@fragment_task::OnExecute() /infinity/src/scheduler/fragment_task.cpp:84:58
#17 0x57bcefacf835 in infinity::TaskScheduler@task_scheduler::WorkerLoop(infinity::BlockingQueue@blocking_queue<infinity::FragmentTask@fragment_task*>*, long) /infinity/src/scheduler/task_scheduler.cpp:244:28
#18 0x57bcefaef9ed in decltype(*std::declval<infinity::TaskScheduler@task_scheduler*>().*std::declval<void (infinity::TaskScheduler@task_scheduler::*)(infinity::BlockingQueue@blocking_queue<infinity::FragmentTask@fragment_task*>*, long)>()(std::declval<infinity::BlockingQueue@blocking_queue<infinity::FragmentTask@fragment_task*>*>(), std::declval<unsigned long>())) std::__1::__invoke[abi:ne180100]<void (infinity::TaskScheduler@task_scheduler::*)(infinity::BlockingQueue@blocking_queue<infinity::FragmentTask@fragment_task*>*, long), infinity::TaskScheduler@task_scheduler*, infinity::BlockingQueue@blocking_queue<infinity::FragmentTask@fragment_task*>*, unsigned long, void>(void (infinity::TaskScheduler@task_scheduler::*&&)(infinity::BlockingQueue@blocking_queue<infinity::FragmentTask@fragment_task*>*, long), infinity::TaskScheduler@task_scheduler*&&, infinity::BlockingQueue@blocking_queue<infinity::FragmentTask@fragment_task*>*&&, unsigned long&&) /usr/local/include/c++/v1/__type_traits/invoke.h:312:25
#19 0x57bcefaef89f in void std::__1::__thread_execute[abi:ne180100]<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct>>, void (infinity::TaskScheduler@task_scheduler::*)(infinity::BlockingQueue@blocking_queue<infinity::FragmentTask@fragment_task*>*, long), infinity::TaskScheduler@task_scheduler*, infinity::BlockingQueue@blocking_queue<infinity::FragmentTask@fragment_task*>*, unsigned long, 2ul, 3ul, 4ul>(std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct>>, void (infinity::TaskScheduler@task_scheduler::*)(infinity::BlockingQueue@blocking_queue<infinity::FragmentTask@fragment_task*>*, long), infinity::TaskScheduler@task_scheduler*, infinity::BlockingQueue@blocking_queue<infinity::FragmentTask@fragment_task*>*, unsigned long>&, std::__1::__tuple_indices<2ul, 3ul, 4ul>) /usr/local/include/c++/v1/__thread/thread.h:193:3
#20 0x57bcefaef315 in void* std::__1::__thread_proxy[abi:ne180100]<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct>>, void (infinity::TaskScheduler@task_scheduler::*)(infinity::BlockingQueue@blocking_queue<infinity::FragmentTask@fragment_task*>*, long), infinity::TaskScheduler@task_scheduler*, infinity::BlockingQueue@blocking_queue<infinity::FragmentTask@fragment_task*>*, unsigned long>>(void*) /usr/local/include/c++/v1/__thread/thread.h:202:3
#21 0x57bcef769098 in asan_thread_start(void*) /root/llvm-project-18.1.8.src/compiler-rt/lib/asan/asan_interceptors.cpp:239:28
#22 0x7c845d884ea4 in start_thread pthread_create.c
#23 0x7c845ce89b0c in clone (/lib64/libc.so.6+0xfeb0c) (BuildId: 1a8fb61bb4614a483833d5334202ab50edda2a25)

AddressSanitizer can not provide additional info.
SUMMARY: AddressSanitizer: FPE /infinity/src/storage/knn_index/knn_hnsw/abstract_hnsw.cppm:135:83 in void infinity::HnswIndexInMem@abstract_hnsw::InsertVecs<infinity::OneColumnIterator@segment_iter<float, false>, infinity::KnnHnsw@hnsw_alg<infinity::PlainL2VecStoreType@vec_store_type<float>, unsigned int>*>(infinity::KnnHnsw@hnsw_alg<infinity::PlainL2VecStoreType@vec_store_type<float>, unsigned int>*&, infinity::OneColumnIterator@segment_iter<float, false>&&, infinity::HnswInsertConfig@hnsw_common const&, unsigned long&)
Thread T18 created by T0 here:
#0 0x57bcef751171 in pthread_create /root/llvm-project-18.1.8.src/compiler-rt/lib/asan/asan_interceptors.cpp:250:3
#1 0x57bcef909948 in std::__1::__libcpp_thread_create[abi:ne180100](unsigned long*, void* (*)(void*), void*) /usr/local/include/c++/v1/__threading_support:317:10
#2 0x57bcefaeed11 in std::__1::thread::thread<void (infinity::TaskScheduler@task_scheduler::*)(infinity::BlockingQueue@blocking_queue<infinity::FragmentTask@fragment_task*>*, long), infinity::TaskScheduler@task_scheduler*, infinity::BlockingQueue@blocking_queue<infinity::FragmentTask@fragment_task*>*, unsigned long&, void>(void (infinity::TaskScheduler@task_scheduler::*&&)(infinity::BlockingQueue@blocking_queue<infinity::FragmentTask@fragment_task*>*, long), infinity::TaskScheduler@task_scheduler*&&, infinity::BlockingQueue@blocking_queue<infinity::FragmentTask@fragment_task*>*&&, unsigned long&) /usr/local/include/c++/v1/__thread/thread.h:212:14
#3 0x57bcefaeeb2f in std::__1::__unique_if<std::__1::thread>::__unique_single std::__1::make_unique[abi:ne180100]<std::__1::thread, void (infinity::TaskScheduler@task_scheduler::*)(infinity::BlockingQueue@blocking_queue<infinity::FragmentTask@fragment_task*>*, long), infinity::TaskScheduler@task_scheduler*, infinity::BlockingQueue@blocking_queue<infinity::FragmentTask@fragment_task*>*, unsigned long&>(void (infinity::TaskScheduler@task_scheduler::*&&)(infinity::BlockingQueue@blocking_queue<infinity::FragmentTask@fragment_task*>*, long), infinity::TaskScheduler@task_scheduler*&&, infinity::BlockingQueue@blocking_queue<infinity::FragmentTask@fragment_task*>*&&, unsigned long&) /usr/local/include/c++/v1/__memory/unique_ptr.h:597:30
#4 0x57bcefad5617 in std::__1::unique_ptr<std::__1::thread, std::__1::default_delete<std::__1::thread>> infinity::MakeUnique@stl<std::__1::thread, void (infinity::TaskScheduler@task_scheduler::*)(infinity::BlockingQueue@blocking_queue<infinity::FragmentTask@fragment_task*>*, long), infinity::TaskScheduler@task_scheduler*, infinity::BlockingQueue@blocking_queue<infinity::FragmentTask@fragment_task*>*, unsigned long&>(void (infinity::TaskScheduler@task_scheduler::*&&)(infinity::BlockingQueue@blocking_queue<infinity::FragmentTask@fragment_task*>*, long), infinity::TaskScheduler@task_scheduler*&&, infinity::BlockingQueue@blocking_queue<infinity::FragmentTask@fragment_task*>*&&, unsigned long&) /infinity/src/common/stl.cppm:549:16
#5 0x57bcefacedd0 in infinity::TaskScheduler@task_scheduler::Init(infinity::Config@config*) /infinity/src/scheduler/task_scheduler.cpp:69:43
#6 0x57bceface700 in infinity::TaskScheduler@task_scheduler::TaskScheduler(infinity::Config@config*) /infinity/src/scheduler/task_scheduler.cpp:46:52
#7 0x57bcefa3bbaa in std::__1::__unique_if<infinity::TaskScheduler@task_scheduler>::__unique_single std::__1::make_unique[abi:ne180100]<infinity::TaskScheduler@task_scheduler, infinity::Config@config*>(infinity::Config@config*&&) /usr/local/include/c++/v1/__memory/unique_ptr.h:597:30
#8 0x57bcefa3999f in std::__1::unique_ptr<infinity::TaskScheduler@task_scheduler, std::__1::default_delete<infinity::TaskScheduler@task_scheduler>> infinity::MakeUnique@stl<infinity::TaskScheduler@task_scheduler, infinity::Config@config*>(infinity::Config@config*&&) /infinity/src/common/stl.cppm:549:16
#9 0x57bcefa36600 in infinity::InfinityContext@infinity_context::ChangeRole(infinity::NodeRole, bool, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, short) /infinity/src/main/infinity_context.cpp:178:31
#10 0x57bcefa341a9 in infinity::InfinityContext@infinity_context::Init(std::__1::shared_ptr<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>> const&, bool, infinity::DefaultConfig@config*) /infinity/src/main/infinity_context.cpp:81:39
#11 0x57bcef7abc68 in main /infinity/src/bin/infinity_main.cpp:178:33
#12 0x7c845cdad554 in __libc_start_main (/lib64/libc.so.6+0x22554) (BuildId: 1a8fb61bb4614a483833d5334202ab50edda2a25)

Expected behavior

No response

Additional information

No response

small-turtle-1 commented 1 week ago

Divided by 0. not solved