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

panic when using submit_all and Completion::wait #14

Open
Geal opened this issue Feb 10, 2020 · 0 comments
Open

panic when using submit_all and Completion::wait #14

Geal opened this issue Feb 10, 2020 · 0 comments

Comments

@Geal
Copy link
Contributor

Geal commented Feb 10, 2020

with the following code:

fn main() -> io::Result<()> {
  let ring = rio::new()?;
  let acceptor = TcpListener::bind("127.0.0.1:8080")?;
  let c1 = ring.accept(&acceptor);
  ring.submit_all();
  println!("c1: {:?}", c1.wait());
  Ok(())
}

I get the following panic trace:

thread 'main' panicked at 'failed to submit our expected SQE on ensure_submitted. expected old 0 + submitted 0 to be >= sqe_id 1', /home/geal/.cargo/registry/src/github.com-1ecc6299db9ec823/rio-0.9.2/src/io_uring/uring.rs:102:13          
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace 
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: "PoisonError { inner: .. }"', /home/geal/.cargo/registry/src/github.com-1ecc6299db9ec823/rio-0.9.2/src/io_uring/uring.rs:90:13
stack backtrace:                                                                                                       
   0:     0x55c1f8995dc8 - backtrace::backtrace::libunwind::trace::h86edaa2680be3f32                       
                               at /cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.40/src/backtrace/libunwind.rs:88
   1:     0x55c1f8995dc8 - backtrace::backtrace::trace_unsynchronized::h020717321cc60d9f                                                                                                                                                      
                               at /cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.40/src/backtrace/mod.rs:66
   2:     0x55c1f8995dc8 - std::sys_common::backtrace::_print_fmt::h95a740d649d8282b                                                                                                                                                          
                               at src/libstd/sys_common/backtrace.rs:77                                      
   3:     0x55c1f8995dc8 - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::h229d12a248a94d4d
                               at src/libstd/sys_common/backtrace.rs:59
   4:     0x55c1f89b4e4c - core::fmt::write::h7a7c155a9a2fc994
                               at src/libcore/fmt/mod.rs:1052
   5:     0x55c1f8990867 - std::io::Write::write_fmt::hbc3e21ba137de707
                               at src/libstd/io/mod.rs:1428 
   6:     0x55c1f8998485 - std::sys_common::backtrace::_print::h8ecf04ab6aa60d02
                               at src/libstd/sys_common/backtrace.rs:62
   7:     0x55c1f8998485 - std::sys_common::backtrace::print::hbbeb2ccd67fe006e
                               at src/libstd/sys_common/backtrace.rs:49
   8:     0x55c1f8998485 - std::panicking::default_hook::{{closure}}::h30799abc567130ac
                               at src/libstd/panicking.rs:204
   9:     0x55c1f89981c6 - std::panicking::default_hook::h992fc24d479949ec
                               at src/libstd/panicking.rs:224
  10:     0x55c1f8998ae2 - std::panicking::rust_panic_with_hook::hd5c9bb7319c9d846
                               at src/libstd/panicking.rs:470
  11:     0x55c1f89986cb - rust_begin_unwind
                               at src/libstd/panicking.rs:378
  12:     0x55c1f89b36e1 - core::panicking::panic_fmt::hb5178b003b60d015
                               at src/libcore/panicking.rs:85                                                                                                                                                                                 
  13:     0x55c1f89b3503 - core::option::expect_none_failed::ha3a5581dc27ee7da
                               at src/libcore/option.rs:1199
  14:     0x55c1f895ec20 - core::result::Result<T,E>::unwrap::h128df1335a9895c2
                               at /rustc/58b834344fc7b9185e7a50db1ff24e5eb07dae5e/src/libcore/result.rs:963
  15:     0x55c1f897f2ff - rio::io_uring::uring::Uring::ensure_submitted::h26a3d49f0b4273bd
                               at /home/geal/.cargo/registry/src/github.com-1ecc6299db9ec823/rio-0.9.2/src/io_uring/uring.rs:90
  16:     0x55c1f896584f - rio::completion::Completion<C>::wait_inner::hb9b19c50f41fdda3
                               at /home/geal/.cargo/registry/src/github.com-1ecc6299db9ec823/rio-0.9.2/src/completion.rs:88
  17:     0x55c1f8966189 - <rio::completion::Completion<C> as core::ops::drop::Drop>::drop::h52530162c3514f2d
                               at /home/geal/.cargo/registry/src/github.com-1ecc6299db9ec823/rio-0.9.2/src/completion.rs:108
  18:     0x55c1f8962215 - core::ptr::drop_in_place::hb39ddc4a50cec2ea
                               at /rustc/58b834344fc7b9185e7a50db1ff24e5eb07dae5e/src/libcore/ptr/mod.rs:174
  19:     0x55c1f895aeb8 - rio::completion::Completion<C>::wait::h27ed660e57b425e5
                               at /home/geal/.cargo/registry/src/github.com-1ecc6299db9ec823/rio-0.9.2/src/completion.rs:76
  20:     0x55c1f895b321 - rio_test::main::he690bc1d1ba0d878
                               at src/main.rs:45
  21:     0x55c1f895afb5 - std::rt::lang_start::{{closure}}::hc8053d381934b416
                               at /rustc/58b834344fc7b9185e7a50db1ff24e5eb07dae5e/src/libstd/rt.rs:67
  22:     0x55c1f89985a3 - std::rt::lang_start_internal::{{closure}}::h35e485e19663c96e
                               at src/libstd/rt.rs:52
  23:     0x55c1f89985a3 - std::panicking::try::do_call::h00ecf8f872707631
                               at src/libstd/panicking.rs:303
  24:     0x55c1f899bb67 - __rust_maybe_catch_panic
                               at src/libpanic_unwind/lib.rs:86
  25:     0x55c1f8998f89 - std::panicking::try::h3f84bc59b258dd0b
                               at src/libstd/panicking.rs:281
  26:     0x55c1f8998f89 - std::panic::catch_unwind::hd5737c3ccacd68f7
                               at src/libstd/panic.rs:394
  27:     0x55c1f8998f89 - std::rt::lang_start_internal::h0b1b741f79488fca                           
                               at src/libstd/rt.rs:51                                                                  
  28:     0x55c1f895af89 - std::rt::lang_start::h9ae5b092ac55de00
                               at /rustc/58b834344fc7b9185e7a50db1ff24e5eb07dae5e/src/libstd/rt.rs:67
  29:     0x55c1f895b5aa - main                                                                                        
  30:     0x7fcf8b4d1153 - __libc_start_main       
  31:     0x55c1f895916e - _start                                                                                      
  32:                0x0 - <unknown>                                                                                   
thread panicked while panicking. aborting.                                                                             
sh : ligne 1 : 154044 Instruction non permise (core dumped)cargo run

and for good measure, it ends on a sigill :D

If I remove the submit_all line, it does not panic

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