-
Notifications
You must be signed in to change notification settings - Fork 94
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
fix(rpc): make sure to run rpc request futures till completion #2237
Conversation
when ran directly inside hyper's service function, it might get aborted mid-way when a client disconnects, leaving the future in complete. this is an issue as we might have some code that need to be executed atomically inside any part of the code base that could be triggered by an RPC request. if the client disconnects, such a function will abort on the next await call, leaving us with non-atomic state (e.g. partial update for a map and its inverse).
let me move this back to in progress and try to give it one more shot at finding if there is a config we can set to let hyper not shutdown our request resolver future when the client disconnects. EDIT: Nope, there is no config option in hyper for that. |
28887f0
to
783980b
Compare
looks like this was only here to simulate a panic from the rpc end. why you ask? i guess we will never know!
783980b
to
b95110e
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
lgtm 🚀
No need to revert the change, I will include an entry about it in the changelog #2240 (comment). I will check this PR and will close it if everything is fine. As I already reviewed #1966, there should be no issues or any changes required I think. |
Duplicate as it was handled in #1966 |
when ran directly inside hyper's service function, it might get aborted mid-way when a client disconnects, leaving the future incomplete.
this is an issue as we might have some code that need to be executed atomically inside any part of the code base that could be triggered by an RPC request. if the client disconnects, such a function will abort on the next await call, leaving us with non-atomic state (e.g. partial update for a map but not its inverse).