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

Perform test with quic transport #10

Closed
dariusc93 opened this issue Oct 31, 2022 · 2 comments
Closed

Perform test with quic transport #10

dariusc93 opened this issue Oct 31, 2022 · 2 comments

Comments

@dariusc93
Copy link
Owner

Quic is not yet implemented in rust-libp2p but there are PRs that could be attempts quic transport implementation.

  1. Test hole punching
  2. Test bitswap
  3. Monitor network usage and compare it between usage with tcp.
  4. Check logs for any errors.

PR in rust-libp2p to test:

@dariusc93
Copy link
Owner Author

With pr 2289, i've randomly gotten the following panic

thread 'tokio-runtime-worker' panicked at 'assertion failed: !connection.is_closed()', /home/darius/.cargo/git/checkouts/rust-libp2p-2465c479375e5ed6/58c3f67/transports/quic/src/connection.rs:85:9
stack backtrace:
   0: rust_begin_unwind
             at /rustc/a55dd71d5fb0ec5a6a3a9e8c27b2127ba491ce52/library/std/src/panicking.rs:584:5
   1: core::panicking::panic_fmt
             at /rustc/a55dd71d5fb0ec5a6a3a9e8c27b2127ba491ce52/library/core/src/panicking.rs:142:14
   2: core::panicking::panic
             at /rustc/a55dd71d5fb0ec5a6a3a9e8c27b2127ba491ce52/library/core/src/panicking.rs:48:5
   3: libp2p_quic::connection::Connection::from_quinn_connection
             at /home/darius/.cargo/git/checkouts/rust-libp2p-2465c479375e5ed6/58c3f67/transports/quic/src/connection.rs:85:9
   4: libp2p_quic::endpoint::Driver<P>::handle_datagram
             at /home/darius/.cargo/git/checkouts/rust-libp2p-2465c479375e5ed6/58c3f67/transports/quic/src/endpoint.rs:536:21
   5: <libp2p_quic::endpoint::Driver<P> as core::future::future::Future>::poll
             at /home/darius/.cargo/git/checkouts/rust-libp2p-2465c479375e5ed6/58c3f67/transports/quic/src/endpoint.rs:622:27
   6: tokio::runtime::task::core::CoreStage<T>::poll::{{closure}}
             at /home/darius/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-1.21.2/src/runtime/task/core.rs:184:17
   7: tokio::loom::std::unsafe_cell::UnsafeCell<T>::with_mut
             at /home/darius/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-1.21.2/src/loom/std/unsafe_cell.rs:14:9
   8: tokio::runtime::task::core::CoreStage<T>::poll
             at /home/darius/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-1.21.2/src/runtime/task/core.rs:174:13
   9: tokio::runtime::task::harness::poll_future::{{closure}}
             at /home/darius/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-1.21.2/src/runtime/task/harness.rs:480:19
  10: <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once
             at /rustc/a55dd71d5fb0ec5a6a3a9e8c27b2127ba491ce52/library/core/src/panic/unwind_safe.rs:271:9
  11: std::panicking::try::do_call
             at /rustc/a55dd71d5fb0ec5a6a3a9e8c27b2127ba491ce52/library/std/src/panicking.rs:492:40
  12: __rust_try
  13: std::panicking::try
             at /rustc/a55dd71d5fb0ec5a6a3a9e8c27b2127ba491ce52/library/std/src/panicking.rs:456:19
  14: std::panic::catch_unwind
             at /rustc/a55dd71d5fb0ec5a6a3a9e8c27b2127ba491ce52/library/std/src/panic.rs:137:14
  15: tokio::runtime::task::harness::poll_future
             at /home/darius/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-1.21.2/src/runtime/task/harness.rs:468:18
  16: tokio::runtime::task::harness::Harness<T,S>::poll_inner
             at /home/darius/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-1.21.2/src/runtime/task/harness.rs:104:27
  17: tokio::runtime::task::harness::Harness<T,S>::poll
             at /home/darius/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-1.21.2/src/runtime/task/harness.rs:57:15
  18: tokio::runtime::task::raw::poll
             at /home/darius/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-1.21.2/src/runtime/task/raw.rs:194:5
  19: tokio::runtime::task::raw::RawTask::poll
             at /home/darius/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-1.21.2/src/runtime/task/raw.rs:134:18
  20: tokio::runtime::task::LocalNotified<S>::run
             at /home/darius/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-1.21.2/src/runtime/task/mod.rs:385:9
  21: tokio::runtime::scheduler::multi_thread::worker::Context::run_task::{{closure}}
             at /home/darius/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-1.21.2/src/runtime/scheduler/multi_thread/worker.rs:421:13
  22: tokio::coop::with_budget::{{closure}}
             at /home/darius/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-1.21.2/src/coop.rs:102:9
  23: std::thread::local::LocalKey<T>::try_with
             at /rustc/a55dd71d5fb0ec5a6a3a9e8c27b2127ba491ce52/library/std/src/thread/local.rs:445:16
  24: std::thread::local::LocalKey<T>::with
             at /rustc/a55dd71d5fb0ec5a6a3a9e8c27b2127ba491ce52/library/std/src/thread/local.rs:421:9
  25: tokio::coop::with_budget
             at /home/darius/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-1.21.2/src/coop.rs:95:5
  26: tokio::coop::budget
             at /home/darius/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-1.21.2/src/coop.rs:72:5
  27: tokio::runtime::scheduler::multi_thread::worker::Context::run_task
             at /home/darius/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-1.21.2/src/runtime/scheduler/multi_thread/worker.rs:420:9
  28: tokio::runtime::scheduler::multi_thread::worker::Context::run
             at /home/darius/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-1.21.2/src/runtime/scheduler/multi_thread/worker.rs:387:24
  29: tokio::runtime::scheduler::multi_thread::worker::run::{{closure}}
             at /home/darius/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-1.21.2/src/runtime/scheduler/multi_thread/worker.rs:372:17
  30: tokio::macros::scoped_tls::ScopedKey<T>::set
             at /home/darius/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-1.21.2/src/macros/scoped_tls.rs:61:9
  31: tokio::runtime::scheduler::multi_thread::worker::run
             at /home/darius/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-1.21.2/src/runtime/scheduler/multi_thread/worker.rs:369:5
  32: tokio::runtime::scheduler::multi_thread::worker::Launch::launch::{{closure}}
             at /home/darius/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-1.21.2/src/runtime/scheduler/multi_thread/worker.rs:348:45
  33: <tokio::runtime::blocking::task::BlockingTask<T> as core::future::future::Future>::poll
             at /home/darius/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-1.21.2/src/runtime/blocking/task.rs:42:21
  34: tokio::runtime::task::core::CoreStage<T>::poll::{{closure}}
             at /home/darius/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-1.21.2/src/runtime/task/core.rs:184:17
  35: tokio::loom::std::unsafe_cell::UnsafeCell<T>::with_mut
             at /home/darius/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-1.21.2/src/loom/std/unsafe_cell.rs:14:9
  36: tokio::runtime::task::core::CoreStage<T>::poll
             at /home/darius/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-1.21.2/src/runtime/task/core.rs:174:13
  37: tokio::runtime::task::harness::poll_future::{{closure}}
             at /home/darius/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-1.21.2/src/runtime/task/harness.rs:480:19
  38: <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once
             at /rustc/a55dd71d5fb0ec5a6a3a9e8c27b2127ba491ce52/library/core/src/panic/unwind_safe.rs:271:9
  39: std::panicking::try::do_call
             at /rustc/a55dd71d5fb0ec5a6a3a9e8c27b2127ba491ce52/library/std/src/panicking.rs:492:40
  40: __rust_try
  41: std::panicking::try
             at /rustc/a55dd71d5fb0ec5a6a3a9e8c27b2127ba491ce52/library/std/src/panicking.rs:456:19
  42: std::panic::catch_unwind
             at /rustc/a55dd71d5fb0ec5a6a3a9e8c27b2127ba491ce52/library/std/src/panic.rs:137:14
  43: tokio::runtime::task::harness::poll_future
             at /home/darius/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-1.21.2/src/runtime/task/harness.rs:468:18
  44: tokio::runtime::task::harness::Harness<T,S>::poll_inner
             at /home/darius/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-1.21.2/src/runtime/task/harness.rs:104:27
  45: tokio::runtime::task::harness::Harness<T,S>::poll
             at /home/darius/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-1.21.2/src/runtime/task/harness.rs:57:15
  46: tokio::runtime::task::raw::poll
             at /home/darius/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-1.21.2/src/runtime/task/raw.rs:194:5
  47: tokio::runtime::task::raw::RawTask::poll
             at /home/darius/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-1.21.2/src/runtime/task/raw.rs:134:18
  48: tokio::runtime::task::UnownedTask<S>::run
             at /home/darius/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-1.21.2/src/runtime/task/mod.rs:422:9
  49: tokio::runtime::blocking::pool::Task::run
             at /home/darius/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-1.21.2/src/runtime/blocking/pool.rs:111:9
  50: tokio::runtime::blocking::pool::Inner::run
             at /home/darius/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-1.21.2/src/runtime/blocking/pool.rs:346:17
  51: tokio::runtime::blocking::pool::Spawner::spawn_thread::{{closure}}
             at /home/darius/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-1.21.2/src/runtime/blocking/pool.rs:321:13

Will need to try to get logs when this happens (as well as a full backtrace)

@dariusc93
Copy link
Owner Author

Looking at the code, it looks to be a debug_assert so this shouldnt happen with a release profile, however should look into whats causing it at random.

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