-
Notifications
You must be signed in to change notification settings - Fork 3
Open
Description
I am using you library to develop a compiler. My code does not use unsafe at all. It appears your library is panicing in the storage.rs file (which contains complex unsafe code). Please fix thank you.
This bug is being triggered when I call .intern() on a string slice. However, it doesn't trigger right away.
This bug occurs on a typical x86_64 linux machine with nothing special going on.
No concurrency it being used by my code.
My application crash report:
thread 'main' panicked at /home/wesjo/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/interned-string-0.3.0/src/storage.rs:356:63:
called `Option::unwrap()` on a `None` value
stack backtrace:
0: 0x5cee34a6b732 - std::backtrace_rs::backtrace::libunwind::trace::hc20b48b31ee52608
at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
1: 0x5cee34a6b732 - std::backtrace_rs::backtrace::trace_unsynchronized::h5d207cd20f193d88
at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
2: 0x5cee34a6b732 - std::sys::backtrace::_print_fmt::h46402c32145e026c
at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/sys/backtrace.rs:66:9
3: 0x5cee34a6b732 - <std::sys::backtrace::BacktraceLock::print::DisplayBacktrace as core::fmt::Display>::fmt::hc04c8f544ab24d66
at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/sys/backtrace.rs:39:26
4: 0x5cee34a8f493 - core::fmt::rt::Argument::fmt::h2bcd587ea50ac9a4
at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/core/src/fmt/rt.rs:184:76
5: 0x5cee34a8f493 - core::fmt::write::hfe57b7174b7d8eab
at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/core/src/fmt/mod.rs:1481:21
6: 0x5cee34a68e43 - std::io::default_write_fmt::h20c7e2d50577e95e
at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/io/mod.rs:639:11
7: 0x5cee34a68e43 - std::io::Write::write_fmt::h154385efa8565236
at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/io/mod.rs:1914:13
8: 0x5cee34a6b582 - std::sys::backtrace::BacktraceLock::print::h0c8f24e22f5873a8
at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/sys/backtrace.rs:42:9
9: 0x5cee34a6c4b2 - std::panicking::default_hook::{{closure}}::hd07d57e6a602c8e4
at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:300:22
10: 0x5cee34a6c2b5 - std::panicking::default_hook::h63d12f7d95bd91ed
at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:327:9
11: 0x5cee34a6ce92 - std::panicking::rust_panic_with_hook::h33b18b24045abff4
at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:833:13
12: 0x5cee34a6cbe6 - std::panicking::begin_panic_handler::{{closure}}::hf8313cc2fd0126bc
at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:699:13
13: 0x5cee34a6bc39 - std::sys::backtrace::__rust_end_short_backtrace::h57fe07c8aea5c98a
at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/sys/backtrace.rs:168:18
14: 0x5cee34a6c8ad - __rustc[95feac21a9532783]::rust_begin_unwind
at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:697:5
15: 0x5cee34a8d650 - core::panicking::panic_fmt::hd54fb667be51beea
at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/core/src/panicking.rs:75:14
16: 0x5cee34a8d6dc - core::panicking::panic::h48a7e1f3665210c6
at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/core/src/panicking.rs:145:5
17: 0x5cee34a8d5c9 - core::option::unwrap_failed::haa1cd4d2df4f1dcb
at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/core/src/option.rs:2015:5
18: 0x5cee34a3c7bd - core::option::Option<T>::unwrap::hbd59cb4746a9bf9c
at /home/wesjo/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/option.rs:978:21
19: 0x5cee34a3c7bd - <interned_string::storage::InnerStringStorage as left_right::Absorb<interned_string::storage::StringStorageOp>>::absorb_first::h867a4fc02f968977
at /home/wesjo/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/interned-string-0.3.0/src/storage.rs:356:34
20: 0x5cee34a2d872 - left_right::write::WriteHandle<T,O>::publish::h398b06384953f998
at /home/wesjo/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/left-right-0.11.5/src/write.rs:347:17
21: 0x5cee34a3b29e - interned_string::storage::UniqueWriter::do_pending_ops_and_insert::h057b084586ff2bd7
at /home/wesjo/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/interned-string-0.3.0/src/storage.rs:57:9
22: 0x5cee34a3bad7 - interned_string::storage::ConcurrentStringStorage::insert::h0f98df2f081f3b21
at /home/wesjo/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/interned-string-0.3.0/src/storage.rs:140:16
23: 0x5cee34a3b83a - interned_string::storage::ConcurrentStringStorage::insert_or_retain::h2f7f6b86cd7c1019
at /home/wesjo/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/interned-string-0.3.0/src/storage.rs:134:20
24: 0x5cee34a1cdce - <interned_string::IString as core::convert::From<&str>>::from::h71db0e0bbb44c2b7
at /home/wesjo/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/interned-string-0.3.0/src/lib.rs:67:18
25: 0x5cee34a1ccf3 - <&str as interned_string::Intern>::intern::h1bb0bca11ab76ed3
at /home/wesjo/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/interned-string-0.3.0/src/lib.rs:236:9
26: 0x5cee349e3d2a - nitrate_tokenize::lex::Lexer::parse_typical_identifier::h662a7e8079b38aff
at /home/wesjo/Documents/Projects/nitrate/src/translation/src/tokenize/src/lex.rs:378:28
27: 0x5cee349e3d2a - nitrate_tokenize::lex::Lexer::parse_next_token::hf8907817dd9b7dcf
at /home/wesjo/Documents/Projects/nitrate/src/translation/src/tokenize/src/lex.rs:1147:21
28: 0x5cee349e3d2a - nitrate_tokenize::lex::Lexer::next_tok::{{closure}}::ha106e151b025d4fe
at /home/wesjo/Documents/Projects/nitrate/src/translation/src/tokenize/src/lex.rs:60:32
29: 0x5cee34a1986a - core::option::Option<T>::unwrap_or_else::h5b8d9765571acbe0
at /home/wesjo/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/option.rs:1023:21
30: 0x5cee349c4c9f - nitrate_tokenize::lex::Lexer::next_tok::h078b1743cc71f183
at /home/wesjo/Documents/Projects/nitrate/src/translation/src/tokenize/src/lex.rs:57:21
31: 0x5cee34976035 - nitrate_tokenize::lex::Lexer::next_t::h6159842e10b88444
at /home/wesjo/Documents/Projects/nitrate/src/translation/src/tokenize/src/lex.rs:89:9
32: 0x5cee34976035 - nitrate_parse::parse::Parser::parse::h67202a54efbad2cd
at /home/wesjo/Documents/Projects/nitrate/src/translation/src/parse/src/parse.rs:51:25
33: 0x5cee346cb010 - nitrate_parse::program::h7f13b7649e812bf2
at /home/wesjo/Documents/Projects/nitrate/src/bin/nitrate_parse.rs:54:30
34: 0x5cee346cb2f1 - nitrate_parse::main::ha17a42c8d561eb91
at /home/wesjo/Documents/Projects/nitrate/src/bin/nitrate_parse.rs:67:11
35: 0x5cee346ca48b - core::ops::function::FnOnce::call_once::hfa6348d88d1643de
at /home/wesjo/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ops/function.rs:250:5
36: 0x5cee346bc0ee - std::sys::backtrace::__rust_begin_short_backtrace::h200b44a332ee0126
at /home/wesjo/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/sys/backtrace.rs:152:18
37: 0x5cee346ccb01 - std::rt::lang_start::{{closure}}::h0628126c48ec60ee
at /home/wesjo/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/rt.rs:199:18
38: 0x5cee34a62da0 - core::ops::function::impls::<impl core::ops::function::FnOnce<A> for &F>::call_once::he8388e74a9793a12
at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/core/src/ops/function.rs:284:13
39: 0x5cee34a62da0 - std::panicking::try::do_call::h48342abe4f16044f
at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:589:40
40: 0x5cee34a62da0 - std::panicking::try::h45f576514b338db1
at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:552:19
41: 0x5cee34a62da0 - std::panic::catch_unwind::h4500d81ff06e11c2
at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panic.rs:359:14
42: 0x5cee34a62da0 - std::rt::lang_start_internal::{{closure}}::h37cab7e9dd591bd0
at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/rt.rs:168:24
43: 0x5cee34a62da0 - std::panicking::try::do_call::h18dcd6ab68035fe0
at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:589:40
44: 0x5cee34a62da0 - std::panicking::try::h2ff15dd92aac3fb5
at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:552:19
45: 0x5cee34a62da0 - std::panic::catch_unwind::hffe66ef06337a6dd
at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panic.rs:359:14
46: 0x5cee34a62da0 - std::rt::lang_start_internal::h418648f91f5be3a1
at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/rt.rs:164:5
47: 0x5cee346ccae7 - std::rt::lang_start::h14aedb892fda2757
at /home/wesjo/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/rt.rs:198:5
48: 0x5cee346cb5fe - main
49: 0x7871f662a1ca - __libc_start_call_main
at ./csu/../sysdeps/nptl/libc_start_call_main.h:58:16
50: 0x7871f662a28b - __libc_start_main_impl
at ./csu/../csu/libc-start.c:360:3
51: 0x5cee346bae65 - _start
52: 0x0 - <unknown>
thread 'main' panicked at /home/wesjo/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/left-right-0.11.5/src/read.rs:58:36:
called `Result::unwrap()` on an `Err` value: PoisonError { .. }
stack backtrace:
0: 0x5cee34a6b732 - std::backtrace_rs::backtrace::libunwind::trace::hc20b48b31ee52608
at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
1: 0x5cee34a6b732 - std::backtrace_rs::backtrace::trace_unsynchronized::h5d207cd20f193d88
at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
2: 0x5cee34a6b732 - std::sys::backtrace::_print_fmt::h46402c32145e026c
at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/sys/backtrace.rs:66:9
3: 0x5cee34a6b732 - <std::sys::backtrace::BacktraceLock::print::DisplayBacktrace as core::fmt::Display>::fmt::hc04c8f544ab24d66
at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/sys/backtrace.rs:39:26
4: 0x5cee34a8f493 - core::fmt::rt::Argument::fmt::h2bcd587ea50ac9a4
at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/core/src/fmt/rt.rs:184:76
5: 0x5cee34a8f493 - core::fmt::write::hfe57b7174b7d8eab
at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/core/src/fmt/mod.rs:1481:21
6: 0x5cee34a68e43 - std::io::default_write_fmt::h20c7e2d50577e95e
at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/io/mod.rs:639:11
7: 0x5cee34a68e43 - std::io::Write::write_fmt::h154385efa8565236
at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/io/mod.rs:1914:13
8: 0x5cee34a6b582 - std::sys::backtrace::BacktraceLock::print::h0c8f24e22f5873a8
at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/sys/backtrace.rs:42:9
9: 0x5cee34a6c4b2 - std::panicking::default_hook::{{closure}}::hd07d57e6a602c8e4
at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:300:22
10: 0x5cee34a6c2b5 - std::panicking::default_hook::h63d12f7d95bd91ed
at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:327:9
11: 0x5cee34a6ce92 - std::panicking::rust_panic_with_hook::h33b18b24045abff4
at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:833:13
12: 0x5cee34a6cc1a - std::panicking::begin_panic_handler::{{closure}}::hf8313cc2fd0126bc
at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:706:13
13: 0x5cee34a6bc39 - std::sys::backtrace::__rust_end_short_backtrace::h57fe07c8aea5c98a
at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/sys/backtrace.rs:168:18
14: 0x5cee34a6c8ad - __rustc[95feac21a9532783]::rust_begin_unwind
at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:697:5
15: 0x5cee34a8d650 - core::panicking::panic_fmt::hd54fb667be51beea
at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/core/src/panicking.rs:75:14
16: 0x5cee34a8dae6 - core::result::unwrap_failed::he8e27e02739cd3d2
at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/core/src/result.rs:1704:5
17: 0x5cee34a2f92e - core::result::Result<T,E>::unwrap::h1e6afcb350cb9b08
at /home/wesjo/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/result.rs:1109:23
18: 0x5cee34a2f92e - <left_right::read::ReadHandle<T> as core::ops::drop::Drop>::drop::hcf0bfd3a644de263
at /home/wesjo/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/left-right-0.11.5/src/read.rs:58:17
19: 0x5cee34a3e9d7 - core::ptr::drop_in_place<left_right::read::ReadHandle<interned_string::storage::InnerStringStorage>>::h6d0adb8a3a66dbaf
at /home/wesjo/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ptr/mod.rs:523:1
20: 0x5cee34a3f477 - core::ptr::drop_in_place<interned_string::storage::ThreadLocalReader>::h84e3c4a4d4344c12
at /home/wesjo/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ptr/mod.rs:523:1
21: 0x5cee34a3ed83 - core::ptr::drop_in_place<std::sys::thread_local::native::lazy::State<interned_string::storage::ThreadLocalReader,()>>::hc86b303e32a4eddd
at /home/wesjo/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ptr/mod.rs:523:1
22: 0x5cee34a364a6 - core::mem::drop::h327f8db6e1446931
at /home/wesjo/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/mem/mod.rs:935:24
23: 0x5cee34a364a6 - std::sys::thread_local::native::lazy::destroy::{{closure}}::h2dbc3070aac53771
at /home/wesjo/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/sys/thread_local/native/lazy.rs:98:9
24: 0x5cee34a35bb2 - std::sys::thread_local::abort_on_dtor_unwind::hb1a7f39064693d3a
at /home/wesjo/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/sys/thread_local/mod.rs:187:5
25: 0x5cee34a36401 - std::sys::thread_local::native::lazy::destroy::h72b402b106ad4cd8
at /home/wesjo/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/sys/thread_local/native/lazy.rs:93:5
26: 0x7871f664772f - __GI___call_tls_dtors
at ./stdlib/cxa_thread_atexit_impl.c:156:7
27: 0x7871f6647b6a - __run_exit_handlers
at ./stdlib/exit.c:41:5
28: 0x7871f6647bbe - __GI_exit
at ./stdlib/exit.c:138:3
29: 0x7871f662a1d1 - __libc_start_call_main
at ./csu/../sysdeps/nptl/libc_start_call_main.h:74:3
30: 0x7871f662a28b - __libc_start_main_impl
at ./csu/../csu/libc-start.c:360:3
31: 0x5cee346bae65 - _start
32: 0x0 - <unknown>Metadata
Metadata
Assignees
Labels
No labels