Repository navigation
Conversation
#1036 - closes the xgress outright from edgeConnXgress.close when the circuit has not started, since the EOF that PeerClosed sends waits on a send buffer that only runs once the circuit starts; Close after CompleteAcceptFailed, Close without completing the accept, and the setup-failure cleanup in newChildConnection now return at once instead of after CircuitStartTimeout - drops a conn the mux rejected as a duplicate id instead of closing it, so its teardown no longer removes the live conn registered under that id - bounds the end-of-circuit send in Xgress.Close with a deadline, so a stalled router channel cannot hold Close - skips the circuit start timeout warning and close for an xgress that is already closed - tests each path through newChildConnection with no circuit start, Close against a stalled data plane, and the start timer on a closed xgress; each test fails without its change
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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Fixes #1036.
An SDK-hosted xgress conn whose circuit never started blocked in
CloseuntilCircuitStartTimeout(three minutes), becausePeerClosedsends its EOF into a terminator send buffer that only runs once the circuit starts. A refused dial never starts its circuit, soCompleteAcceptFailedfollowed byClosealways hit this, stalling one-at-a-time accept loops such as the ziti tunneler's.closenow closes the xgress outright when the circuit hasn't started.Two things on the same path change with it. A conn the mux rejected as a duplicate id is dropped rather than closed, since its teardown would remove the live conn holding that id.
Xgress.Closenow bounds its end-of-circuit send, so a stalled router channel can't hold it. The circuit start timer also no longer warns about an xgress that is already closed.The backport to
release-v1.8.xis tracked in #1037.