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

[Bug]: The test_no_root_user_do_admin_ops will pass despite the panic #267

Closed
1 task done
Phoenix500526 opened this issue May 11, 2023 · 1 comment · Fixed by #355
Closed
1 task done

[Bug]: The test_no_root_user_do_admin_ops will pass despite the panic #267

Phoenix500526 opened this issue May 11, 2023 · 1 comment · Fixed by #355
Labels
bug Something isn't working

Comments

@Phoenix500526
Copy link
Collaborator

Description about the bug

As the title described, the test case test_no_root_user_do_admin_ops will panic, but it still passes the test. This is not a good practice.

Version

0.3.0

Relevant log output

running 1 test
thread 'tokio-runtime-worker' panicked at 'propose err SyncedError("ExecuteError(\"permission denied\")")', /home/jiawei/open-source/Xline/xline/src/server/auth_server.rs:108:21
stack backtrace:
   0: rust_begin_unwind
             at /rustc/d5a82bbd26e1ad8b7401f6a718a9c57c96905483/library/std/src/panicking.rs:575:5
   1: core::panicking::panic_fmt
             at /rustc/d5a82bbd26e1ad8b7401f6a718a9c57c96905483/library/core/src/panicking.rs:64:14
   2: xline::server::auth_server::AuthServer<S>::propose::{{closure}}::{{closure}}
             at ./src/server/auth_server.rs:108:21
   3: core::result::Result<T,E>::map_err
             at /rustc/d5a82bbd26e1ad8b7401f6a718a9c57c96905483/library/core/src/result.rs:861:27
   4: xline::server::auth_server::AuthServer<S>::propose::{{closure}}
             at ./src/server/auth_server.rs:104:39
   5: xline::server::auth_server::AuthServer<S>::handle_req::{{closure}}
             at ./src/server/auth_server.rs:145:71
   6: <xline::server::auth_server::AuthServer<S> as xline::rpc::etcdserverpb::auth_server::Auth>::user_add::{{closure}}
             at ./src/server/auth_server.rs:234:40
   7: <core::pin::Pin<P> as core::future::future::Future>::poll
             at /rustc/d5a82bbd26e1ad8b7401f6a718a9c57c96905483/library/core/src/future/future.rs:124:9
   8: <<xline::rpc::etcdserverpb::auth_server::AuthServer<T> as tower_service::Service<http::request::Request<B>>>::call::UserAddSvc<T> as tonic::server::service::UnaryService<xline::rpc::etcdserverpb::AuthUserAddRequest>>::call::{{closure}}
             at /home/jiawei/open-source/Xline/target/debug/build/xline-f0729069f3b92904/out/etcdserverpb.rs:4259:78
   9: <core::pin::Pin<P> as core::future::future::Future>::poll
             at /rustc/d5a82bbd26e1ad8b7401f6a718a9c57c96905483/library/core/src/future/future.rs:124:9
  10: tonic::server::grpc::Grpc<T>::unary::{{closure}}
             at /home/jiawei/.cargo/registry/src/mirrors.tuna.tsinghua.edu.cn-df7c3c540f42cdbd/tonic-0.7.2/src/server/grpc.rs:200:13
  11: <xline::rpc::etcdserverpb::auth_server::AuthServer<T> as tower_service::Service<http::request::Request<B>>>::call::{{closure}}
             at /home/jiawei/open-source/Xline/target/debug/build/xline-f0729069f3b92904/out/etcdserverpb.rs:4275:58
  12: <core::pin::Pin<P> as core::future::future::Future>::poll
             at /rustc/d5a82bbd26e1ad8b7401f6a718a9c57c96905483/library/core/src/future/future.rs:124:9
  13: <F as futures_core::future::TryFuture>::try_poll
             at /home/jiawei/.cargo/registry/src/mirrors.tuna.tsinghua.edu.cn-df7c3c540f42cdbd/futures-core-0.3.28/src/future.rs:82:9
  14: <futures_util::future::try_future::into_future::IntoFuture<Fut> as core::future::future::Future>::poll
             at /home/jiawei/.cargo/registry/src/mirrors.tuna.tsinghua.edu.cn-df7c3c540f42cdbd/futures-util-0.3.28/src/future/try_future/into_future.rs:34:9
  15: <futures_util::future::future::map::Map<Fut,F> as core::future::future::Future>::poll
             at /home/jiawei/.cargo/registry/src/mirrors.tuna.tsinghua.edu.cn-df7c3c540f42cdbd/futures-util-0.3.28/src/future/future/map.rs:55:37
  16: <futures_util::future::future::Map<Fut,F> as core::future::future::Future>::poll
             at /home/jiawei/.cargo/registry/src/mirrors.tuna.tsinghua.edu.cn-df7c3c540f42cdbd/futures-util-0.3.28/src/lib.rs:91:13
  17: <futures_util::future::try_future::MapOk<Fut,F> as core::future::future::Future>::poll
             at /home/jiawei/.cargo/registry/src/mirrors.tuna.tsinghua.edu.cn-df7c3c540f42cdbd/futures-util-0.3.28/src/lib.rs:91:13
  18: <tower::util::map_response::MapResponseFuture<F,N> as core::future::future::Future>::poll
             at /home/jiawei/.cargo/registry/src/mirrors.tuna.tsinghua.edu.cn-df7c3c540f42cdbd/tower-0.4.13/src/macros.rs:38:17
  19: <core::pin::Pin<P> as core::future::future::Future>::poll
             at /rustc/d5a82bbd26e1ad8b7401f6a718a9c57c96905483/library/core/src/future/future.rs:124:9
  20: <tower::util::oneshot::Oneshot<S,Req> as core::future::future::Future>::poll
             at /home/jiawei/.cargo/registry/src/mirrors.tuna.tsinghua.edu.cn-df7c3c540f42cdbd/tower-0.4.13/src/util/oneshot.rs:97:38
  21: <axum::routing::route::RouteFuture<B,E> as core::future::future::Future>::poll
             at /home/jiawei/.cargo/registry/src/mirrors.tuna.tsinghua.edu.cn-df7c3c540f42cdbd/axum-0.5.17/src/routing/route.rs:150:61
  22: <tonic::transport::service::router::RoutesFuture as core::future::future::Future>::poll
             at /home/jiawei/.cargo/registry/src/mirrors.tuna.tsinghua.edu.cn-df7c3c540f42cdbd/tonic-0.7.2/src/transport/service/router.rs:90:36
  23: <tonic::transport::service::grpc_timeout::ResponseFuture<F> as core::future::future::Future>::poll
             at /home/jiawei/.cargo/registry/src/mirrors.tuna.tsinghua.edu.cn-df7c3c540f42cdbd/tonic-0.7.2/src/transport/service/grpc_timeout.rs:88:38
  24: <tower::util::either::Either<A,B> as core::future::future::Future>::poll
             at /home/jiawei/.cargo/registry/src/mirrors.tuna.tsinghua.edu.cn-df7c3c540f42cdbd/tower-0.4.13/src/util/either.rs:71:57
  25: <tonic::transport::server::recover_error::ResponseFuture<F> as core::future::future::Future>::poll
             at /home/jiawei/.cargo/registry/src/mirrors.tuna.tsinghua.edu.cn-df7c3c540f42cdbd/tonic-0.7.2/src/transport/server/recover_error.rs:63:20
  26: <tonic::transport::server::SvcFuture<F> as core::future::future::Future>::poll
             at /home/jiawei/.cargo/registry/src/mirrors.tuna.tsinghua.edu.cn-df7c3c540f42cdbd/tonic-0.7.2/src/transport/server/mod.rs:757:50
  27: <core::pin::Pin<P> as core::future::future::Future>::poll
             at /rustc/d5a82bbd26e1ad8b7401f6a718a9c57c96905483/library/core/src/future/future.rs:124:9
  28: hyper::proto::h2::server::H2Stream<F,B>::poll2
             at /home/jiawei/.cargo/registry/src/mirrors.tuna.tsinghua.edu.cn-df7c3c540f42cdbd/hyper-0.14.26/src/proto/h2/server.rs:458:37
  29: <hyper::proto::h2::server::H2Stream<F,B> as core::future::future::Future>::poll
             at /home/jiawei/.cargo/registry/src/mirrors.tuna.tsinghua.edu.cn-df7c3c540f42cdbd/hyper-0.14.26/src/proto/h2/server.rs:546:9
  30: tokio::runtime::task::core::Core<T,S>::poll::{{closure}}
             at /home/jiawei/.cargo/registry/src/mirrors.tuna.tsinghua.edu.cn-df7c3c540f42cdbd/tokio-1.28.0/src/runtime/task/core.rs:223:17
  31: tokio::loom::std::unsafe_cell::UnsafeCell<T>::with_mut
             at /home/jiawei/.cargo/registry/src/mirrors.tuna.tsinghua.edu.cn-df7c3c540f42cdbd/tokio-1.28.0/src/loom/std/unsafe_cell.rs:14:9
  32: tokio::runtime::task::core::Core<T,S>::poll
             at /home/jiawei/.cargo/registry/src/mirrors.tuna.tsinghua.edu.cn-df7c3c540f42cdbd/tokio-1.28.0/src/runtime/task/core.rs:212:13
  33: tokio::runtime::task::harness::poll_future::{{closure}}
             at /home/jiawei/.cargo/registry/src/mirrors.tuna.tsinghua.edu.cn-df7c3c540f42cdbd/tokio-1.28.0/src/runtime/task/harness.rs:476:19
  34: <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once
             at /rustc/d5a82bbd26e1ad8b7401f6a718a9c57c96905483/library/core/src/panic/unwind_safe.rs:271:9
  35: std::panicking::try::do_call
             at /rustc/d5a82bbd26e1ad8b7401f6a718a9c57c96905483/library/std/src/panicking.rs:483:40
  36: __rust_try
  37: std::panicking::try
             at /rustc/d5a82bbd26e1ad8b7401f6a718a9c57c96905483/library/std/src/panicking.rs:447:19
  38: std::panic::catch_unwind
             at /rustc/d5a82bbd26e1ad8b7401f6a718a9c57c96905483/library/std/src/panic.rs:137:14
  39: tokio::runtime::task::harness::poll_future
             at /home/jiawei/.cargo/registry/src/mirrors.tuna.tsinghua.edu.cn-df7c3c540f42cdbd/tokio-1.28.0/src/runtime/task/harness.rs:464:18
  40: tokio::runtime::task::harness::Harness<T,S>::poll_inner
             at /home/jiawei/.cargo/registry/src/mirrors.tuna.tsinghua.edu.cn-df7c3c540f42cdbd/tokio-1.28.0/src/runtime/task/harness.rs:198:27
  41: tokio::runtime::task::harness::Harness<T,S>::poll
             at /home/jiawei/.cargo/registry/src/mirrors.tuna.tsinghua.edu.cn-df7c3c540f42cdbd/tokio-1.28.0/src/runtime/task/harness.rs:152:15
  42: tokio::runtime::task::raw::poll
             at /home/jiawei/.cargo/registry/src/mirrors.tuna.tsinghua.edu.cn-df7c3c540f42cdbd/tokio-1.28.0/src/runtime/task/raw.rs:255:5
  43: tokio::runtime::task::raw::RawTask::poll
             at /home/jiawei/.cargo/registry/src/mirrors.tuna.tsinghua.edu.cn-df7c3c540f42cdbd/tokio-1.28.0/src/runtime/task/raw.rs:200:18
  44: tokio::runtime::task::LocalNotified<S>::run
             at /home/jiawei/.cargo/registry/src/mirrors.tuna.tsinghua.edu.cn-df7c3c540f42cdbd/tokio-1.28.0/src/runtime/task/mod.rs:394:9
  45: tokio::runtime::scheduler::multi_thread::worker::Context::run_task::{{closure}}
             at /home/jiawei/.cargo/registry/src/mirrors.tuna.tsinghua.edu.cn-df7c3c540f42cdbd/tokio-1.28.0/src/runtime/scheduler/multi_thread/worker.rs:487:21
  46: tokio::runtime::coop::with_budget
             at /home/jiawei/.cargo/registry/src/mirrors.tuna.tsinghua.edu.cn-df7c3c540f42cdbd/tokio-1.28.0/src/runtime/coop.rs:107:5
  47: tokio::runtime::coop::budget
             at /home/jiawei/.cargo/registry/src/mirrors.tuna.tsinghua.edu.cn-df7c3c540f42cdbd/tokio-1.28.0/src/runtime/coop.rs:73:5
  48: tokio::runtime::scheduler::multi_thread::worker::Context::run_task
             at /home/jiawei/.cargo/registry/src/mirrors.tuna.tsinghua.edu.cn-df7c3c540f42cdbd/tokio-1.28.0/src/runtime/scheduler/multi_thread/worker.rs:463:9
  49: tokio::runtime::scheduler::multi_thread::worker::Context::run
             at /home/jiawei/.cargo/registry/src/mirrors.tuna.tsinghua.edu.cn-df7c3c540f42cdbd/tokio-1.28.0/src/runtime/scheduler/multi_thread/worker.rs:426:24
  50: tokio::runtime::scheduler::multi_thread::worker::run::{{closure}}
             at /home/jiawei/.cargo/registry/src/mirrors.tuna.tsinghua.edu.cn-df7c3c540f42cdbd/tokio-1.28.0/src/runtime/scheduler/multi_thread/worker.rs:406:17
  51: tokio::macros::scoped_tls::ScopedKey<T>::set
             at /home/jiawei/.cargo/registry/src/mirrors.tuna.tsinghua.edu.cn-df7c3c540f42cdbd/tokio-1.28.0/src/macros/scoped_tls.rs:61:9
  52: tokio::runtime::scheduler::multi_thread::worker::run
             at /home/jiawei/.cargo/registry/src/mirrors.tuna.tsinghua.edu.cn-df7c3c540f42cdbd/tokio-1.28.0/src/runtime/scheduler/multi_thread/worker.rs:403:5
  53: tokio::runtime::scheduler::multi_thread::worker::Launch::launch::{{closure}}
             at /home/jiawei/.cargo/registry/src/mirrors.tuna.tsinghua.edu.cn-df7c3c540f42cdbd/tokio-1.28.0/src/runtime/scheduler/multi_thread/worker.rs:365:45
  54: <tokio::runtime::blocking::task::BlockingTask<T> as core::future::future::Future>::poll
             at /home/jiawei/.cargo/registry/src/mirrors.tuna.tsinghua.edu.cn-df7c3c540f42cdbd/tokio-1.28.0/src/runtime/blocking/task.rs:42:21
  55: tokio::runtime::task::core::Core<T,S>::poll::{{closure}}
             at /home/jiawei/.cargo/registry/src/mirrors.tuna.tsinghua.edu.cn-df7c3c540f42cdbd/tokio-1.28.0/src/runtime/task/core.rs:223:17
  56: tokio::loom::std::unsafe_cell::UnsafeCell<T>::with_mut
             at /home/jiawei/.cargo/registry/src/mirrors.tuna.tsinghua.edu.cn-df7c3c540f42cdbd/tokio-1.28.0/src/loom/std/unsafe_cell.rs:14:9
  57: tokio::runtime::task::core::Core<T,S>::poll
             at /home/jiawei/.cargo/registry/src/mirrors.tuna.tsinghua.edu.cn-df7c3c540f42cdbd/tokio-1.28.0/src/runtime/task/core.rs:212:13
  58: tokio::runtime::task::harness::poll_future::{{closure}}
             at /home/jiawei/.cargo/registry/src/mirrors.tuna.tsinghua.edu.cn-df7c3c540f42cdbd/tokio-1.28.0/src/runtime/task/harness.rs:476:19
  59: <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once
             at /rustc/d5a82bbd26e1ad8b7401f6a718a9c57c96905483/library/core/src/panic/unwind_safe.rs:271:9
  60: std::panicking::try::do_call
             at /rustc/d5a82bbd26e1ad8b7401f6a718a9c57c96905483/library/std/src/panicking.rs:483:40
  61: __rust_try
  62: std::panicking::try
             at /rustc/d5a82bbd26e1ad8b7401f6a718a9c57c96905483/library/std/src/panicking.rs:447:19
  63: std::panic::catch_unwind
             at /rustc/d5a82bbd26e1ad8b7401f6a718a9c57c96905483/library/std/src/panic.rs:137:14
  64: tokio::runtime::task::harness::poll_future
             at /home/jiawei/.cargo/registry/src/mirrors.tuna.tsinghua.edu.cn-df7c3c540f42cdbd/tokio-1.28.0/src/runtime/task/harness.rs:464:18
  65: tokio::runtime::task::harness::Harness<T,S>::poll_inner
             at /home/jiawei/.cargo/registry/src/mirrors.tuna.tsinghua.edu.cn-df7c3c540f42cdbd/tokio-1.28.0/src/runtime/task/harness.rs:198:27
  66: tokio::runtime::task::harness::Harness<T,S>::poll
             at /home/jiawei/.cargo/registry/src/mirrors.tuna.tsinghua.edu.cn-df7c3c540f42cdbd/tokio-1.28.0/src/runtime/task/harness.rs:152:15
  67: tokio::runtime::task::raw::poll
             at /home/jiawei/.cargo/registry/src/mirrors.tuna.tsinghua.edu.cn-df7c3c540f42cdbd/tokio-1.28.0/src/runtime/task/raw.rs:255:5
  68: tokio::runtime::task::raw::RawTask::poll
             at /home/jiawei/.cargo/registry/src/mirrors.tuna.tsinghua.edu.cn-df7c3c540f42cdbd/tokio-1.28.0/src/runtime/task/raw.rs:200:18
  69: tokio::runtime::task::UnownedTask<S>::run
             at /home/jiawei/.cargo/registry/src/mirrors.tuna.tsinghua.edu.cn-df7c3c540f42cdbd/tokio-1.28.0/src/runtime/task/mod.rs:431:9
  70: tokio::runtime::blocking::pool::Task::run
             at /home/jiawei/.cargo/registry/src/mirrors.tuna.tsinghua.edu.cn-df7c3c540f42cdbd/tokio-1.28.0/src/runtime/blocking/pool.rs:159:9
  71: tokio::runtime::blocking::pool::Inner::run
             at /home/jiawei/.cargo/registry/src/mirrors.tuna.tsinghua.edu.cn-df7c3c540f42cdbd/tokio-1.28.0/src/runtime/blocking/pool.rs:513:17
  72: tokio::runtime::blocking::pool::Spawner::spawn_thread::{{closure}}
             at /home/jiawei/.cargo/registry/src/mirrors.tuna.tsinghua.edu.cn-df7c3c540f42cdbd/tokio-1.28.0/src/runtime/blocking/pool.rs:471:13
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
test test_no_root_user_do_admin_ops ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 8 filtered out; finished in 1.59s

Code of Conduct

  • I agree to follow this project's Code of Conduct
@Phoenix500526 Phoenix500526 added the bug Something isn't working label May 11, 2023
@bsbds
Copy link
Collaborator

bsbds commented Jun 29, 2023

We can have test builds abort on panic, but there's no way for Cargo to support profile for panic in workspace(rust-lang/cargo#8264).

The tokio runtime also doesn't support task panic handling (tokio-rs/tokio#2002).

I find the only workaround is too add panic override hook at the beginning of every tokio tests.

Some discussions in another project: build-trust/ockam#2479

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants