Skip to content
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

x/net/ipv6: OS X 10.8 kernel panic during tests #17015

Closed
bradfitz opened this issue Sep 7, 2016 · 11 comments
Closed

x/net/ipv6: OS X 10.8 kernel panic during tests #17015

bradfitz opened this issue Sep 7, 2016 · 11 comments
Labels
Builders x/build issues (builders, bots, dashboards) FrozenDueToAge Testing An issue that has been verified to require only test changes, not just a test failure.
Milestone

Comments

@bradfitz
Copy link
Contributor

bradfitz commented Sep 7, 2016

Something in the golang.org/x/net/ipv6 tests causes a kernel panic on OS X 10.8, which confuses the build coordinator, because the VM keeps disappearing during the tests, so it tries forever.

Fix it on both sides:

  • skip the test on OS X 10.8
  • fix the builder to note tests which kill their machine

/cc @mikioh

@bradfitz bradfitz added the Builders x/build issues (builders, bots, dashboards) label Sep 7, 2016
@bradfitz bradfitz added this to the Unreleased milestone Sep 7, 2016
@bradfitz bradfitz self-assigned this Sep 7, 2016
@bradfitz
Copy link
Contributor Author

bradfitz commented Sep 7, 2016

I'm still trying to narrow down where the kernel panic occurs.

I recorded a video, which ends in this frame at least showing the tests which are okay:

screen shot 2016-09-07 at 8 18 25 am

I tried adding a t.Skip to the top of TestUDPMultiplePacketConn... but it then crashed even earlier, right when I ran the test binary, without me seeing any output of the successful tests (that is, I didn't even see the contents of the screenshot above).

gopherbot pushed a commit to golang/net that referenced this issue Sep 7, 2016
Temporary workaround until the problem is identified and a more
granular skip or fix is added.

Updates golang/go#17015

Change-Id: If3f940f9f318a3b41669fd6e870a17727d2fee82
Reviewed-on: https://go-review.googlesource.com/28587
Reviewed-by: Josh Bleecher Snyder <josharian@gmail.com>
@mikioh
Copy link
Contributor

mikioh commented Sep 7, 2016

As is usual with IP protocol stack development on BSD variants, it's a crash caused by mbuf corruption because almost all the ip-level options manipulate it. Probably we need to disable a few options on OS X 10.8 by tweaking init function in ipv6/sys_darwin.go.

@mikioh
Copy link
Contributor

mikioh commented Sep 7, 2016

Still haven't had a look at https://github.com/opensource-apple/xnu.git carefully, but perhaps OS X 10.8 is the interim release of the transition from RFC 2292 to RFC 3542. The following disables RFC 3542-related options on OS X 10.8 or below.

diff --git a/ipv6/sys_darwin.go b/ipv6/sys_darwin.go
index c263f08..6764d5b 100644
--- a/ipv6/sys_darwin.go
+++ b/ipv6/sys_darwin.go
@@ -49,7 +49,7 @@ func init() {
        // introduced in OS X 10.7 (Darwin 11.0.0). But it looks like
        // those features require OS X 10.8 (Darwin 12.0.0) and above.
        // See http://support.apple.com/kb/HT1633.
-       if i > 2 || i == 2 && osver[0] >= '1' && osver[1] >= '2' {
+       if i > 2 || i == 2 && osver[0] >= '1' && osver[1] >= '3' {
                ctlOpts[ctlTrafficClass].name = sysIPV6_TCLASS
                ctlOpts[ctlTrafficClass].length = 4
                ctlOpts[ctlTrafficClass].marshal = marshalTrafficClass

@bradfitz
Copy link
Contributor Author

bradfitz commented Sep 7, 2016

Maybe once I finish the OS X VMWare integration, I can just get you x/build/cmd/gomote access to 10.8 VMs and you can try.

@gopherbot
Copy link

CL https://golang.org/cl/28997 mentions this issue.

@gopherbot
Copy link

CL https://golang.org/cl/28999 mentions this issue.

@mikioh mikioh added the Testing An issue that has been verified to require only test changes, not just a test failure. label Sep 13, 2016
gopherbot pushed a commit to golang/net that referenced this issue Sep 14, 2016
Also consolidate platform-dependent helper files.

Updates golang/go#17015.

Change-Id: Ibf09479762029ecc7229ab4bb233138e0d4e69d9
Reviewed-on: https://go-review.googlesource.com/28997
Run-TryBot: Mikio Hara <mikioh.mikioh@gmail.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
@mikioh
Copy link
Contributor

mikioh commented Sep 14, 2016

Will submit CL 28999 once I've confirmed that it gets worked on OS X 10.8 using gomote. Ping me when the CI stuff has landed.

@mikioh
Copy link
Contributor

mikioh commented Sep 25, 2016

@bradfitz,

Can I have an access to OS X 10.8 bot using gomote?

@mikioh
Copy link
Contributor

mikioh commented Nov 14, 2016

Submitting and see what happens after waiting for two months there is no response.

@gopherbot
Copy link

CL https://golang.org/cl/33250 mentions this issue.

@gopherbot
Copy link

CL https://golang.org/cl/33251 mentions this issue.

gopherbot pushed a commit to golang/net that referenced this issue Nov 16, 2016
…sion 12 or below

The kernel is used in OS X Mountain Lion or below, or iOS version 8 or
below.

Updates golang/go#17015.

Change-Id: I8a849dc2ab4e04535f893b776bf704079cc91977
Reviewed-on: https://go-review.googlesource.com/33250
Run-TryBot: Mikio Hara <mikioh.mikioh@gmail.com>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
@golang golang locked and limited conversation to collaborators Nov 16, 2017
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Builders x/build issues (builders, bots, dashboards) FrozenDueToAge Testing An issue that has been verified to require only test changes, not just a test failure.
Projects
None yet
Development

No branches or pull requests

3 participants