Re: [capnproto] Clean Disconnect Procedure

2023-10-02 Thread 'Kenton Varda' via Cap'n Proto
On Fri, Sep 29, 2023 at 3:36 PM Alex wrote: > A. How shall a peer discern between an exceptional connection closure > and a normal one? > > My proposal is to add a new message, "GOODBYE", which allows the system > to signal to its remote peer an intent to close the connection. Right, I get the

Re: [capnproto] Clean Disconnect Procedure

2023-09-29 Thread 'Alex' via Cap'n Proto
On Fri, 29 Sep 2023 14:13:08 -0500 Kenton Varda wrote: > On Fri, Sep 29, 2023 at 1:01 PM Alex wrote: > > > Currently when an EOF occurs, there is no way to discern between an > > exceptional circumstance and a normal/expected circumstance. > > > > That may be, but all we really want to decid

Re: [capnproto] Clean Disconnect Procedure

2023-09-29 Thread 'Kenton Varda' via Cap'n Proto
On Fri, Sep 29, 2023 at 1:01 PM Alex wrote: > Currently when an EOF occurs, there is no way to discern between an > exceptional circumstance and a normal/expected circumstance. > That may be, but all we really want to decide here is whether to send an abort message back to the peer. In the case

Re: [capnproto] Clean Disconnect Procedure

2023-09-29 Thread 'Alex' via Cap'n Proto
On Fri, 29 Sep 2023 11:26:05 -0500 Kenton Varda wrote: > On Wed, Sep 27, 2023 at 4:37 PM 'Alex' via Cap'n Proto < > capnproto@googlegroups.com> wrote: > > > 1. I would like to add a new RPC Message in rpc.capnp: > > > > goodbye @14 :Void; > > > > This message indicates to the recipient that th

Re: [capnproto] Clean Disconnect Procedure

2023-09-29 Thread 'Kenton Varda' via Cap'n Proto
On Wed, Sep 27, 2023 at 4:37 PM 'Alex' via Cap'n Proto < capnproto@googlegroups.com> wrote: > 1. I would like to add a new RPC Message in rpc.capnp: > > goodbye @14 :Void; > > This message indicates to the recipient that the sender has nothing > more to say, and that it should stop read()ing the s

Re: [capnproto] Clean Disconnect Procedure

2023-09-27 Thread 'Alex' via Cap'n Proto
Thank you for the info, Kenton. I've been looking deeply at the design of the RpcSystem, and I have a couple thoughts/questions: 1. I would like to add a new RPC Message in rpc.capnp: goodbye @14 :Void; This message indicates to the recipient that the sender has nothing more to say, and that it

Re: [capnproto] Clean Disconnect Procedure

2023-09-27 Thread 'Kenton Varda' via Cap'n Proto
(Happy to accept a PR. The relevant code is in `messageLoop()` and `RpcConnectionState::disconnect()` in `rpc.c++`.) On Wed, Sep 27, 2023 at 2:05 PM Kenton Varda wrote: > Indeed, there isn't really a clean shutdown mechanism right now. I guess > it hasn't come up as a priority because in most us

Re: [capnproto] Clean Disconnect Procedure

2023-09-27 Thread 'Kenton Varda' via Cap'n Proto
Indeed, there isn't really a clean shutdown mechanism right now. I guess it hasn't come up as a priority because in most use cases we just haven't really cared if there's a TCP RST triggered under the hood... since we're already killing the connection, we ignore that error anyway. I suppose what w

[capnproto] Clean Disconnect Procedure

2023-09-21 Thread 'Alex' via Cap'n Proto
Hi all, I am designing an application (in C++) where, upon invocation of a particular RPC call, both the server and the client agree to cleanly disconnect from one another. By "cleanly", I mean that both the server and the client send a TCP FIN/ACK and nothing more (e.g. no RSTs). Unfortunately, i