-
Notifications
You must be signed in to change notification settings - Fork 18k
builders: upgrade OpenBSD builders to 6.0 #16951
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
Joel, are you volunteering? You touched it last. :) Otherwise, @mdempsky? |
Yup, I'm happy to update the scripts. |
CL https://golang.org/cl/28791 mentions this issue. |
Also ensure that expect exits non-zero on timeout. Updates issue golang/go#16951 Change-Id: I7d182e4b9226b23a2c319f6fc2f849d34ec0b271 Reviewed-on: https://go-review.googlesource.com/28791 Reviewed-by: Brad Fitzpatrick <[email protected]>
The env scripts have been updated for 6.0. @bradfitz over to you! |
@zx2c4 Sorry, I don't follow your questions. What issues are you having? Are they relevant to the topic at hand of upgrading Go's existing and working GCE-based OpenBSD builders from OpenBSD 5.8 to OpenBSD 6.0? |
I've tried to run the openbsd 6.0 version of this script on a private gce instance and neither inbound or outbound internet traffic work. I'm not quite sure if the builders will work unless the go team has a special configuration done internally. |
Uh, I went to run make.bash and came back to:
Um. |
Scrolling up,
|
CL https://golang.org/cl/34138 mentions this issue. |
@bradfitz A stab in the dark, but for me the MTU on freebsd had to be explicitly set to 1460 or else it failed in strange ways. I didn't get around to trying openbsd again. |
@andrewchambers, yeah, plan9 also had an MTU issue like that, since GCE has a weird MTU. |
Here's the current OpenBSD boot log on GCE:
|
I don't know if you have tried, but I had luck using the experimental serial port UI to login after explicitly enabling it. It was better than print debugging. https://cloud.google.com/compute/docs/instances/interacting-with-serial-console |
Updates golang/go#16951 Change-Id: I23fdef7fb99e9c5587c0bc0be5d5ddd2b27a145a Reviewed-on: https://go-review.googlesource.com/34138 Reviewed-by: Joel Sing <[email protected]>
I don't really know anything about OpenBSD. I just have access to deploy things. I depend on other people to give me working VM images for each environment we run Go tests on. |
@4a6f656c, do you want to force the MTU size to be 1420 (GCE's limit)? I can't imagine our DNS request packets are over that, though. |
Why does that log make you think DNS isn't working? It looks to me like it's just a 404 from Google's metadata server. |
@quentinmit, I think you're looking at the wrong long. The first log indeed was a 404, was expected. The problem there was a lack of The last log is actually running on GCE. It contains:
That is why I don't think DNS is working. There's no 404 there. |
In any case, @4a6f656c says he's on it. |
CL https://golang.org/cl/34172 mentions this issue. |
The network configuration specified by the GCE DHCP server does not work correctly on OpenBSD 6.0. Add a hack that reconfigures the network using a 10.0.0.0/8 network with a high priority route. Updates golang/go#16951 Change-Id: I8100f34ac48411c885478e72c083754e57c14aa7 Reviewed-on: https://go-review.googlesource.com/34172 Reviewed-by: Matthew Dempsky <[email protected]>
So, I guess we need a new bootstrap tarball? But even if I build https://storage.googleapis.com/golang/go1.4-bootstrap-20161024.tar.gz (see https://golang.org/doc/install/source#go14) on OpenBSD 6.0 with the system C compiler, will it produces binaries which run on OpenBSD 6.0?
Or do we just need libpthread? |
I built a GOROOT_BOOTSTRAP directory from Linux (using bootstrap.bash from master) and it seems to work now. |
But make.bash takes 1m54.420s on OpenBSD, but 0m53.694s on the same VM+SSD storage with Linux. Can we make the OpenBSD VM's /tmp be a ramdisk or tmpfs or whatever? The buildlet is already doing: out, err := exec.Command("/sbin/mount", "-u", "-o", "async,noatime", "/").CombinedOutput() At start, before the build starts. |
And I can confirm from the serial console logs that this remount is still succeeding with OpenBSD 6.0: // Tested on OpenBSD and FreeBSD:
out, err := exec.Command("/sbin/mount", "-u", "-o", "async,noatime", "/").CombinedOutput()
if err != nil {
log.Printf("Warning: failed to remount %s root filesystem with async,noatime: %v, %s", runtime.GOOS, err, out)
return
}
log.Printf("Remounted / with async,noatime.") I see that final log line in the serial output. |
Does this OpenBSD 6.0 kernel not have tmpfs support?
http://man.openbsd.org/options suggests we need "option TMPFS"? |
CL https://golang.org/cl/34276 mentions this issue. |
Start of OpenBSD 6.0 builders. Not trybots yet, and don't have 386 yet. Waiting on tmpfs resolution first, and then I'll delete the 5.8 builders. Updates golang/go#16951 Change-Id: Ib9c68090d531344125ac5410e732ae0c664a0dc4 Reviewed-on: https://go-review.googlesource.com/34276 Reviewed-by: Brad Fitzpatrick <[email protected]>
Looks like it was disabled for 6.0 due to lack of maintenance: http://cvsweb.openbsd.org/cgi-bin/cvsweb/src/sys/conf/GENERIC#rev1.229 |
Hah: https://www.openbsd.org/60.html :
Cool improvement. |
I'll proceed now with updating 386 and switching everything to 6.0, including TryBots. But then we really need to make OpenBSD faster somehow. Throwing lots of machines at it is pretty painful and doesn't help the 2 minute serial make.bash step. Is http://man.openbsd.org/OpenBSD-current/man8/newfs.8 (make_mfs?) the OpenBSD equivalent we should be usig? Or we can just recompile the kernel with tmpfs support? Sounds like it's disabled and not deleted for now. |
Re bootstrapping, we could just install the go package from 6.0 (1.6.3) to avoid a custom bootstrap. Re tmpfs, I would suggest using mfs instead - it is enabled by default and supported, the main difference being that it allocates memory upfront instead of dynamically acquiring and returning it like tmpfs does. mfs is also solid, while tmpfs still has bugs which is why it was disabled. Something like the following should work: $ mount -t mfs -o rw,nodev,nosuid,-s=1G /dev/sd0b /tmp Or we could add it to /etc/fstab as part of the image build: 8625574a04630691.b /tmp mfs rw,nodev,nosuid,-s=1G 0 0 |
CL https://golang.org/cl/34384 mentions this issue. |
Updates golang/go#16951 Change-Id: I7b92363671e0ba4c6ab80cef60e7c8600687f440 Reviewed-on: https://go-review.googlesource.com/34384 Reviewed-by: Matthew Dempsky <[email protected]>
OpenBSD 6.0 has been released - the Go OpenBSD 386 and amd64 builders should be upgraded, since 5.8 is now unsupported.
The text was updated successfully, but these errors were encountered: