-
Notifications
You must be signed in to change notification settings - Fork 472
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
skiplist: Miri reports SB violation #878
Labels
Comments
taiki-e
changed the title
skiplist: MIRI reports SB violation
skiplist: Miri reports SB violation
Jul 22, 2022
bors bot
added a commit
that referenced
this issue
Dec 16, 2022
940: Fix get_unchecked panic by raw pointer calculation r=taiki-e a=sticnarf It is related to #878 but doesn't fix it. Miri still complains with this PR. It fixes the panic on recent toolchains (after rust-lang/rust#92686) when using `-Zbuild-std`. ``` $ RUST_BACKTRACE=1 cargo test -p crossbeam-skiplist -Zbuild-std --target x86_64-unknown-linux-gnu --test map -- smoke Finished test [unoptimized + debuginfo] target(s) in 0.03s Running tests/map.rs (target/x86_64-unknown-linux-gnu/debug/deps/map-509dc855f6125f07) running 1 test thread 'smoke' panicked at 'unsafe precondition(s) violated: slice::get_unchecked requires that the index is within the slice', /home/yilin/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/panicking.rs:87:58 stack backtrace: 0: rust_begin_unwind at /home/yilin/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panicking.rs:575:5 1: core::panicking::panic_str_nounwind at /home/yilin/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/panicking.rs:90:14 2: <usize as core::slice::index::SliceIndex<[T]>>::get_unchecked::runtime at /home/yilin/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/intrinsics.rs:2284:21 3: <usize as core::slice::index::SliceIndex<[T]>>::get_unchecked at /home/yilin/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/slice/index.rs:236:13 4: core::slice::<impl [T]>::get_unchecked at /home/yilin/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/slice/mod.rs:399:20 5: <crossbeam_skiplist::base::Tower<K,V> as core::ops::index::Index<usize>>::index at ./src/base.rs:39:18 6: crossbeam_skiplist::base::SkipList<K,V>::search_position at ./src/base.rs:781:24 7: crossbeam_skiplist::base::SkipList<K,V>::insert_internal at ./src/base.rs:871:26 8: crossbeam_skiplist::base::SkipList<K,V>::insert at ./src/base.rs:1085:9 9: crossbeam_skiplist::map::SkipMap<K,V>::insert at ./src/map.rs:375:20 10: map::smoke at ./tests/map.rs:9:5 11: map::smoke::{{closure}} at ./tests/map.rs:7:12 12: core::ops::function::FnOnce::call_once at /home/yilin/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ops/function.rs:507:5 13: core::ops::function::FnOnce::call_once at /home/yilin/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ops/function.rs:507:5 note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace. thread panicked while panicking. aborting. error: test failed, to rerun pass `-p crossbeam-skiplist --test map` Caused by: process didn't exit successfully: `/home/yilin/Repos/crossbeam/target/x86_64-unknown-linux-gnu/debug/deps/map-509dc855f6125f07 smoke` (signal: 6, SIGABRT: process abort signal) ``` 941: Fix newly added clippy warnings r=taiki-e a=taiki-e Co-authored-by: Yilin Chen <[email protected]> Co-authored-by: Taiki Endo <[email protected]>
I think this is also an instance of rust-lang/unsafe-code-guidelines#256 With /// The tower of atomic pointers.
///
/// The actual size of the tower will vary depending on the height that a node
/// was allocated with.
#[repr(C)]
struct Tower<K, V> {
pointers: [Atomic<Node<K, V>>; 0],
} |
I experimented with some changes fixing this SB violation on top of the This commit passes: MIRIFLAGS="-Zmiri-disable-isolation -Zmiri-ignore-leaks" \
cargo miri test -p crossbeam-skiplist |
LDeakin
added a commit
to LDeakin/zarrs
that referenced
this issue
Feb 19, 2024
Basically any test using rayon is failing due to this issue: crossbeam-rs/crossbeam#878
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Run
MIRIFLAGS="-Zmiri-disable-isolation -Zmiri-ignore-leaks" cargo miri test -p crossbeam-skiplist
on #871, than miri reports an SB violation.output
The text was updated successfully, but these errors were encountered: