Closed
Description
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:
- started the server
- started the client
- 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.
Metadata
Metadata
Assignees
Labels
No labels