-
Notifications
You must be signed in to change notification settings - Fork 180
RUST-1437 Send endSessions
on client shutdown
#1216
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
Merged
Merged
Changes from 1 commit
Commits
Show all changes
7 commits
Select commit
Hold shift + click to select a range
1fc8563
RUST-1437 Send endSessions on client shutdown
isabelatkinson 97b52f3
sync logging test
isabelatkinson e81edbb
shut down test client on close
isabelatkinson 130a7f6
fmt
isabelatkinson 4f15d35
stronger debug assert
isabelatkinson fb28f77
i64 -> f64
isabelatkinson 82c0d7a
use command monitoring
isabelatkinson File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
fmt
- Loading branch information
commit 130a7f679a76cd3b2c37672421e992b979016935
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
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.
Subtle bug - spawning a future in the client's
drop
that itself holds onto a client means that the actualClientInner
won't drop until the future finishes running. This is not a big problem, as the types contained inClientInner
don't require any server-side cleanup; however, theTopology
emits some events upon close, and if the runtime shuts down before the spawnedendSessions
future finishes, those events won't be emitted (see here). The fix here is just to runshutdown
in thisclose
operation forClient
so that no future is spawned when the client is dropped.This did get me thinking that we could speed up these
drop
implementations by sending them as unacknowledged writes withmoreToCome
set, since we're ignoring the results anyway. We would need to add some functionality to the operation/message layer, but I do think this would decrease the likelihood of these spawned tasks not completing before the runtime shuts down.