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/build/cmd/builder: delete #21191

Open
bradfitz opened this Issue Jul 27, 2017 · 33 comments

Comments

Projects
None yet
7 participants
@bradfitz
Copy link
Member

bradfitz commented Jul 27, 2017

We have very few users of the old-style builder left:

https://github.com/golang/go/wiki/DashboardBuilders#old-style-builders

Of the ones I see running, to migrate we have:

If we can migrate those few users to cmd/buildlet instead we can then delete x/build/cmd/builder.

@gopherbot gopherbot added this to the Unreleased milestone Jul 27, 2017

@gopherbot gopherbot added the Builders label Jul 27, 2017

@bradfitz

This comment has been minimized.

Copy link
Member

bradfitz commented Jul 27, 2017

@0intro

This comment has been minimized.

Copy link
Member

0intro commented Jul 27, 2017

There is also:

plan9-arm (@0intro)

plan9-386-ducolombier is a temporary builder. It will go away once GCE is fixed.

@bradfitz

This comment has been minimized.

Copy link
Member

bradfitz commented Jul 27, 2017

David, can you start migrating at least plan9-arm and plan9-amd64-9front to the new system? I can get you new host keys and send you a CL for the dashboard/builders.go CL if so.

@cybrcodr

This comment has been minimized.

Copy link

cybrcodr commented Jul 27, 2017

How does one migrate from old-style builder to using the buildlet? Are these the instructions ...

https://github.com/golang/go/wiki/DashboardBuilders#how-to-set-up-a-builder

Is the key (.gobuildkey) used for initial buildlet run only or is it permanent for all future runs?

Step 6. Have golang-dev deploy it. -- does "it" here pertain to dashboard or do we also need to redeploy coordinator and others?

@bradfitz

This comment has been minimized.

Copy link
Member

bradfitz commented Jul 27, 2017

Yes, those are the instructions.

The build key is required whenever the buildlet wants to register itself with the coordinator, which happens once per run, or whenever one of them restarts.

@bradfitz

This comment has been minimized.

Copy link
Member

bradfitz commented Jul 27, 2017

Step 6. Have golang-dev deploy it. -- does "it" here pertain to dashboard or do we also need to redeploy coordinator and others?

Only the coordinator. The dashboard doesn't need updates currently. If #19930 gets fixed, though, then restarting the dashboard would be nice but not required.

@paulzhol

This comment has been minimized.

Copy link
Member

paulzhol commented Jul 27, 2017

@bradfitz how do I

get a builder host type & hash

Is the builder=freebsd-arm query param to the https://build-dot-golang-org.appspot.com/key endpoint supposed to work for with my gmail account?
What should I do with my current hash in .gobuildkey file?

@bradfitz

This comment has been minimized.

Copy link
Member

bradfitz commented Jul 28, 2017

@paulzhol, email me (bradfitz golang) and I'll get you keys.

@bradfitz

This comment has been minimized.

Copy link
Member

bradfitz commented Jul 28, 2017

Actually, I might have a new plan. I think I can just modify the buildlet a bit to work with your existing files & keys unmodified. That'd be easier for everybody.

@paulzhol

This comment has been minimized.

Copy link
Member

paulzhol commented Jul 28, 2017

Great! I'll take the opportunity to upgrade to FreeBSD-11.1 while waiting for the new buildlet.

@gopherbot

This comment has been minimized.

Copy link

gopherbot commented Jul 28, 2017

Change https://golang.org/cl/51830 mentions this issue: cmd/builder: delete unused gccgo, old^2 perf dashboard, and mercurial support

gopherbot pushed a commit to golang/build that referenced this issue Aug 2, 2017

cmd/builder: delete unused gccgo, old^2 perf dashboard, and mercurial…
… support

Step 1 of migrating cmd/builder users to cmd/buildlet users: delete
unused code to make sense of what actually remains.

Updates golang/go#21191

Change-Id: I74d52d49ea0f3ff347ff188dcc0f2c491afca2ff
Reviewed-on: https://go-review.googlesource.com/51830
Reviewed-by: Andrew Bonventre <andybons@golang.org>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
Reviewed-by: Herbie Ong <herbie@google.com>
@gopherbot

This comment has been minimized.

Copy link

gopherbot commented Aug 2, 2017

Change https://golang.org/cl/52632 mentions this issue: cmd/builder: update docs, delete more dead code

gopherbot pushed a commit to golang/build that referenced this issue Aug 2, 2017

cmd/builder: update docs, delete more dead code
Updates golang/go#21191

Change-Id: I83319a4994959c31be2d41ec4622aac5f3ee4eca
Reviewed-on: https://go-review.googlesource.com/52632
Reviewed-by: Herbie Ong <herbie@google.com>
Reviewed-by: Andrew Bonventre <andybons@golang.org>
@tdfbsd

