AztecProtocol / barretenberg

Apache License 2.0
126 stars 77 forks source link

MSAN: uninitialized access in prefetch #858

Open ludamad opened 4 months ago

ludamad commented 4 months ago
[ RUN      ] ClientIVCTests.Full
==1310==WARNING: MemorySanitizer: use-of-uninitialized-value
    #0 0x5558408d81a7 in unsigned int bb::scalar_multiplication::construct_addition_chains<bb::curve::BN254>(bb::scalar_multiplication::affine_product_runtime_state<bb::curve::BN254>&, bool) /usr/src/barretenberg/cpp/src/barretenberg/ecc/scalar_multiplication/scalar_multiplication.cpp:609:21
    #1 0x555840a4ae9c in bb::curve::BN254::AffineElement* bb::scalar_multiplication::reduce_buckets<bb::curve::BN254>(bb::scalar_multiplication::affine_product_runtime_state<bb::curve::BN254>&, bool, bool) /usr/src/barretenberg/cpp/src/barretenberg/ecc/scalar_multiplication/scalar_multiplication.cpp:476:36
    #2 0x555840c15a46 in bb::curve::BN254::Element bb::scalar_multiplication::evaluate_pippenger_rounds<bb::curve::BN254>(bb::scalar_multiplication::pippenger_runtime_state<bb::curve::BN254>&, bb::curve::BN254::AffineElement*, unsigned long, bool)::'lambda'(unsigned long)::operator()(unsigned long) const /usr/src/barretenberg/cpp/src/barretenberg/ecc/scalar_multiplication/scalar_multiplication.cpp:786:49
    #3 0x555840c135dc in decltype(std::declval<bb::curve::BN254>()(std::declval<unsigned long>())) std::__1::__invoke[abi:v160006]<bb::curve::BN254::Element bb::scalar_multiplication::evaluate_pippenger_rounds<bb::curve::BN254>(bb::scalar_multiplication::pippenger_runtime_state<bb::curve::BN254>&, bb::curve::BN254::AffineElement*, unsigned long, bool)::'lambda'(unsigned long)&, unsigned long>(bb::curve::BN254&&, unsigned long&&) /opt/include/c++/v1/__functional/invoke.h:394:23
    #4 0x555840c13362 in void std::__1::__invoke_void_return_wrapper<void, true>::__call<bb::curve::BN254::Element bb::scalar_multiplication::evaluate_pippenger_rounds<bb::curve::BN254>(bb::scalar_multiplication::pippenger_runtime_state<bb::curve::BN254>&, bb::curve::BN254::AffineElement*, unsigned long, bool)::'lambda'(unsigned long)&, unsigned long>(bb::curve::BN254::Element bb::scalar_multiplication::evaluate_pippenger_rounds<bb::curve::BN254>(bb::scalar_multiplication::pippenger_runtime_state<bb::curve::BN254>&, bb::curve::BN254::AffineElement*, unsigned long, bool)::'lambda'(unsigned long)&, unsigned long&&) /opt/include/c++/v1/__functional/invoke.h:487:9
    #5 0x555840c131ef in std::__1::__function::__alloc_func<bb::curve::BN254::Element bb::scalar_multiplication::evaluate_pippenger_rounds<bb::curve::BN254>(bb::scalar_multiplication::pippenger_runtime_state<bb::curve::BN254>&, bb::curve::BN254::AffineElement*, unsigned long, bool)::'lambda'(unsigned long), std::__1::allocator<bb::curve::BN254::Element bb::scalar_multiplication::evaluate_pippenger_rounds<bb::curve::BN254>(bb::scalar_multiplication::pippenger_runtime_state<bb::curve::BN254>&, bb::curve::BN254::AffineElement*, unsigned long, bool)::'lambda'(unsigned long)>, void (unsigned long)>::operator()[abi:v160006](unsigned long&&) /opt/include/c++/v1/__functional/function.h:185:16
    #6 0x555840c0c88e in std::__1::__function::__func<bb::curve::BN254::Element bb::scalar_multiplication::evaluate_pippenger_rounds<bb::curve::BN254>(bb::scalar_multiplication::pippenger_runtime_state<bb::curve::BN254>&, bb::curve::BN254::AffineElement*, unsigned long, bool)::'lambda'(unsigned long), std::__1::allocator<bb::curve::BN254::Element bb::scalar_multiplication::evaluate_pippenger_rounds<bb::curve::BN254>(bb::scalar_multiplication::pippenger_runtime_state<bb::curve::BN254>&, bb::curve::BN254::AffineElement*, unsigned long, bool)::'lambda'(unsigned long)>, void (unsigned long)>::operator()(unsigned long&&) /opt/include/c++/v1/__functional/function.h:356:12
    #7 0x555840cfadce in std::__1::__function::__value_func<void (unsigned long)>::operator()[abi:v160006](unsigned long&&) const /opt/include/c++/v1/__functional/function.h:510:16
    #8 0x555840cfaabf in std::__1::function<void (unsigned long)>::operator()(unsigned long) const /opt/include/c++/v1/__functional/function.h:1156:12
    #9 0x555840cebfc6 in (anonymous namespace)::ThreadPool::do_iterations() /usr/src/barretenberg/cpp/src/barretenberg/common/parallel_for_mutex_pool.cpp:68:13
    #10 0x555840ce6ac8 in (anonymous namespace)::ThreadPool::worker_loop(unsigned long) /usr/src/barretenberg/cpp/src/barretenberg/common/parallel_for_mutex_pool.cpp:112:9
    #11 0x555840cea7e5 in decltype(*std::declval<(anonymous namespace)::ThreadPool*>().*std::declval<void ((anonymous namespace)::ThreadPool::*)(unsigned long)>()(std::declval<unsigned long>())) std::__1::__invoke[abi:v160006]<void ((anonymous namespace)::ThreadPool::*)(unsigned long), (anonymous namespace)::ThreadPool*, unsigned long, void>(void ((anonymous namespace)::ThreadPool::*&&)(unsigned long), (anonymous namespace)::ThreadPool*&&, unsigned long&&) /opt/include/c++/v1/__functional/invoke.h:359:23
    #12 0x555840cea3df in void std::__1::__thread_execute[abi:v160006]<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct>>, void ((anonymous namespace)::ThreadPool::*)(unsigned long), (anonymous namespace)::ThreadPool*, unsigned long, 2ul, 3ul>(std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct>>, void ((anonymous namespace)::ThreadPool::*)(unsigned long), (anonymous namespace)::ThreadPool*, unsigned long>&, std::__1::__tuple_indices<2ul, 3ul>) /opt/include/c++/v1/thread:282:5
    #13 0x555840ce8e67 in void* std::__1::__thread_proxy[abi:v160006]<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct>>, void ((anonymous namespace)::ThreadPool::*)(unsigned long), (anonymous namespace)::ThreadPool*, unsigned long>>(void*) /opt/include/c++/v1/thread:293:5
    #14 0x7f2dca0ba6b9  (/lib/x86_64-linux-gnu/libc.so.6+0x8f6b9) (BuildId: d320ce4e63925d698610ed423fc4b1f0e8ed51f1)
    #15 0x7f2dca149043 in clone (/lib/x86_64-linux-gnu/libc.so.6+0x11e043) (BuildId: d320ce4e63925d698610ed423fc4b1f0e8ed51f1)

  Uninitialized value was created by a heap allocation
    #0 0x55582b10345e in aligned_alloc (/usr/src/barretenberg/cpp/build-msan/bin/client_ivc_tests+0x6d45e) (BuildId: b439f033ceefc79376af4a85c27cee22a9e425a8)
    #1 0x55583f9a1b4d in protected_aligned_alloc(unsigned long, unsigned long) /usr/src/barretenberg/cpp/src/barretenberg/common/mem.hpp:35:9
    #2 0x555840c7e11b in (anonymous namespace)::SlabAllocator::get(unsigned long) /usr/src/barretenberg/cpp/src/barretenberg/common/slab_allocator.cpp:178:18
    #3 0x555840c7ccef in bb::get_mem_slab(unsigned long) /usr/src/barretenberg/cpp/src/barretenberg/common/slab_allocator.cpp:216:22
    #4 0x55584088e49a in bb::scalar_multiplication::pippenger_runtime_state<bb::curve::BN254>::pippenger_runtime_state(unsigned long) /usr/src/barretenberg/cpp/src/barretenberg/ecc/scalar_multiplication/runtime_states.cpp:27:11
    #5 0x55582c0ae471 in bb::CommitmentKey<bb::curve::BN254>::CommitmentKey(unsigned long, std::__1::shared_ptr<bb::srs::factories::CrsFactory<bb::curve::BN254>>) /usr/src/barretenberg/cpp/src/barretenberg/commitment_schemes/commitment_key.hpp:49:11
    #6 0x55582ca1b19f in bb::CommitmentKey<bb::curve::BN254>* std::__1::construct_at[abi:v160006]<bb::CommitmentKey<bb::curve::BN254>, unsigned long, bb::CommitmentKey<bb::curve::BN254>*>(bb::CommitmentKey<bb::curve::BN254>*, unsigned long&&) /opt/include/c++/v1/__memory/construct_at.h:38:48
    #7 0x55582ca1a462 in void std::__1::allocator_traits<std::__1::allocator<bb::CommitmentKey<bb::curve::BN254>>>::construct[abi:v160006]<bb::CommitmentKey<bb::curve::BN254>, unsigned long, void, void>(std::__1::allocator<bb::CommitmentKey<bb::curve::BN254>>&, bb::CommitmentKey<bb::curve::BN254>*, unsigned long&&) /opt/include/c++/v1/__memory/allocator_traits.h:304:9
    #8 0x55582ca18f61 in std::__1::__shared_ptr_emplace<bb::CommitmentKey<bb::curve::BN254>, std::__1::allocator<bb::CommitmentKey<bb::curve::BN254>>>::__shared_ptr_emplace[abi:v160006]<unsigned long>(std::__1::allocator<bb::CommitmentKey<bb::curve::BN254>>, unsigned long&&) /opt/include/c++/v1/__memory/shared_ptr.h:284:13
    #9 0x55582ca1857a in std::__1::shared_ptr<bb::CommitmentKey<bb::curve::BN254>> std::__1::allocate_shared[abi:v160006]<bb::CommitmentKey<bb::curve::BN254>, std::__1::allocator<bb::CommitmentKey<bb::curve::BN254>>, unsigned long, void>(std::__1::allocator<bb::CommitmentKey<bb::curve::BN254>> const&, unsigned long&&) /opt/include/c++/v1/__memory/shared_ptr.h:995:55
    #10 0x55582c9a70a6 in std::__1::shared_ptr<bb::CommitmentKey<bb::curve::BN254>> std::__1::make_shared[abi:v160006]<bb::CommitmentKey<bb::curve::BN254>, unsigned long, void>(unsigned long&&) /opt/include/c++/v1/__memory/shared_ptr.h:1004:12
    #11 0x55582cd2f304 in bb::UltraComposer_<bb::GoblinUltraFlavor>::compute_commitment_key(unsigned long) /usr/src/barretenberg/cpp/src/barretenberg/ultra_honk/ultra_composer.hpp:57:26
    #12 0x55582cd35b10 in bb::UltraComposer_<bb::GoblinUltraFlavor>::create_decider_prover(std::__1::shared_ptr<bb::ProverInstance_<bb::GoblinUltraFlavor>> const&, std::__1::shared_ptr<bb::GoblinUltraFlavor::Transcript_<bb::group_elements::affine_element<bb::field<bb::Bn254FqParams>, bb::field<bb::Bn254FrParams>, bb::Bn254G1Params>>> const&) /usr/src/barretenberg/cpp/src/barretenberg/ultra_honk/ultra_composer.cpp:104:22
    #13 0x55582b1cb1ff in ClientIVCTests::EXPECT_FOLDING_AND_DECIDING_VERIFIED(std::__1::shared_ptr<bb::ProverInstance_<bb::GoblinUltraFlavor>> const&, std::__1::vector<bb::field<bb::Bn254FrParams>, std::__1::allocator<bb::field<bb::Bn254FrParams>>> const&) (/usr/src/barretenberg/cpp/build-msan/bin/client_ivc_tests+0x1351ff) (BuildId: b439f033ceefc79376af4a85c27cee22a9e425a8)
    #14 0x55582b16090c in ClientIVCTests_Full_Test::TestBody() (/usr/src/barretenberg/cpp/build-msan/bin/client_ivc_tests+0xca90c) (BuildId: b439f033ceefc79376af4a85c27cee22a9e425a8)
    #15 0x55582c3a83a4 in void testing::internal::HandleSehExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) /usr/src/barretenberg/cpp/build-msan/_deps/gtest-src/googletest/src/gtest.cc:2621:10
    #16 0x55582c2062c1 in void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) /usr/src/barretenberg/cpp/build-msan/_deps/gtest-src/googletest/src/gtest.cc:2657:14
    #17 0x55582c16d908 in testing::Test::Run() /usr/src/barretenberg/cpp/build-msan/_deps/gtest-src/googletest/src/gtest.cc:2696:5
    #18 0x55582c170f7b in testing::TestInfo::Run() /usr/src/barretenberg/cpp/build-msan/_deps/gtest-src/googletest/src/gtest.cc:2845:11
    #19 0x55582c173edb in testing::TestSuite::Run() /usr/src/barretenberg/cpp/build-msan/_deps/gtest-src/googletest/src/gtest.cc:3004:30

SUMMARY: MemorySanitizer: use-of-uninitialized-value /usr/src/barretenberg/cpp/src/barretenberg/ecc/scalar_multiplication/scalar_multiplication.cpp:609:21 in unsigned int bb::scalar_multiplication::construct_addition_chains<bb::curve::BN254>(bb::scalar_multiplication::affine_product_runtime_state<bb::curve::BN254>&, bool)
Exiting
Running main() from /usr/src/barretenberg/cpp/build-msan/_deps/gtest-src/googletest/src/gtest_main.cc
ludamad commented 4 months ago

Note after this is fixed all ivc tests should be ran in case there are more MSAN errors

ludamad commented 4 months ago

Seemingly related

[ RUN      ] AcirFormatTests.TestLogicGateFromNoirCircuit
==1706==WARNING: MemorySanitizer: use-of-uninitialized-value
    #0 0x55a3d0c27117 in unsigned int bb::scalar_multiplication::construct_addition_chains<bb::curve::BN254>(bb::scalar_multiplication::affine_product_runtime_state<bb::curve::BN254>&, bool) /usr/src/barretenberg/cpp/src/barretenberg/ecc/scalar_multiplication/scalar_multiplication.cpp:609:21
    #1 0x55a3d0d9afac in bb::curve::BN254::AffineElement* bb::scalar_multiplication::reduce_buckets<bb::curve::BN254>(bb::scalar_multiplication::affine_product_runtime_state<bb::curve::BN254>&, bool, bool) /usr/src/barretenberg/cpp/src/barretenberg/ecc/scalar_multiplication/scalar_multiplication.cpp:476:36
    #2 0x55a3d0f6a9a6 in bb::curve::BN254::Element bb::scalar_multiplication::evaluate_pippenger_rounds<bb::curve::BN254>(bb::scalar_multiplication::pippenger_runtime_state<bb::curve::BN254>&, bb::curve::BN254::AffineElement*, unsigned long, bool)::'lambda'(unsigned long)::operator()(unsigned long) const /usr/src/barretenberg/cpp/src/barretenberg/ecc/scalar_multiplication/scalar_multiplication.cpp:786:49
    #3 0x55a3d0f6853c in decltype(std::declval<bb::curve::BN254>()(std::declval<unsigned long>())) std::__1::__invoke[abi:v160006]<bb::curve::BN254::Element bb::scalar_multiplication::evaluate_pippenger_rounds<bb::curve::BN254>(bb::scalar_multiplication::pippenger_runtime_state<bb::curve::BN254>&, bb::curve::BN254::AffineElement*, unsigned long, bool)::'lambda'(unsigned long)&, unsigned long>(bb::curve::BN254&&, unsigned long&&) /opt/include/c++/v1/__functional/invoke.h:394:23
    #4 0x55a3d0f682c2 in void std::__1::__invoke_void_return_wrapper<void, true>::__call<bb::curve::BN254::Element bb::scalar_multiplication::evaluate_pippenger_rounds<bb::curve::BN254>(bb::scalar_multiplication::pippenger_runtime_state<bb::curve::BN254>&, bb::curve::BN254::AffineElement*, unsigned long, bool)::'lambda'(unsigned long)&, unsigned long>(bb::curve::BN254::Element bb::scalar_multiplication::evaluate_pippenger_rounds<bb::curve::BN254>(bb::scalar_multiplication::pippenger_runtime_state<bb::curve::BN254>&, bb::curve::BN254::AffineElement*, unsigned long, bool)::'lambda'(unsigned long)&, unsigned long&&) /opt/include/c++/v1/__functional/invoke.h:487:9
    #5 0x55a3d0f6814f in std::__1::__function::__alloc_func<bb::curve::BN254::Element bb::scalar_multiplication::evaluate_pippenger_rounds<bb::curve::BN254>(bb::scalar_multiplication::pippenger_runtime_state<bb::curve::BN254>&, bb::curve::BN254::AffineElement*, unsigned long, bool)::'lambda'(unsigned long), std::__1::allocator<bb::curve::BN254::Element bb::scalar_multiplication::evaluate_pippenger_rounds<bb::curve::BN254>(bb::scalar_multiplication::pippenger_runtime_state<bb::curve::BN254>&, bb::curve::BN254::AffineElement*, unsigned long, bool)::'lambda'(unsigned long)>, void (unsigned long)>::operator()[abi:v160006](unsigned long&&) /opt/include/c++/v1/__functional/function.h:185:16
    #6 0x55a3d0f617ee in std::__1::__function::__func<bb::curve::BN254::Element bb::scalar_multiplication::evaluate_pippenger_rounds<bb::curve::BN254>(bb::scalar_multiplication::pippenger_runtime_state<bb::curve::BN254>&, bb::curve::BN254::AffineElement*, unsigned long, bool)::'lambda'(unsigned long), std::__1::allocator<bb::curve::BN254::Element bb::scalar_multiplication::evaluate_pippenger_rounds<bb::curve::BN254>(bb::scalar_multiplication::pippenger_runtime_state<bb::curve::BN254>&, bb::curve::BN254::AffineElement*, unsigned long, bool)::'lambda'(unsigned long)>, void (unsigned long)>::operator()(unsigned long&&) /opt/include/c++/v1/__functional/function.h:356:12
    #7 0x55a3d1050aae in std::__1::__function::__value_func<void (unsigned long)>::operator()[abi:v160006](unsigned long&&) const /opt/include/c++/v1/__functional/function.h:510:16
    #8 0x55a3d105079f in std::__1::function<void (unsigned long)>::operator()(unsigned long) const /opt/include/c++/v1/__functional/function.h:1156:12
    #9 0x55a3d1041ca6 in (anonymous namespace)::ThreadPool::do_iterations() /usr/src/barretenberg/cpp/src/barretenberg/common/parallel_for_mutex_pool.cpp:68:13
    #10 0x55a3d103c7a8 in (anonymous namespace)::ThreadPool::worker_loop(unsigned long) /usr/src/barretenberg/cpp/src/barretenberg/common/parallel_for_mutex_pool.cpp:112:9
    #11 0x55a3d10404c5 in decltype(*std::declval<(anonymous namespace)::ThreadPool*>().*std::declval<void ((anonymous namespace)::ThreadPool::*)(unsigned long)>()(std::declval<unsigned long>())) std::__1::__invoke[abi:v160006]<void ((anonymous namespace)::ThreadPool::*)(unsigned long), (anonymous namespace)::ThreadPool*, unsigned long, void>(void ((anonymous namespace)::ThreadPool::*&&)(unsigned long), (anonymous namespace)::ThreadPool*&&, unsigned long&&) /opt/include/c++/v1/__functional/invoke.h:359:23
    #12 0x55a3d10400bf in void std::__1::__thread_execute[abi:v160006]<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct>>, void ((anonymous namespace)::ThreadPool::*)(unsigned long), (anonymous namespace)::ThreadPool*, unsigned long, 2ul, 3ul>(std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct>>, void ((anonymous namespace)::ThreadPool::*)(unsigned long), (anonymous namespace)::ThreadPool*, unsigned long>&, std::__1::__tuple_indices<2ul, 3ul>) /opt/include/c++/v1/thread:282:5
    #13 0x55a3d103eb47 in void* std::__1::__thread_proxy[abi:v160006]<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct>>, void ((anonymous namespace)::ThreadPool::*)(unsigned long), (anonymous namespace)::ThreadPool*, unsigned long>>(void*) /opt/include/c++/v1/thread:293:5
    #14 0x7f9a1052f6b9  (/lib/x86_64-linux-gnu/libc.so.6+0x8f6b9) (BuildId: d320ce4e63925d698610ed423fc4b1f0e8ed51f1)
    #15 0x7f9a105be043 in clone (/lib/x86_64-linux-gnu/libc.so.6+0x11e043) (BuildId: d320ce4e63925d698610ed423fc4b1f0e8ed51f1)

  Uninitialized value was created by a heap allocation
    #0 0x55a3c42ecf8e in aligned_alloc (/usr/src/barretenberg/cpp/build-msan/bin/dsl_tests+0x70f8e) (BuildId: c0879b4bf6a7cf79690b8f20fb379fb346d9ac64)
    #1 0x55a3cce86f7d in protected_aligned_alloc(unsigned long, unsigned long) /usr/src/barretenberg/cpp/src/barretenberg/common/mem.hpp:35:9
    #2 0x55a3d0fd5beb in (anonymous namespace)::SlabAllocator::get(unsigned long) /usr/src/barretenberg/cpp/src/barretenberg/common/slab_allocator.cpp:178:18
    #3 0x55a3d0fd47bf in bb::get_mem_slab(unsigned long) /usr/src/barretenberg/cpp/src/barretenberg/common/slab_allocator.cpp:216:22
    #4 0x55a3d0bdf1da in bb::scalar_multiplication::pippenger_runtime_state<bb::curve::BN254>::pippenger_runtime_state(unsigned long) /usr/src/barretenberg/cpp/src/barretenberg/ecc/scalar_multiplication/runtime_states.cpp:27:11
    #5 0x55a3ca8d0b0a in bb::plonk::work_queue::process_queue() /usr/src/barretenberg/cpp/src/barretenberg/plonk/work_queue/work_queue.cpp:215:34
    #6 0x55a3c9af3077 in bb::plonk::ProverBase<bb::plonk::ultra_with_keccak_settings>::construct_proof() /usr/src/barretenberg/cpp/src/barretenberg/plonk/proof_system/prover/prover.cpp:510:11
    #7 0x55a3c434e3d3 in AcirFormatTests_TestLogicGateFromNoirCircuit_Test::TestBody() (/usr/src/barretenberg/cpp/build-msan/bin/dsl_tests+0xd23d3) (BuildId: c0879b4bf6a7cf79690b8f20fb379fb346d9ac64)
    #8 0x55a3cca6fa34 in void testing::internal::HandleSehExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) /usr/src/barretenberg/cpp/build-msan/_deps/gtest-src/googletest/src/gtest.cc:2621:10
    #9 0x55a3cc8dbd71 in void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) /usr/src/barretenberg/cpp/build-msan/_deps/gtest-src/googletest/src/gtest.cc:2657:14
    #10 0x55a3cc8447a8 in testing::Test::Run() /usr/src/barretenberg/cpp/build-msan/_deps/gtest-src/googletest/src/gtest.cc:2696:5
    #11 0x55a3cc847e1b in testing::TestInfo::Run() /usr/src/barretenberg/cpp/build-msan/_deps/gtest-src/googletest/src/gtest.cc:2845:11
    #12 0x55a3cc84ad7b in testing::TestSuite::Run() /usr/src/barretenberg/cpp/build-msan/_deps/gtest-src/googletest/src/gtest.cc:3004:30
    #13 0x55a3cc88b026 in testing::internal::UnitTestImpl::RunAllTests() /usr/src/barretenberg/cpp/build-msan/_deps/gtest-src/googletest/src/gtest.cc:5890:44
    #14 0x55a3cca73174 in bool testing::internal::HandleSehExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) /usr/src/barretenberg/cpp/build-msan/_deps/gtest-src/googletest/src/gtest.cc:2621:10
    #15 0x55a3cc8ebd9d in bool testing::internal::HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) /usr/src/barretenberg/cpp/build-msan/_deps/gtest-src/googletest/src/gtest.cc:2657:14
    #16 0x55a3cc888d5f in testing::UnitTest::Run() /usr/src/barretenberg/cpp/build-msan/_deps/gtest-src/googletest/src/gtest.cc:5455:10
    #17 0x55a3cca7ae00 in RUN_ALL_TESTS() /usr/src/barretenberg/cpp/build-msan/_deps/gtest-src/googletest/include/gtest/gtest.h:2314:73
    #18 0x55a3cca7ade9 in main /usr/src/barretenberg/cpp/build-msan/_deps/gtest-src/googletest/src/gtest_main.cc:63:10
    #19 0x7f9a104c3a8f  (/lib/x86_64-linux-gnu/libc.so.6+0x23a8f) (BuildId: d320ce4e63925d698610ed423fc4b1f0e8ed51f1)

SUMMARY: MemorySanitizer: use-of-uninitialized-value /usr/src/barretenberg/cpp/src/barretenberg/ecc/scalar_multiplication/scalar_multiplication.cpp:609:21 in unsigned int bb::scalar_multiplication::construct_addition_chains<bb::curve::BN254>(bb::scalar_multiplication::affine_product_runtime_state<bb::curve::BN254>&, bool)
Exiting
ludamad commented 4 months ago

More

[ RUN      ] examples_simple.create_proof
building circuit...
public inputs: 0
composer gates: 262198
computing proving key...
computing proof...
==1965==WARNING: MemorySanitizer: use-of-uninitialized-value
    #0 0x5581d92e708f in unsigned int bb::scalar_multiplication::construct_addition_chains<bb::curve::BN254>(bb::scalar_multiplication::affine_product_runtime_state<bb::curve::BN254>&, bool) /usr/src/barretenberg/cpp/src/barretenberg/ecc/scalar_multiplication/scalar_multiplication.cpp:609:21
    #1 0x5581d945904c in bb::curve::BN254::AffineElement* bb::scalar_multiplication::reduce_buckets<bb::curve::BN254>(bb::scalar_multiplication::affine_product_runtime_state<bb::curve::BN254>&, bool, bool) /usr/src/barretenberg/cpp/src/barretenberg/ecc/scalar_multiplication/scalar_multiplication.cpp:476:36
    #2 0x5581d9629046 in bb::curve::BN254::Element bb::scalar_multiplication::evaluate_pippenger_rounds<bb::curve::BN254>(bb::scalar_multiplication::pippenger_runtime_state<bb::curve::BN254>&, bb::curve::BN254::AffineElement*, unsigned long, bool)::'lambda'(unsigned long)::operator()(unsigned long) const /usr/src/barretenberg/cpp/src/barretenberg/ecc/scalar_multiplication/scalar_multiplication.cpp:786:49
    #3 0x5581d9626bdc in decltype(std::declval<bb::curve::BN254>()(std::declval<unsigned long>())) std::__1::__invoke[abi:v160006]<bb::curve::BN254::Element bb::scalar_multiplication::evaluate_pippenger_rounds<bb::curve::BN254>(bb::scalar_multiplication::pippenger_runtime_state<bb::curve::BN254>&, bb::curve::BN254::AffineElement*, unsigned long, bool)::'lambda'(unsigned long)&, unsigned long>(bb::curve::BN254&&, unsigned long&&) /opt/include/c++/v1/__functional/invoke.h:394:23
    #4 0x5581d9626962 in void std::__1::__invoke_void_return_wrapper<void, true>::__call<bb::curve::BN254::Element bb::scalar_multiplication::evaluate_pippenger_rounds<bb::curve::BN254>(bb::scalar_multiplication::pippenger_runtime_state<bb::curve::BN254>&, bb::curve::BN254::AffineElement*, unsigned long, bool)::'lambda'(unsigned long)&, unsigned long>(bb::curve::BN254::Element bb::scalar_multiplication::evaluate_pippenger_rounds<bb::curve::BN254>(bb::scalar_multiplication::pippenger_runtime_state<bb::curve::BN254>&, bb::curve::BN254::AffineElement*, unsigned long, bool)::'lambda'(unsigned long)&, unsigned long&&) /opt/include/c++/v1/__functional/invoke.h:487:9
    #5 0x5581d96267ef in std::__1::__function::__alloc_func<bb::curve::BN254::Element bb::scalar_multiplication::evaluate_pippenger_rounds<bb::curve::BN254>(bb::scalar_multiplication::pippenger_runtime_state<bb::curve::BN254>&, bb::curve::BN254::AffineElement*, unsigned long, bool)::'lambda'(unsigned long), std::__1::allocator<bb::curve::BN254::Element bb::scalar_multiplication::evaluate_pippenger_rounds<bb::curve::BN254>(bb::scalar_multiplication::pippenger_runtime_state<bb::curve::BN254>&, bb::curve::BN254::AffineElement*, unsigned long, bool)::'lambda'(unsigned long)>, void (unsigned long)>::operator()[abi:v160006](unsigned long&&) /opt/include/c++/v1/__functional/function.h:185:16
    #6 0x5581d961fe8e in std::__1::__function::__func<bb::curve::BN254::Element bb::scalar_multiplication::evaluate_pippenger_rounds<bb::curve::BN254>(bb::scalar_multiplication::pippenger_runtime_state<bb::curve::BN254>&, bb::curve::BN254::AffineElement*, unsigned long, bool)::'lambda'(unsigned long), std::__1::allocator<bb::curve::BN254::Element bb::scalar_multiplication::evaluate_pippenger_rounds<bb::curve::BN254>(bb::scalar_multiplication::pippenger_runtime_state<bb::curve::BN254>&, bb::curve::BN254::AffineElement*, unsigned long, bool)::'lambda'(unsigned long)>, void (unsigned long)>::operator()(unsigned long&&) /opt/include/c++/v1/__functional/function.h:356:12
    #7 0x5581d97158ae in std::__1::__function::__value_func<void (unsigned long)>::operator()[abi:v160006](unsigned long&&) const /opt/include/c++/v1/__functional/function.h:510:16
    #8 0x5581d971559f in std::__1::function<void (unsigned long)>::operator()(unsigned long) const /opt/include/c++/v1/__functional/function.h:1156:12
    #9 0x5581d9706aa6 in (anonymous namespace)::ThreadPool::do_iterations() /usr/src/barretenberg/cpp/src/barretenberg/common/parallel_for_mutex_pool.cpp:68:13
    #10 0x5581d97015a8 in (anonymous namespace)::ThreadPool::worker_loop(unsigned long) /usr/src/barretenberg/cpp/src/barretenberg/common/parallel_for_mutex_pool.cpp:112:9
    #11 0x5581d97052c5 in decltype(*std::declval<(anonymous namespace)::ThreadPool*>().*std::declval<void ((anonymous namespace)::ThreadPool::*)(unsigned long)>()(std::declval<unsigned long>())) std::__1::__invoke[abi:v160006]<void ((anonymous namespace)::ThreadPool::*)(unsigned long), (anonymous namespace)::ThreadPool*, unsigned long, void>(void ((anonymous namespace)::ThreadPool::*&&)(unsigned long), (anonymous namespace)::ThreadPool*&&, unsigned long&&) /opt/include/c++/v1/__functional/invoke.h:359:23
    #12 0x5581d9704ebf in void std::__1::__thread_execute[abi:v160006]<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct>>, void ((anonymous namespace)::ThreadPool::*)(unsigned long), (anonymous namespace)::ThreadPool*, unsigned long, 2ul, 3ul>(std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct>>, void ((anonymous namespace)::ThreadPool::*)(unsigned long), (anonymous namespace)::ThreadPool*, unsigned long>&, std::__1::__tuple_indices<2ul, 3ul>) /opt/include/c++/v1/thread:282:5
    #13 0x5581d9703947 in void* std::__1::__thread_proxy[abi:v160006]<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct>>, void ((anonymous namespace)::ThreadPool::*)(unsigned long), (anonymous namespace)::ThreadPool*, unsigned long>>(void*) /opt/include/c++/v1/thread:293:5
    #14 0x7f7e33d4d6b9  (/lib/x86_64-linux-gnu/libc.so.6+0x8f6b9) (BuildId: d320ce4e63925d698610ed423fc4b1f0e8ed51f1)
    #15 0x7f7e33ddc043 in clone (/lib/x86_64-linux-gnu/libc.so.6+0x11e043) (BuildId: d320ce4e63925d698610ed423fc4b1f0e8ed51f1)

  Uninitialized value was created by a heap allocation
    #0 0x5581cf351ffe in __interceptor_aligned_alloc (/usr/src/barretenberg/cpp/build-msan/bin/examples_tests+0x68ffe) (BuildId: 281ca7deee30b6538193faf21c67a8d58c8d21de)
    #1 0x5581d832badd in protected_aligned_alloc(unsigned long, unsigned long) /usr/src/barretenberg/cpp/src/barretenberg/common/mem.hpp:35:9
    #2 0x5581d969a9eb in (anonymous namespace)::SlabAllocator::get(unsigned long) /usr/src/barretenberg/cpp/src/barretenberg/common/slab_allocator.cpp:178:18
    #3 0x5581d96995bf in bb::get_mem_slab(unsigned long) /usr/src/barretenberg/cpp/src/barretenberg/common/slab_allocator.cpp:216:22
    #4 0x5581d929d27a in bb::scalar_multiplication::pippenger_runtime_state<bb::curve::BN254>::pippenger_runtime_state(unsigned long) /usr/src/barretenberg/cpp/src/barretenberg/ecc/scalar_multiplication/runtime_states.cpp:27:11
    #5 0x5581d550f97a in bb::plonk::work_queue::process_queue() /usr/src/barretenberg/cpp/src/barretenberg/plonk/work_queue/work_queue.cpp:215:34
    #6 0x5581d4441fd2 in bb::plonk::ProverBase<bb::plonk::ultra_with_keccak_settings>::construct_proof() /usr/src/barretenberg/cpp/src/barretenberg/plonk/proof_system/prover/prover.cpp:505:11
    #7 0x5581cfcbbf02 in examples::simple::create_proof(examples::simple::BuilderComposerPtrs) /usr/src/barretenberg/cpp/src/barretenberg/examples/simple/simple.cpp:48:25
    #8 0x5581cf3af63c in examples::simple::examples_simple_create_proof_Test::TestBody() (/usr/src/barretenberg/cpp/build-msan/bin/examples_tests+0xc663c) (BuildId: 281ca7deee30b6538193faf21c67a8d58c8d21de)
    #9 0x5581d0075994 in void testing::internal::HandleSehExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) /usr/src/barretenberg/cpp/build-msan/_deps/gtest-src/googletest/src/gtest.cc:2621:10
    #10 0x5581cfec5d81 in void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) /usr/src/barretenberg/cpp/build-msan/_deps/gtest-src/googletest/src/gtest.cc:2657:14
    #11 0x5581cfe2ab88 in testing::Test::Run() /usr/src/barretenberg/cpp/build-msan/_deps/gtest-src/googletest/src/gtest.cc:2696:5
    #12 0x5581cfe2e1fb in testing::TestInfo::Run() /usr/src/barretenberg/cpp/build-msan/_deps/gtest-src/googletest/src/gtest.cc:2845:11
    #13 0x5581cfe3115b in testing::TestSuite::Run() /usr/src/barretenberg/cpp/build-msan/_deps/gtest-src/googletest/src/gtest.cc:3004:30
    #14 0x5581cfe71406 in testing::internal::UnitTestImpl::RunAllTests() /usr/src/barretenberg/cpp/build-msan/_deps/gtest-src/googletest/src/gtest.cc:5890:44
    #15 0x5581d00790d4 in bool testing::internal::HandleSehExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) /usr/src/barretenberg/cpp/build-msan/_deps/gtest-src/googletest/src/gtest.cc:2621:10
    #16 0x5581cfed5dad in bool testing::internal::HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) /usr/src/barretenberg/cpp/build-msan/_deps/gtest-src/googletest/src/gtest.cc:2657:14
    #17 0x5581cfe6f13f in testing::UnitTest::Run() /usr/src/barretenberg/cpp/build-msan/_deps/gtest-src/googletest/src/gtest.cc:5455:10
    #18 0x5581d0080d60 in RUN_ALL_TESTS() /usr/src/barretenberg/cpp/build-msan/_deps/gtest-src/googletest/include/gtest/gtest.h:2314:73
    #19 0x5581d0080d49 in main /usr/src/barretenberg/cpp/build-msan/_deps/gtest-src/googletest/src/gtest_main.cc:63:10

SUMMARY: MemorySanitizer: use-of-uninitialized-value /usr/src/barretenberg/cpp/src/barretenberg/ecc/scalar_multiplication/scalar_multiplication.cpp:609:21 in unsigned int bb::scalar_multiplication::construct_addition_chains<bb::curve::BN254>(bb::scalar_multiplication::affine_product_runtime_state<bb::curve::BN254>&, bool)
Exiting