-
Notifications
You must be signed in to change notification settings - Fork 17.7k
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
cmd/go: TLS handshake timeout running in qemu #50584
Comments
go get
for certain packages in qemu
container build, suspected bug in timeout behaviour)
what if you only download without building? |
I tried with I guess the reason it's building in the first place is because for my arch ( |
|
Ah, thanks for clarifying. What I don't understand is the high processor load of the parallel I have tried with different values for GOPROXY, (
|
go get
for certain packages in qemu
container build, suspected bug in timeout behaviour)
|
For
That seems pretty fishy if it would be only network related... |
Note that we currently lack a QEMU builder (#1508), and per https://go.dev/wiki/PortingPolicy, supported platforms require builders. (User-mode QEMU is not supported, although it may work in some cases.) Does this failure mode also reproduce on physical ARM hardware? |
I only have "semi-embedded" Interestingly though, the same repo with the same I managed to consistently build relatively complex go For reference: for |
@bcmills oh wait, I just checked and since |
@bcmills thanks for the info, I guess I'm lucky that I'm getting away with it pretty ok, except for this strange issue (though note that my CI is also I'm wondering though whether it could make sense to somehow set the network timeout for |
Commenting here since my issue was closed. linux/ppc64le is not a first class port AFAIK and neither is linux/s390x. But it seems strange to me that I only ever see issues with ppc64le but not s390x. Specifically, this is with GitHub hosted runners. |
Hi, I am able to reproduce a similar failure in yocto environment with go-1.17.5-r0:
Relate-to: https://booting.oniroproject.org/distro/oniro/-/merge_requests/524 |
@rzr for me it only happens on Interestingly, a CI that is executing the same build script in the same container image on the same (type of) OS ( That is the reason that I'm suspecting that network timeouts are reported due to build duration and not actual connection errors. @bcmills regarding the label |
@ppenguin, it would help to know how far we are from the TLS timeout when running on real ARM hardware. IIRC the timeout is on the order of 10s, so the emulation would have to be heavily overloaded to miss it. (And it that case on real hardware I might suggest lowering |
Timed out in state WaitingForInfo. Closing. (I am just a bot, though. Please speak up if this is a mistake or you have the requested information.) |
Hello, today i have a strange issue. In some containers which used http.Get i received a tls timeout. also i receive go mod tidy : net/http: TLS handshake timeout on my gitlab runner. All pc where i receive a tls timeout work into proxmox qemu. |
Similar to this |
What version of Go are you using (
go version
)?Does this issue reproduce with the latest release?
untested
What operating system and processor architecture are you using (
go env
)?go env
Output(Note the directories are in a container, and
/builds
is mounted into it from the project dir.)What did you do?
I built a program with a largish number of dependencies.
The build consistently fails during getting these with
go get -v -u ./...
, notably mostly onand
It is suspicious that this only happens with
arm32
builds (likely only with withCGO=1
), and it can indeed be seen that theqemu
container process has a high load beforego get
fails.My suspicion is that
go get
can't find a binary package forarm32
arch and starts building it automatically, which is of course good and expected behaviour. However: it seems thatgo get
wrongly applies a networking timeout to this situation, where it should handle package builds from source with a different timeout (these usually take much longer, especially underqemu
, which should be allowed).What did you expect to see?
A successful build, independent of architecture. (As a reference: other non-native builds, e.g.
arm64
, in a container which is built in the same way except for the arch, do not have this issue, but they are also significantly faster, which leads to the suspicion that the issue is indeed the application of an unreasonable timeout).What did you see instead?
Networking timeouts during
go get
, where the bottleneck appears to be not the network but a local package build (high processor load).The text was updated successfully, but these errors were encountered: