Alpine 3.17 cannot curl servers that Alpine 3.16 can
I have not yet been able to reliably produce a server that Alpine 3.17 will fail to curl, but I thought I'd drop you a line to let you know what's happening.
https://gitlab.alpinelinux.org/dHannasch/curl-7.86-cannot-connect-to-hosts-that-curl-7.85-can/-/blob/master/.gitlab-ci.yml shows the commands that I'm running.
Alpine 3.17 (or edge) fails with
$ curl --verbose --silent --show-error $CI_SERVER_HOST
> User-Agent: curl/7.86.0
> Accept: */*
> Proxy-Connection: Keep-Alive
>
* Recv failure: Connection reset by peer
* Closing connection 0
curl: (56) Recv failure: Connection reset by peer
Alpine 3.16 (or 3.17/edge with 3.16's curl and libcurl manually installed) is able to connect just fine to the same server with the same commands. For whatever it's worth, so is Ubuntu with a newer curl (though not quite the same version of curl as Alpine 3.17 uses). I have not been able to install curl 7.85.0 on Alpine; if I could, that would settle the matter of whether it's the operating system that matters or just the libcurl version. It does look like there have been some configuration changes apart from the curl version itself: https://gitlab.alpinelinux.org/alpine/aports/-/commits/master/main/curl/APKBUILD (I'm not sure whether that matters; presumably what really matters is libcurl, but I have not found the libcurl directory in aports. I'm very unclear how the libcurl apk is actually built. It kind of looks like it is indeed controlled by the same curl APKBUILD: https://gitlab.alpinelinux.org/alpine/aports/-/blob/master/main/curl/APKBUILD#L185)
But of course, I have not been able to identify what characteristics of a server cause 3.17 to fail where 3.16 succeeds.