common : retry HTTP requests over IPv4 when IPv6 connect fails#23933
Open
CptTZ wants to merge 1 commit into
Open
common : retry HTTP requests over IPv4 when IPv6 connect fails#23933CptTZ wants to merge 1 commit into
CptTZ wants to merge 1 commit into
Conversation
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.
Overview
On a host (e.g. HF) that has an IPv6 (AAAA) DNS record but no working IPv6 route,
llama-server -hfhangs at the first HTTP request. With -v it stalls:Upon investigation, hang is in
cli.Head(). huggingface.co has multiple addresses and cpp-httplib tries them sequentially with IPv6 first, and it never falls back to the working IPv4 address. The default connection timeout at 300s, the request blocks for ~5 minutes before failing.This PR bounds the connect timeout and adds an IPv4 fallback, so dual-stack hosts with broken IPv6 connectivity work again -
Notes
Additional information
In #18828 we removed libcurl and in previous changes replaced libcurl with cpp-httplib - this caused a regression as libcurl supports rfc6555 - this is not supported in cpp-httplib, thus this issue.
Requirements
llama-serverstart.