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
wrong handling of broken IPv6 #3585
Comments
The bug report for network-manager about this issue is here: https://gitlab.freedesktop.org/NetworkManager/NetworkManager/issues/123 |
We backported that commit and the one it fixes without success. |
Can you make a standalone libcurl-using example that reproduces the problem? |
And maybe try the git master version in its entirety first to make sure that the problem is still there. |
The libcurl-using code is here within the #if WITH_CONCHECK blocks, but I don't know how to make a standalone example from it. |
The problem is still present as of commit 5908e90. FTR, the URL in question here is http://www.archlinux.org/check_network_status.txt, so http2 is not involved. |
@buzo-ffm NM's connectivity code had lots of changes in master; we're actually running https://gitlab.freedesktop.org/NetworkManager/NetworkManager/blob/nm-1-14/src/nm-connectivity.c . |
The title says "wrong handling" of "broken IPv6". In what way is it broken? |
I have a working dual stack setup here; dropping all IPv6 packets from www.archlinux.org (via |
If you, on the same machine with that filter enabled, run |
It runs fine, first trying IPv6 and quickly failing, then using IPv4. With |
Unfortunately my dev machines don't have working IPv6 so I can't easily reproduce this setup. With a debug build created with
|
Hah, that does get into a loop printing |
|
FWIW, my IPv6 is working fine, yet I am hit by this bug. The reason could be me having more than one default route: default via fe80::**** dev enp0s31f6 proto ra metric 100 pref medium |
Since curl moves on to IPv4 quite quickly if the initial attempt at IPv6 takes too long, I guess just having a slow enough connection to the server is enough to trigger this. |
The variable wasn't properly reset within the loop and thus could remain set for sockets that hadn't been set before and thus missed notifying the app. Detected-by: Jan Alexander Steffens Fixes #3585
Curl behaves differently than before when a site cannot be reached via IPv6, but only IPv4. This causes network-manager (using libcurl) to loop forever and take 100% of one CPU. Please see https://bugs.archlinux.org/task/61688 for all the details.
In that report, it is stated that the change 4c35574 is the cause, see comment https://bugs.archlinux.org/task/61688#comment177215 .
The text was updated successfully, but these errors were encountered: