snarkVM icon indicating copy to clipboard operation
snarkVM copied to clipboard

[Bug] Not all threads terminate prior to `main` when executing certain unit tests

Open icmccorm opened this issue 6 months ago • 4 comments

🐛 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)

icmccorm avatar Dec 11 '23 16:12 icmccorm