tikv / grpc-rs

The gRPC library for Rust built on C Core library and futures
Apache License 2.0
1.8k stars 253 forks source link

Unstable test: test_client_cancel_on_dropping #242

Open ice1000 opened 5 years ago

ice1000 commented 5 years ago

Currently the unit test is not so stable. This code sometimes get crashed:

https://github.com/pingcap/grpc-rs/blob/c93d7d4b9b18b66187a5efd6c7d7eec8d38f192f/tests/cases/cancel.rs#L126-L128

nrc commented 5 years ago

E.g.:

thread 'cases::cancel::test_client_cancel_on_dropping' panicked at 'expected cancel, but got: RemoteStopped', tests/cases/cancel.rs:127:24
stack backtrace:
   0: backtrace::backtrace::libunwind::trace
             at /cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.29/src/backtrace/libunwind.rs:88
   1: backtrace::backtrace::trace_unsynchronized
             at /cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.29/src/backtrace/mod.rs:66
   2: std::sys_common::backtrace::_print
             at src/libstd/sys_common/backtrace.rs:47
   3: std::sys_common::backtrace::print
             at src/libstd/sys_common/backtrace.rs:36
   4: std::panicking::default_hook::{{closure}}
             at src/libstd/panicking.rs:200
   5: std::panicking::default_hook
             at src/libstd/panicking.rs:211
   6: std::panicking::rust_panic_with_hook
             at src/libstd/panicking.rs:477
   7: std::panicking::continue_panic_fmt
             at src/libstd/panicking.rs:384
   8: std::panicking::begin_panic_fmt
             at src/libstd/panicking.rs:339
   9: tests::cases::cancel::check_cancel
             at tests/cases/cancel.rs:127
  10: tests::cases::cancel::test_client_cancel_on_dropping
             at tests/cases/cancel.rs:185
  11: tests::cases::cancel::test_client_cancel_on_dropping::{{closure}}
             at tests/cases/cancel.rs:150
  12: core::ops::function::FnOnce::call_once
             at /rustc/bc2e84ca0939b73fcf1768209044432f6a15c2e5/src/libcore/ops/function.rs:231
  13: <alloc::boxed::Box<F> as core::ops::function::FnOnce<A>>::call_once
             at /rustc/bc2e84ca0939b73fcf1768209044432f6a15c2e5/src/liballoc/boxed.rs:766
  14: __rust_maybe_catch_panic
             at src/libpanic_unwind/lib.rs:82
  15: std::panicking::try
             at /rustc/bc2e84ca0939b73fcf1768209044432f6a15c2e5/src/libstd/panicking.rs:275
  16: std::panic::catch_unwind
             at /rustc/bc2e84ca0939b73fcf1768209044432f6a15c2e5/src/libstd/panic.rs:394
  17: test::run_test::run_test_inner::{{closure}}
             at src/libtest/lib.rs:1472
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
failures:
    cases::cancel::test_client_cancel_on_dropping
test result: FAILED. 7 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out
error: test failed, to rerun pass '-p grpcio --test tests'
The command "GRPCIO_SYS_USE_PKG_CONFIG=1 cargo test --all" exited with 101.