This comment has been minimized.

Copy link

tdfbsd commented Aug 5, 2017

I think I have succeeded in switching dragonflybsd to the new builder. Note that @fupjack has not maintained the builder for some time now, so please update your list.

@bradfitz

This comment has been minimized.

Copy link
Member

bradfitz commented Aug 5, 2017

@tdfbsd, I see "dragonfly-amd64" connected now, thanks. But it won't get any work without some config on our side.

Are you running it in a loop so it'll re-run on process exit? (ideally in a container with a fresh filesystem)

Also, are you the new owner of that builder? Thanks!

@tdfbsd

This comment has been minimized.

Copy link

tdfbsd commented Aug 5, 2017

I've been running it for a year now. I can run it in a loop if that's the preferred way. I don't know what "container with a fresh filesystem" means.

@paulzhol

This comment has been minimized.

Copy link
Member

paulzhol commented Aug 5, 2017

@bradfitz can you see freebsd-arm-paulzhol as well? I'm running buildlet with the following parameters:
-coordinator farmer.golang.org -halt=false -reverse-type freebsd-arm-paulzhol

2017/08/05 20:51:04 buildlet starting.
2017/08/05 20:51:04 Not on GCE; not remounting root filesystem.
2017/08/05 20:51:04 Dialing coordinator farmer.golang.org:443 ...
2017/08/05 20:51:05 Doing TLS handshake with coordinator (verifying hostname "farmer.golang.org")...
2017/08/05 20:51:05 Registering reverse mode with coordinator...
2017/08/05 20:51:05 Connected to coordinator; reverse dialing active

Not building anything though.

@bradfitz

This comment has been minimized.

Copy link
Member

bradfitz commented Aug 5, 2017

@tdfbsd, where is your GOROOT_BOOTSTRAP directory? With the new system, that's set on our side. (The new system didn't really consider 1-off builders in its design, but I suppose we could make some changes to make this easier if it becomes tedious.)

And yes, you'll need to run the loop yourself. After each build, the buildlet process will terminate. (Or it will halt the machine by default, unless --halt=false is given.)

By fresh filesystem I mean that ideally each build would run in a hermetic environment so any changes it makes are undone when the process ends and starts anew. Whether that's something like a Docker container or an overflay filesystem or a VM varies by builder. Some of our builders don't do that, and that's okay. For the most part it tries to be well-behaved. The fresh-filesystem-per-build is just paranoia.

@paulzhol, same question about where your GOROOT_BOOTSTRAP is. But I see freebsd-arm-paulzhol connected.

@paulzhol

This comment has been minimized.

Copy link
Member

paulzhol commented Aug 5, 2017

@bradfitz I haven't set it to anything, so it defaults to $HOME/go1.4 I think.
What about other environment variables, the old builder had GOARM=7 CGO_ENABLED=1 GO_TEST_TIMEOUT_SCALE=32. Will they be inherited by the buildlet process?

@bradfitz

This comment has been minimized.

Copy link
Member

bradfitz commented Aug 5, 2017

Actually, I was wrong. The environment of commands executed under the buildlet includes (unless overridden) all of its initial environment.

@gopherbot

This comment has been minimized.

Copy link

gopherbot commented Aug 5, 2017

Change https://golang.org/cl/53490 mentions this issue: dashboard: update dragonfly-amd64 and freebsd-arm to be buildlet-based

gopherbot pushed a commit to golang/build that referenced this issue Aug 5, 2017

dashboard: update dragonfly-amd64 and freebsd-arm to be buildlet-based
Updates golang/go#21191

Change-Id: I636204e9e4cbe77e34b2bbad65312fb6f2ace2dc
Reviewed-on: https://go-review.googlesource.com/53490
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
@gopherbot

This comment has been minimized.

Copy link

gopherbot commented Aug 5, 2017

Change https://golang.org/cl/53491 mentions this issue: dashboard: set GOROOT_BOOTSTRAP for dragonfly-amd64 and freebsd-arm

gopherbot pushed a commit to golang/build that referenced this issue Aug 5, 2017

dashboard: set GOROOT_BOOTSTRAP for dragonfly-amd64 and freebsd-arm
Updates golang/go#21191

Change-Id: I09854a99c17dec204ee3a1f7c197bb7b69895979
Reviewed-on: https://go-review.googlesource.com/53491
Reviewed-by: Yuval Pavel Zholkover <paulzhol@gmail.com>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
@bradfitz

This comment has been minimized.

Copy link
Member

bradfitz commented Aug 5, 2017

Okay, the three remaining are:

plan9-arm (@0intro)
plan9-amd64-9front (@0intro)
nacl-arm-cheney (@davecheney)

@0intro, can you kill the plan9-amd64 builder? That is #19388. And I've mailed you a host key for migrating plan9-arm.

@davecheney, that leaves your nacl-arm builder as the last cmd/builder user to migrate.

@gopherbot

This comment has been minimized.

Copy link

gopherbot commented Aug 5, 2017

Change https://golang.org/cl/53492 mentions this issue: cmd/buildlet: use inherited GOROOT_BOOTSTRAP as fallback

@gopherbot

This comment has been minimized.

Copy link

gopherbot commented Aug 5, 2017

Change https://golang.org/cl/53493 mentions this issue: dashboard: set SkipSnapshot on freebsd-arm and dragonfly-amd64

gopherbot pushed a commit to golang/build that referenced this issue Aug 6, 2017

dashboard: set SkipSnapshot on freebsd-arm and dragonfly-amd64
No point snapshotting for non-sharded builders.

And snapshotting is too slow and hits the timeout on freebsd-arm.

Updates golang/go#21191

Change-Id: I225aa6af493b92aa45589491c69853e13d513dd1
Reviewed-on: https://go-review.googlesource.com/53493
Reviewed-by: Yuval Pavel Zholkover <paulzhol@gmail.com>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
@gopherbot

This comment has been minimized.

Copy link

gopherbot commented Aug 6, 2017

Change https://golang.org/cl/53473 mentions this issue: cmd/buildlet: fix homedir on Plan 9

@0intro

This comment has been minimized.

Copy link
Member

0intro commented Aug 6, 2017

The plan9-arm-0intro buildlet is now running.

gopherbot pushed a commit to golang/build that referenced this issue Aug 6, 2017

cmd/buildlet: fix homedir on Plan 9
On Plan 9, the home environment variable contains the
user's home directory.

Updates golang/go#21191

Change-Id: Ia421aebe5b3cfec6a2baa1bb7972183c8be19b97
Reviewed-on: https://go-review.googlesource.com/53473
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>

gopherbot pushed a commit to golang/build that referenced this issue Aug 6, 2017

cmd/buildlet: use inherited GOROOT_BOOTSTRAP as fallback
Currently the buildlet ignores any GOROOT_BOOTSTRAP defined on the host,
assuming it'll always come from the coordinator.

Relax that a bit to make it easier to migrate people to buildlet from
the older builder.

This doesn't change behavior for any existing builder.

Updates golang/go#21191

Change-Id: I3c3ef77b073d7cecf41855e6d060773b8558935b
Reviewed-on: https://go-review.googlesource.com/53492
Reviewed-by: Yuval Pavel Zholkover <paulzhol@gmail.com>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
@gopherbot

This comment has been minimized.

Copy link

gopherbot commented Aug 6, 2017

Change https://golang.org/cl/53417 mentions this issue: dashboard: convert plan9-arm, plan9-amd64-9front, nacl-arm to buildlets

@0intro

This comment has been minimized.

Copy link
Member

0intro commented Aug 6, 2017

The plan9-amd64-0intro buildlet is now running.

gopherbot pushed a commit to golang/build that referenced this issue Aug 6, 2017

dashboard: convert plan9-arm, plan9-amd64-9front, nacl-arm to buildlets
Updates golang/go#21191

Change-Id: I577dad51d490d7e281ccde9fa7d82bb1bee95bd9
Reviewed-on: https://go-review.googlesource.com/53417
Reviewed-by: David du Colombier <0intro@gmail.com>
@bradfitz

This comment has been minimized.

Copy link
Member

bradfitz commented Aug 6, 2017

And I've now restarted the coordinator at golang/build@2446fb3

@gopherbot

This comment has been minimized.

Copy link

gopherbot commented Aug 6, 2017

Change https://golang.org/cl/53475 mentions this issue: cmd/buildlet: don't set GOROOT_BOOTSTRAP if already set

@dmitshur

This comment has been minimized.

Copy link
Member

dmitshur commented Sep 20, 2018

Based on #21191 (comment), CL 53417, and #21191 (comment), it sounds like all the 3 remaining old-style builders have been migrated. Is that so? Is anything left to be able to remove cmd/builder and close this issue?

@0intro

This comment has been minimized.

Copy link
Member

0intro commented Sep 20, 2018

Yes, the plan9-amd64 and plan9-arm builders are not using cmd/builder anymore.

@dmitshur

This comment has been minimized.

Copy link
Member

dmitshur commented Sep 20, 2018

Thanks @0intro.

@davecheney Can you please update me on status of the nacl-arm-cheney builder? Based on CL 53417, it looks like it should be migrated. However, on https://farmer.golang.org/, I see:

host-nacl-arm-davecheney: 0/0 (1 missing)

So it's not connected right now.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment