-
Notifications
You must be signed in to change notification settings - Fork 1
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
mgnp: better error handling #23
Labels
enhancement
New feature or request
Comments
some notes about the design given here:
|
i think the best way to propagate connection RESETs is to stick a first-class notion of "channel closed with error" into also, it would be nice if an attempt to send a message through a |
hawkw
added a commit
that referenced
this issue
Nov 22, 2023
This branch implements connection-level resets, as described in #23. In order to implement resets, I've added support for closing a `tricky-pipe` channel with a typed error. Both the sender and receiver can close the channel with an error, and when this occurs, both sides will return that error when receiving/sending. This allows us to easily propagate connection-level resets from the peer to a local client/server when a reset message is received on the wire. I have *not* implemented global resets on wire-level errors yet. I plan to do that in a subsequent PR.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
right now (as of 87dc51d) we handle frame decode/encode errors by "just skipping the frame", and wire errors by "just stop running the interface". here's what we should do instead, IMO:
DATA
orCONNECT
frame, then: send an error back to the local conn?ACK
,NAK
orRESET
then: we're probably fucked, blow up the whole link?RESET
due to a previous error, then: hahaha we're Super Fucked, destroy everything as violently as possibleimo if the
Wire
sees an error that it's capable of retrying or believes to be ignorable, it should just ... do that? and the only errors that should bubble up from theWire
are fatal-ish and should blow up the whole interface.currently, wire errors just make us stop the interface state machine. they should actually send errors on all existing local connections.
The text was updated successfully, but these errors were encountered: