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

Calculator example: thread panicked while processing panic. Illegal instruction #11

Closed
lilianmoraru opened this issue Jan 20, 2016 · 4 comments

Comments

@lilianmoraru
Copy link

I tested the calculator example with the new GJ modifications.
It works ok, but I decided to see what happens if I close the server(let's say it crashes) while the client is doing those operations:

Evaluating a literal...
PASS
Using add and subtract... 
PASS
Pipelining eval() calls... 
PASS
Defining functions... 
PASS
Using a callback... 
thread '<main>' panicked at 'no connection?: Error { kind: Failed, description: "Peer disconnected." }', ../src/libcore/result.rs:709
stack backtrace:
   1:     0x55de0ceaf8a0 - sys::backtrace::tracing::imp::write::h369c90f18faa03a0kju
   2:     0x55de0ceb1ca5 - panicking::default_handler::_<closure>::closure.42495
   3:     0x55de0ceb174f - panicking::default_handler::h778d598585cd05bamwy
   4:     0x55de0cea61f6 - sys_common::unwind::begin_unwind_inner::h400a80a71d80060aRbt
   5:     0x55de0cea6638 - sys_common::unwind::begin_unwind_fmt::hcde243e24e2f971aXat
   6:     0x55de0ceaeee1 - rust_begin_unwind
   7:     0x55de0cee365f - panicking::panic_fmt::he06a3cda7c35468bzYL
   8:     0x55de0cd24710 - result::Result<T, E>::expect::h1918717008553278712
                        at ../src/libcore/macros.rs:29
   9:     0x55de0cd28e07 - rpc::ImportClient<VatId>.Drop::drop::h3263600791047455181
                        at /home/lilian/Git/capnp-rpc-rust/src/rpc.rs:2256
  10:     0x55de0cd287bc - capnp_rpc..rpc..ImportClient<capnp_rpc..rpc_twoparty_capnp..Side>::drop.14289::h47bc5a2c373ea22d
  11:     0x55de0cd28775 - core..cell..UnsafeCell<capnp_rpc..rpc..ImportClient<capnp_rpc..rpc_twoparty_capnp..Side>>::drop.14286::hcd3f6d190e3a81e3
  12:     0x55de0cd28769 - core..cell..RefCell<capnp_rpc..rpc..ImportClient<capnp_rpc..rpc_twoparty_capnp..Side>>::drop.14283::heb5ea182a55543e0
  13:     0x55de0cd285df - rc::Rc<T>.Drop::drop::h14889393346158379036
                        at ../src/liballoc/rc.rs:458
  14:     0x55de0cd2852d - alloc..rc..Rc<core..cell..RefCell<capnp_rpc..rpc..ImportClient<capnp_rpc..rpc_twoparty_capnp..Side>>>::drop.14280::h99d05e05df432595
  15:     0x55de0cd2f23d - capnp_rpc..rpc..ClientVariant<capnp_rpc..rpc_twoparty_capnp..Side>::drop.14414::h0dc4ed5d66f8140d
  16:     0x55de0cd2f1e6 - capnp_rpc..rpc..Client<capnp_rpc..rpc_twoparty_capnp..Side>::drop.14411::h14412a7e7606c576
  17:     0x55de0ccc315c - capnp..private..capability..ClientHook $u2b$$u20$$u27$static::drop.10572::h84523cc4835ab2ce
  18:     0x55de0ccc310e - Box<capnp..private..capability..ClientHook $u2b$$u20$$u27$static$GT$::drop.10569::hc18608297c08be2b
  19:     0x55de0ccc3273 - core..result..Result<Box<capnp..private..capability..ClientHook $u2b$$u20$$u27$static$GT$$C$$u20$capnp..Error$GT$::drop.10580::hac2bf9e181e088db
  20:     0x55de0cd2f8cb - gj..private..promise_node..ForkHubStage<Box<capnp..private..capability..ClientHook $u2b$$u20$$u27$static$GT$$C$$u20$capnp..Error$GT$::drop.14446::h3baeba50eef5cb26
  21:     0x55de0cd2f856 - gj..private..promise_node..ForkHubState<Box<capnp..private..capability..ClientHook $u2b$$u20$$u27$static$GT$$C$$u20$capnp..Error$GT$::drop.14443::hf0e159f3d2ffd059
  22:     0x55de0cd2f835 - core..cell..UnsafeCell<gj..private..promise_node..ForkHubState<Box<capnp..private..capability..ClientHook $u2b$$u20$$u27$static$GT$$C$$u20$capnp..Error$GT$$GT$::drop.14440::h8d2f2ab6b83f1eec
  23:     0x55de0cd2f829 - core..cell..RefCell<gj..private..promise_node..ForkHubState<Box<capnp..private..capability..ClientHook $u2b$$u20$$u27$static$GT$$C$$u20$capnp..Error$GT$$GT$::drop.14437::h605ea0acc767ff5d
  24:     0x55de0cd2f64f - rc::Rc<T>.Drop::drop::h8055238053627070707
                        at ../src/liballoc/rc.rs:458
  25:     0x55de0cd2f59d - alloc..rc..Rc<core..cell..RefCell<gj..private..promise_node..ForkHubState<Box<capnp..private..capability..ClientHook $u2b$$u20$$u27$static$GT$$C$$u20$capnp..Error$GT$$GT$$GT$::drop.14434::h2db348b5951cb165
  26:     0x55de0cd2f579 - gj..private..promise_node..ForkHub<Box<capnp..private..capability..ClientHook $u2b$$u20$$u27$static$GT$$C$$u20$capnp..Error$GT$::drop.14431::h0b13ec9fecce461c
  27:     0x55de0cd2f565 - core..cell..UnsafeCell<gj..private..promise_node..ForkHub<Box<capnp..private..capability..ClientHook $u2b$$u20$$u27$static$GT$$C$$u20$capnp..Error$GT$$GT$::drop.14428::h2368ff7021d14108
  28:     0x55de0cd2f559 - core..cell..RefCell<gj..private..promise_node..ForkHub<Box<capnp..private..capability..ClientHook $u2b$$u20$$u27$static$GT$$C$$u20$capnp..Error$GT$$GT$::drop.14425::he504620f250a3716
  29:     0x55de0cd2f37f - rc::Rc<T>.Drop::drop::h441431654410756850
                        at ../src/liballoc/rc.rs:458
  30:     0x55de0cd2f2cd - alloc..rc..Rc<core..cell..RefCell<gj..private..promise_node..ForkHub<Box<capnp..private..capability..ClientHook $u2b$$u20$$u27$static$GT$$C$$u20$capnp..Error$GT$$GT$$GT$::drop.14422::h25432b8d27c5368e
  31:     0x55de0cd2f2b5 - gj..ForkedPromise<Box<capnp..private..capability..ClientHook $u2b$$u20$$u27$static$GT$$C$$u20$capnp..Error$GT$::drop.14419::h977fae7894267be1
  32:     0x55de0cd2f293 - capnp_rpc..rpc..PromiseClient<capnp_rpc..rpc_twoparty_capnp..Side>::drop.14416::h6abcb96efc3dede4
  33:     0x55de0cd2e298 - capnp_rpc..rpc..PromiseClient<capnp_rpc..rpc_twoparty_capnp..Side>::drop.14382::h6abcb96efc3dede4
  34:     0x55de0cd2e245 - core..cell..UnsafeCell<capnp_rpc..rpc..PromiseClient<capnp_rpc..rpc_twoparty_capnp..Side>>::drop.14379::h121afe807b7084d0
  35:     0x55de0cd2e239 - core..cell..RefCell<capnp_rpc..rpc..PromiseClient<capnp_rpc..rpc_twoparty_capnp..Side>>::drop.14376::hce427d08139ec51e
  36:     0x55de0cd2e0af - rc::Rc<T>.Drop::drop::h4286112304516009264
                        at ../src/liballoc/rc.rs:458
  37:     0x55de0cd2dffd - alloc..rc..Rc<core..cell..RefCell<capnp_rpc..rpc..PromiseClient<capnp_rpc..rpc_twoparty_capnp..Side>>>::drop.14373::h4f42b8d27b2c396a
  38:     0x55de0cd2f263 - capnp_rpc..rpc..ClientVariant<capnp_rpc..rpc_twoparty_capnp..Side>::drop.14414::h0dc4ed5d66f8140d
  39:     0x55de0cd2f1e6 - capnp_rpc..rpc..Client<capnp_rpc..rpc_twoparty_capnp..Side>::drop.14411::h14412a7e7606c576
  40:     0x55de0ccc315c - capnp..private..capability..ClientHook $u2b$$u20$$u27$static::drop.10572::h84523cc4835ab2ce
  41:     0x55de0ccc310e - Box<capnp..private..capability..ClientHook $u2b$$u20$$u27$static$GT$::drop.10569::hc18608297c08be2b
  42:     0x55de0ccc33d5 - capnp..capability..Client::drop.10615::he75493a67afe72ff
  43:     0x55de0ccc33c5 - calculator_capnp..calculator..Client::drop.10612::h5bbce9d7a01217fe
  44:     0x55de0ccd8873 - client::main::_<closure>::closure.11848
                        at /home/lilian/Git/capnp-rpc-rust/examples/calculator/client.rs:349
  45:     0x55de0ccce1f2 - EventLoop::top_level::h6489677737611779051
                        at /home/lilian/.multirust/toolchains/nightly/cargo/registry/src/github.com-88ac128001ac3a9a/gj-0.1.0/src/lib.rs:319
  46:     0x55de0ccc2cc6 - client::main::h5ed9bbe521e86d72Enc
                        at /home/lilian/Git/capnp-rpc-rust/examples/calculator/client.rs:53
  47:     0x55de0ccbfaeb - main::h0dc7555c840efac5A7c
                        at /home/lilian/Git/capnp-rpc-rust/examples/calculator/main.rs:41
  48:     0x55de0ceb13d4 - sys_common::unwind::try::try_fn::h8562656956955352622
  49:     0x55de0ceaee78 - __rust_try
  50:     0x55de0ceb1060 - rt::lang_start::h178913446130e2b6Aoy
  51:     0x55de0ccc3039 - main
  52:     0x7f6a4c173a3f - __libc_start_main
  53:     0x55de0ccbf8a8 - _start
  54:                0x0 - <unknown>
thread panicked while processing panic. aborting.
Illegal instruction (core dumped)

What I did:

  1. started the server
  2. started the client
  3. Stop the server(Ctrl + C) while the client is working

I am not sure if this is a problem in the implementation of the example or of the protocol.
If you want, I have a core dump.

@dwrensha
Copy link
Member

Thanks for the report! I believe that this is fixed by 6ffd733.

Please let me know if you hit any other problems.

@lilianmoraru
Copy link
Author

Currently doesn't want to compile:

src/rpc.rs:617:37: 617:56 error: no associated item named `disconnected` found for type `capnp::Error` in the current scope
src/rpc.rs:617                         .disconnect(Error::disconnected("Peer disconnected.".to_string()));
                                                   ^~~~~~~~~~~~~~~~~~~

I thought that it is because of nightly.
But in my case it doesn't compile on rustc 1.6.0 (c30b771ad 2016-01-19)(aka stable) and rustc 1.8.0-nightly (18b851bc5 2016-01-22).

@dwrensha
Copy link
Member

You'll need to run 'cargo update' to get capnp 0.6.1

@lilianmoraru
Copy link
Author

Thanks. I can confirm that the issue has been fixed.

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

2 participants