tensorchord / pgvecto.rs

Scalable, Low-latency and Hybrid-enabled Vector Search in Postgres. Revolutionize Vector Search, not Database.
https://docs.pgvecto.rs/getting-started/overview.html
Apache License 2.0
1.69k stars 66 forks source link

bug: `check` is called outside rayon #498

Closed kemingy closed 2 months ago

kemingy commented 3 months ago

The stand-alone-test panicked while running the following command:

main make-hnsw --data-dir ./pgvectors/ --dims 128 -o ./pgvectors/index -m 12 -e 300
Error messages ``` thread 'main' panicked at crates/rayon/src/lib.rs:124:9: `check` is called outside rayon stack backtrace: 0: 0x5566aa372b02 - std::backtrace_rs::backtrace::libunwind::trace::hd6ee197414bf99ea at /rustc/791adf759cc065316f054961875052d5bc03e16c/library/std/src/../../backtrace/src/backtrace/libunwind.rs:105:5 1: 0x5566aa372b02 - std::backtrace_rs::backtrace::trace_unsynchronized::h9fd55c2ad0dd7a49 at /rustc/791adf759cc065316f054961875052d5bc03e16c/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5 2: 0x5566aa372b02 - std::sys_common::backtrace::_print_fmt::hbfd47ed60586204a at /rustc/791adf759cc065316f054961875052d5bc03e16c/library/std/src/sys_common/backtrace.rs:68:5 3: 0x5566aa372b02 - ::fmt::hc54e3c03d028fdab at /rustc/791adf759cc065316f054961875052d5bc03e16c/library/std/src/sys_common/backtrace.rs:44:22 4: 0x5566aa304f6b - core::fmt::rt::Argument::fmt::h63876f32ff1a0b39 at /rustc/791adf759cc065316f054961875052d5bc03e16c/library/core/src/fmt/rt.rs:165:63 5: 0x5566aa304f6b - core::fmt::write::h30641d08eff9646d at /rustc/791adf759cc065316f054961875052d5bc03e16c/library/core/src/fmt/mod.rs:1169:21 6: 0x5566aa349002 - std::io::Write::write_fmt::ha08930cd6b63daf8 at /rustc/791adf759cc065316f054961875052d5bc03e16c/library/std/src/io/mod.rs:1835:15 7: 0x5566aa377fa9 - std::sys_common::backtrace::_print::h19ad376a55928d7d at /rustc/791adf759cc065316f054961875052d5bc03e16c/library/std/src/sys_common/backtrace.rs:47:5 8: 0x5566aa377fa9 - std::sys_common::backtrace::print::ha81cc7b81fad1382 at /rustc/791adf759cc065316f054961875052d5bc03e16c/library/std/src/sys_common/backtrace.rs:34:9 9: 0x5566aa37779e - std::panicking::default_hook::{{closure}}::hf2a4bac5991bc13d at /rustc/791adf759cc065316f054961875052d5bc03e16c/library/std/src/panicking.rs:271:22 10: 0x5566aa378aed - std::panicking::default_hook::h2f6875ce27856b17 at /rustc/791adf759cc065316f054961875052d5bc03e16c/library/std/src/panicking.rs:298:9 11: 0x5566aa378aed - std::panicking::rust_panic_with_hook::h00f5098df7893592 at /rustc/791adf759cc065316f054961875052d5bc03e16c/library/std/src/panicking.rs:795:13 12: 0x5566aa37834a - std::panicking::begin_panic_handler::{{closure}}::hcf7a40b8788aaa6a at /rustc/791adf759cc065316f054961875052d5bc03e16c/library/std/src/panicking.rs:656:13 13: 0x5566aa3782d9 - std::sys_common::backtrace::__rust_end_short_backtrace::h40fad163f3ed5f54 at /rustc/791adf759cc065316f054961875052d5bc03e16c/library/std/src/sys_common/backtrace.rs:171:18 14: 0x5566aa3782c6 - rust_begin_unwind at /rustc/791adf759cc065316f054961875052d5bc03e16c/library/std/src/panicking.rs:652:5 15: 0x5566aa303ed2 - core::panicking::panic_fmt::hdcca81ebc39c328c at /rustc/791adf759cc065316f054961875052d5bc03e16c/library/core/src/panicking.rs:72:14 16: 0x5566aa32bb69 - rayon::check::h5330e6e85dcca870 at /home/keming/TensorChord/pgvecto.rs/crates/rayon/src/lib.rs:124:9 17: 0x5566aa32bb69 - hnsw::save::hef8bdbc460d1d771 at /home/keming/TensorChord/pgvecto.rs/crates/hnsw/src/lib.rs:399:5 18: 0x5566aa32bb69 - stand_alone_test::hnsw::mock_create::h7f368cb281f12b59 at /home/keming/TensorChord/pgvecto.rs/crates/stand-alone-test/src/hnsw.rs:225:16 19: 0x5566aa2ba14b - stand_alone_test::make_hnsw::h4c43cd42c3aeadc3 at /home/keming/TensorChord/pgvecto.rs/crates/stand-alone-test/src/lib.rs:40:5 20: 0x5566aa2ba14b - main::main::h3197c5c784eeeda9 at /home/keming/TensorChord/pgvecto.rs/crates/stand-alone-test/src/bin/main.rs:90:13 21: 0x5566aa2b5513 - core::ops::function::FnOnce::call_once::hf45f492fff257083 at /rustc/791adf759cc065316f054961875052d5bc03e16c/library/core/src/ops/function.rs:250:5 22: 0x5566aa2b5513 - std::sys_common::backtrace::__rust_begin_short_backtrace::hbd8225f0da139a39 at /rustc/791adf759cc065316f054961875052d5bc03e16c/library/std/src/sys_common/backtrace.rs:155:18 23: 0x5566aa2c2a11 - main 24: 0x7f1bbadcab8a - __libc_start_call_main 25: 0x7f1bbadcac4b - __libc_start_main@@GLIBC_2.34 26: 0x5566aa2af815 - _start 27: 0x0 - ```
usamoi commented 3 months ago

Removing stand-alone-test will solve the problem.

kemingy commented 3 months ago

Removing stand-alone-test will solve the problem.

It's the CLI. Is there anything else that can call the HNSW build from the command line?