-
Notifications
You must be signed in to change notification settings - Fork 187
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
libgit2: Disable connection caching #713
Conversation
Test images based on version 830771f:
UPDATE: changed IAC image to v0.22.2-cacheless |
1df3236
to
6d51758
Compare
New image for source controller based on 6d51758: UPDATE: replace image with official release candidate version. |
6d51758
to
1266bea
Compare
Removed "enable managed transport" commit from this PR, we shall treat it as a separate PR. |
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.
Besides the nitpick, this looks good to me. Thanks @pjbgf 🙇
1266bea
to
7bcd2ee
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.
just one nitpick, otherwise it LGTM! 🚀
Connection caching was a feature created to resolve upstream issues raised from concurrent ssh connections. Some scenarios were based on multiple key exchange operations happening at the same time. This PR removes the connection caching, and instead: - Services Session.StdoutPipe() as soon as possible, as it is a known source of blocking SSH connections. - Reuse SSH connection within the same subtransport, eliminating the need for new handshakes when talking with the same server. - Simplifies the entire transport logic for better maintainability. Signed-off-by: Paulo Gomes <[email protected]>
7bcd2ee
to
ce92881
Compare
Connection caching was a feature created to resolve upstream issues raised from concurrent ssh connections.
Some scenarios were based on multiple key exchange operations happening at the same time.
This PR removes the connection caching, and instead:
Session.StdoutPipe()
as soon as possible, as it is a known source of blocking SSH connections.with the same server.
This also fixes the panic below when connecting to AWS CodeCommit with Managed Transport.
Note that this logic is not captured by the panic recovery due to its execution path not starting from the Checkout func.
Additional changes are being made to completely remove the dependency to
SmartCertificateCheck
, which will ensure this does not happen at all going forwards. But that will be dealt with in subsequent PRs.