-
Notifications
You must be signed in to change notification settings - Fork 18k
net: TestFilePacketConn fails on Scaleway #10730
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
Comments
And the strace:
|
The sendto EFAULT is seems wrong.
The man page says:
Is a NULL buf *void okay, even with len 0? |
Actually, the syscall package already tries hard to avoid a NULL *void:
... yet &_zero (which should be non-nil) ends up as zero according to the strace. Is Syscall6 doing the right thing? This machine FWIW has 4 of these:
|
Maybe dup of #7299? (correction s/7229/7299) |
No, I just can't read. The buf pointer is indeed non-zero. I was off by one reading all the empty values. And strace in raw mode (as well as some printlns in the syscall package) confirms:
So it's only len and flags which are zero. Still no clue about the EFAULT, though. |
The syscall code is correct as far as I can see.
Note that the kernel is not complaining about NULL buf. EFAULT must be for
something else.
sendto(6, "", 0, 0, {sa_family=AF_INET, sin_port=htons(0),
sin_addr=inet_addr("127.0.0.1")}, 16) = -1 EFAULT (Bad address)
Note that the 2nd argument is "", not NULL. strace(1) treats the buffer as
a pointer to a string.
as _zero is declared as `var _zero uintptr`, it's content defaults to zero,
so the address is pointing
to a memory region consists solely of NUL bytes, so strace display that as
an empty string "".
|
Ah, if the error you are seeing is only
I'll take this issue. Seems like it just happens in the top/middle-half of ICMP stack. |
Not sure what that means but happy for a fix. (ICMP has three halves? :)) |
As a matter of convenience, I usually think that it consists of socket-interface adaptation layer (or service access point layer), protocol layer and transport (in this case IP) adaptation layer. I believe that the root cause of this issue is just passing a corrupted ICMP packet to the kernel. Certainly the 4-year-old test cases need to be updated for the recent restricted kernels. In addition, from Go 1.5, the full stack test cases for IPConn have been moved to the following: I'm happy if buildbots can support to run tests in x/net with administrator privilege eventually. |
I'm going to just delete that test for now, then. You can re-enable it later when you identify how the test is broken. |
Kernel is 3.19.1-181, FWIW. |
To be fixed later. Updates #10730 Change-Id: Icac19f48c9e035dce192c97943b77b60411a3ea2 Reviewed-on: https://go-review.googlesource.com/9797 Reviewed-by: Mikio Hara <mikioh.mikioh@gmail.com>
Subscribing, I'm from the Scaleway team |
CL https://golang.org/cl/10090 mentions this issue. |
CL https://golang.org/cl/10134 mentions this issue. |
This change splits the existing ping test into non-privileged and privileged tests to cover IPConn full stack test on behalf of the standard library. Updates golang/go#10730. Change-Id: I5d2e00c0b42b857045414eb8e0efca393967742e Reviewed-on: https://go-review.googlesource.com/10090 Reviewed-by: Ian Lance Taylor <iant@golang.org>
CL https://golang.org/cl/17476 mentions this issue. |
On a Scaleway ARM host (where we're trying to move the ARM builders), the net package fails with:
Debug:
Note that this machine has a Docker daemon running, but I'm not yet running the build inside a container. This failure was from running on the host machine, as part of evaluating the speed of these machines.
/cc @mikioh, @davecheney, @crawshaw, @adg
The text was updated successfully, but these errors were encountered: