Final final v1.9.3 updates by ethomson · Pull Request #7250 · libgit2/libgit2 · GitHub
Skip to content

Final final v1.9.3 updates - #7250

Merged
ethomson merged 10 commits into
maint/v1.9from
ethomson/v1.9.3
May 4, 2026
Merged

ethomson merged 10 commits into
maint/v1.9from
ethomson/v1.9.3

Conversation

@ethomson

@ethomson ethomson commented May 4, 2026

Copy link
Copy Markdown
Member

No description provided.

ambv and others added 10 commits May 4, 2026 21:44
This patch makes two improvements:
1. In case of LIBSSH2_ERROR_TIMEOUT, don't loop forever
2. Enable TCP keepalive on all sockets to detect dead connections

The added test demonstrates the hang without the patch.
Remove deprecated OpenSSH configuration options from ci/test.sh:
- Protocol 2 (deprecated since OpenSSH 7.4)
- RSAAuthentication (deprecated since OpenSSH 7.4)
- ChallengeResponseAuthentication (deprecated since OpenSSH 9.6)
- HostCertificate pointing to .pub file (invalid configuration)
- Duplicate HostKey directive

These options were causing warnings with OpenSSH 10.0 in Fedora Rawhide
and preventing SSH tests from functioning properly.

Tested with OpenSSH 10.0p2 on Fedora Rawhide.
Update our CI to use poxygit v0.8.1, which has additional mocking and
debugging capabilities.

As part of this, the paths to the `speed` test routes changed - now they
are `speed:<n>` where `<n>` is the speed to emulate in bps.
poxygit now supports a "specification" within the URI that can provide
additional details about the mock/debugging connection. The `:none`
suffix on the redirect request indicates that the proxy should send a 0
byte response body.
When we were done reading headers, we checked if we needed to read a
body, or if we were done. The body check was done by looking at the
transfer encoding type and the content type. If we were chunked, then we
know we have a body (it may be a zero byte body, but we would need to
read the chunk length to know this). But looking at the content _type_
was erroneous; we should have been looking at the content _length_.

The effect of this is that when a server sends a zero byte response
with a content _type_, we try to go read the body, which does not exist.
We will hang waiting for the body that the server will never send.

Correct this typo. Now we will try to read the body if there was a
content _length_ specified, or if the transfer encoding is chunked.
@ethomson
ethomson merged commit 1affb8b into maint/v1.9 May 4, 2026
19 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants