-
Notifications
You must be signed in to change notification settings - Fork 18k
x/net/route: TestRouteMessage failures on freebsd-386 builders #35513
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
Only 386? Always or a flake? |
Looks like a recurring flake, but getting a better answer to that question is part of my motivation for filing #35515. |
@golang/release: it seems like this test either needs an owner to fix it, or ought to be skipped on this builder. The (Marking as release-blocker for Go 1.17 via #11811.) |
Weekly check-in: this needs to be investigated before beta 1. cc @neild |
I have not yet figured out what's going on here, but it's not 1.17 specific. The problem is easily reproducible with -count=1000 and 1.16. |
Removing release-blocker, then. |
@heschi, I believe the Unless I am mistaken, from #11811 it follows that part of the process of setting up a new builder needs to include either fixing or adding skips for the existing tests that are already failing on that builder. Since the builder is new for Go 1.17, I believe this issue should still be a 1.17 release-blocker. |
The failing test reads routing information from an The information read from the socket does not match the expected format. The test passes most of the time, because most of the time the parser doesn't realize there's a problem. You can easily reproduce this on the Here are the bytes provided to
This data is expected to be an There are what appear to be two IPv6 sockaddrs in the data here, each consisting of 28 bytes starting with There is also a chunk of data between the sockaddrs--everything from the I've poked through the source code for FreeBSD utilities which parse this same data, and none of them seem to handle this case. For example the code here looks pretty similar to that in x/net/route: I'm very puzzled by what's going on here. This test is definitely pointing out a real problem. It is flaky only because the "successful" runs aren't detecting that they're parsing invalid data. |
I think you are misreading the data slightly. The number of addresses is not 2, but is determined by the number of bits set in the |
You're right, I was misreading it. If I'm following the FreeBSD code correctly, after this change, sockaddrs in routing messages returned by the sysctl syscall with the SCTL_MASK32 flag set are 32-bit aligned. The test here is reading routing messages from an We do also make a I'm not clear on who sets the |
Change https://golang.org/cl/321869 mentions this issue: |
2019-11-09T02:19:31-daa7c04/freebsd-386-11_2
2019-11-09T02:19:31-daa7c04/freebsd-386-12_0
CC @tklauser @mikioh @bradfitz
The text was updated successfully, but these errors were encountered: