snarkVM
snarkVM copied to clipboard
[Bug] Not all threads terminate prior to `main` when executing certain unit tests
🐛 Bug Report
I've been developing an experimental version of Miri that can execute foreign functions by interpreting LLVM bytecode. I was testing it on this crate, and it didn't find any borrowing violations, but Miri did report that several threads were still running after the main thread terminated.
Steps to Reproduce
The custom version of Miri that I'm using is public, but to use it, you'll need to build Rust from source. If you take this route, the following command will reproduce the error:
MIRIFLAGS="-Zmiri-llvm-read-uninit" cargo miri test -- [test_name]
Here's the error message I see:
error: the main thread terminated without waiting for all remaining threads
This occurs for the following tests:
-
fft::domain::tests::test_roots_of_unity
-
fft::polynomial::dense::tests::double_polynomials_random
-
fft::polynomial::dense::tests::evaluate_polynomials
-
fft::polynomial::dense::tests::sub_polynomials
-
fft::tests::test_roots_of_unity
-
snark::marlin::ahp::ahp::tests::test_summation
Expected Behavior
All other threads should terminate prior to the main thread.
Your Environment
- snarkvm-algorithms 0.14.6
- rustc nightly-2023-09-25
- Amazon Linux (x86)