Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

MemorySanitizer: use-of-uninitialized-value (probably false positive) #2341

Open
PSeitz opened this issue Apr 4, 2024 · 0 comments
Open

Comments

@PSeitz
Copy link
Contributor

PSeitz commented Apr 4, 2024

Note: This is probably a false positive, since C++ dependencies need to be compiled with sanitization flags (https://doc.rust-lang.org/beta/unstable-book/compiler-flags/sanitizer.html#memorysanitizer). This issue is just to keep track of it, as this would be serious. Here it seems we need to compile zstd with sanitization.

Reproducible on main branch with:
RUSTFLAGS=-Zsanitizer=memory cargo +nightly test -Zbuild-std --target x86_64-unknown-linux-gnu test_fast_field_range -- --nocapture

Bisected to 780e263

==335343==WARNING: MemorySanitizer: use-of-uninitialized-value
    #0 0x562d8f50dba2 in core::core_arch::x86::sse41::_mm_extract_epi32::h3e8f08ea80bcad54 /home/pascal/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/../../stdar
ch/crates/core_arch/src/x86/sse41.rs:235:2
    #1 0x562d8f514ad3 in crc32fast::specialized::pclmulqdq::calculate::hb335d6d7c3529288 /home/pascal/.cargo/registry/src/index.crates.io-6f17d22bba15001f/crc32fast-1.4.0/src/specialized/pclmulqdq.rs:181:1
3
    #2 0x562d8f511e60 in crc32fast::specialized::pclmulqdq::State::update::hbd8b2d78be202c77 /home/pascal/.cargo/registry/src/index.crates.io-6f17d22bba15001f/crc32fast-1.4.0/src/specialized/pclmulqdq.rs:4
3:31
    #3 0x562d8f511a08 in crc32fast::Hasher::update::h026283b5d81326d8 /home/pascal/.cargo/registry/src/index.crates.io-6f17d22bba15001f/crc32fast-1.4.0/src/lib.rs:141:50
    #4 0x562d8c477256 in _$LT$tantivy..directory..footer..FooterProxy$LT$W$GT$$u20$as$u20$std..io..Write$GT$::write::h7ebadcc7978763a9 /home/pascal/LinuxData/Development/tantivy/san_test/src/directory/foot
er.rs:138:9
    #5 0x562d8c7c3ea3 in std::io::impls::_$LT$impl$u20$std..io..Write$u20$for$u20$alloc..boxed..Box$LT$W$GT$$GT$::write::h143a49b6b5a1c670 /home/pascal/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/l
ib/rustlib/src/rust/library/std/src/io/impls.rs:162:9
    #6 0x562d8c58633d in std::io::buffered::bufwriter::BufWriter$LT$W$GT$::flush_buf::hb6fc81e8bddbe7cd /home/pascal/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src
/io/buffered/bufwriter.rs:228:21
    #7 0x562d8c58c3e1 in _$LT$std..io..buffered..bufwriter..BufWriter$LT$W$GT$$u20$as$u20$std..io..Write$GT$::flush::h2ace8ea0e32959ff /home/pascal/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/r
ustlib/src/rust/library/std/src/io/buffered/bufwriter.rs:642:9
    #8 0x562d90071bec in std::io::impls::_$LT$impl$u20$std..io..Write$u20$for$u20$$RF$mut$u20$W$GT$::flush::h44aaab595309ad4f /home/pascal/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/sr
c/rust/library/std/src/io/impls.rs:73:9
    #9 0x562d904fd512 in _$LT$tantivy_common..writer..CountingWriter$LT$W$GT$$u20$as$u20$std..io..Write$GT$::flush::h97fe376744389196 /home/pascal/LinuxData/Development/tantivy/san_test/common/src/writer.r
s:46:9
    #10 0x562d90138735 in _$LT$tantivy_columnar..columnar..writer..serializer..ColumnSerializer$LT$W$GT$$u20$as$u20$std..io..Write$GT$::flush::h673a1146fd7a3f7b /home/pascal/LinuxData/Development/tantivy/s
an_test/columnar/src/columnar/writer/serializer.rs:88:9
    #11 0x562d90135d37 in std::io::impls::_$LT$impl$u20$std..io..Write$u20$for$u20$$RF$mut$u20$W$GT$::flush::h2b392088ad028002 /home/pascal/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/s
rc/rust/library/std/src/io/impls.rs:73:9
    #12 0x562d904fd5d2 in _$LT$tantivy_common..writer..CountingWriter$LT$W$GT$$u20$as$u20$std..io..Write$GT$::flush::hdcc0d04a8657132c /home/pascal/LinuxData/Development/tantivy/san_test/common/src/writer.
rs:46:9
    #13 0x562d904fcbc7 in std::io::impls::_$LT$impl$u20$std..io..Write$u20$for$u20$$RF$mut$u20$W$GT$::flush::hb03b7d0b90832e40 /home/pascal/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/s
rc/rust/library/std/src/io/impls.rs:73:9
    #14 0x562d901de479 in _$LT$std..io..buffered..bufwriter..BufWriter$LT$W$GT$$u20$as$u20$std..io..Write$GT$::flush::_$u7b$$u7b$closure$u7d$$u7d$::hc151b94c7b795450 /home/pascal/.rustup/toolchains/nightly
-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/io/buffered/bufwriter.rs:642:40
    #15 0x562d9039d2f8 in core::result::Result$LT$T$C$E$GT$::and_then::hc10dd902b7f84f52 /home/pascal/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/result.rs:132
1:22
    #16 0x562d901de312 in _$LT$std..io..buffered..bufwriter..BufWriter$LT$W$GT$$u20$as$u20$std..io..Write$GT$::flush::hda5b3efe99b35a81 /home/pascal/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/
rustlib/src/rust/library/std/src/io/buffered/bufwriter.rs:642:9
    #17 0x562d904fd392 in _$LT$tantivy_common..writer..CountingWriter$LT$W$GT$$u20$as$u20$std..io..Write$GT$::flush::h0acdb45f8822822f /home/pascal/LinuxData/Development/tantivy/san_test/common/src/writer.
rs:46:9
    #18 0x562d904fcac7 in std::io::impls::_$LT$impl$u20$std..io..Write$u20$for$u20$$RF$mut$u20$W$GT$::flush::h9b582478fe968b28 /home/pascal/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/s
rc/rust/library/std/src/io/impls.rs:73:9
    #19 0x562d904fd572 in _$LT$tantivy_common..writer..CountingWriter$LT$W$GT$$u20$as$u20$std..io..Write$GT$::flush::hca78690e84f3bbf9 /home/pascal/LinuxData/Development/tantivy/san_test/common/src/writer.
rs:46:9
    #20 0x562d905706e2 in _$LT$tantivy_fst..raw..counting_writer..CountingWriter$LT$W$GT$$u20$as$u20$std..io..Write$GT$::flush::h9ce957f27e88d27e /home/pascal/.cargo/registry/src/index.crates.io-6f17d22bba
15001f/tantivy-fst-0.5.0/src/raw/counting_writer.rs:42:9
    #21 0x562d90537591 in tantivy_fst::raw::build::Builder$LT$W$GT$::into_inner::ha1cb6ea7a7ab5780 /home/pascal/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tantivy-fst-0.5.0/src/raw/build.rs:213:9
    #22 0x562d903c3f28 in tantivy_fst::inner_map::MapBuilder$LT$W$GT$::into_inner::hfdf2db6904be14ab /home/pascal/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tantivy-fst-0.5.0/src/map.rs:533:9
    #23 0x562d90565327 in tantivy_sstable::sstable_index_v3::SSTableIndexBuilder::serialize::hf86ee8e1c3b384ce /home/pascal/LinuxData/Development/tantivy/san_test/sstable/src/sstable_index_v3.rs:292:31
    #24 0x562d901c765d in tantivy_sstable::Writer$LT$W$C$TValueWriter$GT$::finish::hb4210daf7e6e56a8 /home/pascal/LinuxData/Development/tantivy/san_test/sstable/src/lib.rs:308:28
    #25 0x562d9038dbbd in tantivy_columnar::dictionary::DictionaryBuilder::serialize::hedecea4c6eed112b /home/pascal/LinuxData/Development/tantivy/san_test/columnar/src/dictionary.rs:75:9
    #26 0x562d9051bfd1 in tantivy_columnar::columnar::writer::serialize_bytes_or_str_column::h20d0d29875752f6d /home/pascal/LinuxData/Development/tantivy/san_test/columnar/src/columnar/writer/mod.rs:510:9
    #27 0x562d9038932c in tantivy_columnar::columnar::writer::ColumnarWriter::serialize::ha744d7820f5e3069 /home/pascal/LinuxData/Development/tantivy/san_test/columnar/src/columnar/writer/mod.rs:427:21
    #28 0x562d8c89266b in tantivy::fastfield::writer::FastFieldsWriter::serialize::h3736383fe85dcb9c /home/pascal/LinuxData/Development/tantivy/san_test/src/fastfield/writer.rs:245:9
    #29 0x562d8ec22d33 in tantivy::indexer::segment_writer::remap_and_write::hfed7f3cb9fd3df20 /home/pascal/LinuxData/Development/tantivy/san_test/src/indexer/segment_writer.rs:455:5
    #30 0x562d8ec1fc63 in tantivy::indexer::segment_writer::SegmentWriter::finalize::h572fd8d2b50cffb1 /home/pascal/LinuxData/Development/tantivy/san_test/src/indexer/segment_writer.rs:149:9
    #31 0x562d8c39d011 in tantivy::indexer::index_writer::index_documents::h89963ccd8e01bbce /home/pascal/LinuxData/Development/tantivy/san_test/src/indexer/index_writer.rs:200:38
    #32 0x562d8c3a3d07 in tantivy::indexer::index_writer::IndexWriter$LT$D$GT$::add_indexing_worker::_$u7b$$u7b$closure$u7d$$u7d$::h1af4ff0c7c090042 /home/pascal/LinuxData/Development/tantivy/san_test/src/
indexer/index_writer.rs:429:21
    #33 0x562d8d5387ba in std::sys_common::backtrace::__rust_begin_short_backtrace::h7398100ff3fdd8a0 /home/pascal/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/s
ys_common/backtrace.rs:155:18
    #34 0x562d8c57e3e9 in std::thread::Builder::spawn_unchecked_::_$u7b$$u7b$closure$u7d$$u7d$::_$u7b$$u7b$closure$u7d$$u7d$::hb22a25942720bb2d /home/pascal/.rustup/toolchains/nightly-x86_64-unknown-linux-
gnu/lib/rustlib/src/rust/library/std/src/thread/mod.rs:528:17
    #35 0x562d8eff0c07 in _$LT$core..panic..unwind_safe..AssertUnwindSafe$LT$F$GT$$u20$as$u20$core..ops..function..FnOnce$LT$$LP$$RP$$GT$$GT$::call_once::h41d9c2dcd5d97162 /home/pascal/.rustup/toolchains/n
ightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/panic/unwind_safe.rs:272:9
    #36 0x562d8ed3259b in std::panicking::try::do_call::h50d1794abfcacc28 /home/pascal/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panicking.rs:552:40
    #37 0x562d8ed59239 in __rust_try lm7sfycdfk3mp3j
    #38 0x562d8ed2c0e5 in std::panicking::try::hf40355fe4dc55205 /home/pascal/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panicking.rs:516:19
    #39 0x562d8c24ce3c in std::panic::catch_unwind::h11f58864e2a2f476 /home/pascal/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panic.rs:146:14
    #40 0x562d8c579695 in std::thread::Builder::spawn_unchecked_::_$u7b$$u7b$closure$u7d$$u7d$::h4516dcd639af0591 /home/pascal/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/libra
ry/std/src/thread/mod.rs:527:30
    #41 0x562d8d2d5e8f in core::ops::function::FnOnce::call_once$u7b$$u7b$vtable.shim$u7d$$u7d$::he0157a8331daea87 /home/pascal/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/libr
ary/core/src/ops/function.rs:250:5
    #42 0x562d90e5aebd in _$LT$alloc..boxed..Box$LT$F$C$A$GT$$u20$as$u20$core..ops..function..FnOnce$LT$Args$GT$$GT$::call_once::heb7559627e49664f /home/pascal/.rustup/toolchains/nightly-x86_64-unknown-lin
ux-gnu/lib/rustlib/src/rust/library/alloc/src/boxed.rs:2020:9
    #27 0x562d9038932c in tantivy_columnar::columnar::writer::ColumnarWriter::serialize::ha744d7820f5e3069 /home/pascal/LinuxData/Development/tantivy/san_test/columnar/src/columnar/writer/mod.rs:427:21
    #28 0x562d8c89266b in tantivy::fastfield::writer::FastFieldsWriter::serialize::h3736383fe85dcb9c /home/pascal/LinuxData/Development/tantivy/san_test/src/fastfield/writer.rs:245:9
    #29 0x562d8ec22d33 in tantivy::indexer::segment_writer::remap_and_write::hfed7f3cb9fd3df20 /home/pascal/LinuxData/Development/tantivy/san_test/src/indexer/segment_writer.rs:455:5
    #30 0x562d8ec1fc63 in tantivy::indexer::segment_writer::SegmentWriter::finalize::h572fd8d2b50cffb1 /home/pascal/LinuxData/Development/tantivy/san_test/src/indexer/segment_writer.rs:149:9
    #31 0x562d8c39d011 in tantivy::indexer::index_writer::index_documents::h89963ccd8e01bbce /home/pascal/LinuxData/Development/tantivy/san_test/src/indexer/index_writer.rs:200:38
    #32 0x562d8c3a3d07 in tantivy::indexer::index_writer::IndexWriter$LT$D$GT$::add_indexing_worker::_$u7b$$u7b$closure$u7d$$u7d$::h1af4ff0c7c090042 /home/pascal/LinuxData/Development/tantivy/san_test/src/
indexer/index_writer.rs:429:21
    #33 0x562d8d5387ba in std::sys_common::backtrace::__rust_begin_short_backtrace::h7398100ff3fdd8a0 /home/pascal/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/s
ys_common/backtrace.rs:155:18
    #34 0x562d8c57e3e9 in std::thread::Builder::spawn_unchecked_::_$u7b$$u7b$closure$u7d$$u7d$::_$u7b$$u7b$closure$u7d$$u7d$::hb22a25942720bb2d /home/pascal/.rustup/toolchains/nightly-x86_64-unknown-linux-
gnu/lib/rustlib/src/rust/library/std/src/thread/mod.rs:528:17
    #35 0x562d8eff0c07 in _$LT$core..panic..unwind_safe..AssertUnwindSafe$LT$F$GT$$u20$as$u20$core..ops..function..FnOnce$LT$$LP$$RP$$GT$$GT$::call_once::h41d9c2dcd5d97162 /home/pascal/.rustup/toolchains/n
ightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/panic/unwind_safe.rs:272:9
    #36 0x562d8ed3259b in std::panicking::try::do_call::h50d1794abfcacc28 /home/pascal/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panicking.rs:552:40
    #37 0x562d8ed59239 in __rust_try lm7sfycdfk3mp3j
    #38 0x562d8ed2c0e5 in std::panicking::try::hf40355fe4dc55205 /home/pascal/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panicking.rs:516:19
    #39 0x562d8c24ce3c in std::panic::catch_unwind::h11f58864e2a2f476 /home/pascal/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panic.rs:146:14
    #40 0x562d8c579695 in std::thread::Builder::spawn_unchecked_::_$u7b$$u7b$closure$u7d$$u7d$::h4516dcd639af0591 /home/pascal/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/libra
ry/std/src/thread/mod.rs:527:30
    #41 0x562d8d2d5e8f in core::ops::function::FnOnce::call_once$u7b$$u7b$vtable.shim$u7d$$u7d$::he0157a8331daea87 /home/pascal/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/libr
ary/core/src/ops/function.rs:250:5
    #42 0x562d90e5aebd in _$LT$alloc..boxed..Box$LT$F$C$A$GT$$u20$as$u20$core..ops..function..FnOnce$LT$Args$GT$$GT$::call_once::heb7559627e49664f /home/pascal/.rustup/toolchains/nightly-x86_64-unknown-lin
ux-gnu/lib/rustlib/src/rust/library/alloc/src/boxed.rs:2020:9
    #43 0x562d90e5abea in _$LT$alloc..boxed..Box$LT$F$C$A$GT$$u20$as$u20$core..ops..function..FnOnce$LT$Args$GT$$GT$::call_once::h885aa5c185fe8e52 /home/pascal/.rustup/toolchains/nightly-x86_64-unknown-lin
ux-gnu/lib/rustlib/src/rust/library/alloc/src/boxed.rs:2020:9
    #44 0x562d910a7946 in std::sys::pal::unix::thread::Thread::new::thread_start::hbf1689725800ccf9 /home/pascal/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/sys
/pal/unix/thread.rs:108:17
    #45 0x7f4456303559  (/usr/lib/libc.so.6+0x8f559) (BuildId: 0865c4b9ba13e0094e8b45b78dfc7a2971f536d2)
    #46 0x7f4456380a3b  (/usr/lib/libc.so.6+0x10ca3b) (BuildId: 0865c4b9ba13e0094e8b45b78dfc7a2971f536d2)

SUMMARY: MemorySanitizer: use-of-uninitialized-value /home/pascal/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/../../stdarch/crates/core_arch/src/x86/sse41.rs:2
35:2 in core::core_arch::x86::sse41::_mm_extract_epi32::h3e8f08ea80bcad54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant