Navigation Menu

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

Closed
6 tasks done
bradfitz opened this issue Jul 27, 2017 · 40 comments
Closed
6 tasks done

x/build/cmd/builder: delete #21191

bradfitz opened this issue Jul 27, 2017 · 40 comments
Labels
Builders x/build issues (builders, bots, dashboards) FrozenDueToAge NeedsFix The path to resolution is known, but the work has not been done.
Milestone

Comments

@bradfitz
Copy link
Contributor

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 x/build issues (builders, bots, dashboards) label Jul 27, 2017
@bradfitz
Copy link
Contributor Author

/cc @adams-sarah @jessfraz @cybrcodr @andybons

@0intro
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
Copy link
Contributor Author

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
Copy link
Contributor

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
Copy link
Contributor Author

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
Copy link
Contributor Author

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
Copy link
Member

@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
Copy link
Contributor Author

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

@bradfitz
Copy link
Contributor Author

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
Copy link
Member

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

@gopherbot
Copy link

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
… 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
Copy link

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
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>
@timdarbydotnet
Copy link

timdarbydotnet 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
Copy link
Contributor Author

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!

@timdarbydotnet
Copy link

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
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
Copy link
Contributor Author

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
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
Copy link
Contributor Author

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
Copy link

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
Updates golang/go#21191

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

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
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
Copy link
Contributor Author

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
Copy link

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

@gopherbot
Copy link

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
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
Copy link

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

@0intro
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
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
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
Copy link

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

@0intro
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
Updates golang/go#21191

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

bradfitz commented Aug 6, 2017

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

@gopherbot
Copy link

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

@dmitshur
Copy link
Contributor

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
Copy link
Member

0intro commented Sep 20, 2018

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

@dmitshur
Copy link
Contributor

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.

@agnivade
Copy link
Contributor

agnivade commented Feb 4, 2019

ping @davecheney

@davecheney
Copy link
Contributor

It’s no longer running , sorry.

@andybons
Copy link
Member

andybons commented Feb 4, 2019

Updated the checklist. Looks like we can move forward.

@dmitshur dmitshur self-assigned this Feb 4, 2019
@dmitshur dmitshur added the NeedsFix The path to resolution is known, but the work has not been done. label Feb 4, 2019
@gopherbot
Copy link

Change https://golang.org/cl/161118 mentions this issue: cmd/builder: delete

@dmitshur
Copy link
Contributor

dmitshur commented Feb 5, 2019

I followed up by removing the old-style builder section from the DashboardBuilders wiki page.

@bsiegert
Copy link
Contributor

It turns out the netbsd-arm-bsiegert builder is still running the old builder command. I was not aware of this issue when I set it up in March 2018.

@dmitshur
Copy link
Contributor

It looks like we missed the openbsd-arm builder in this issue. /cc @4a6f656c @bradfitz @bcmills

It was mentioned in the now-deleted "Old-style builders" section of golang.org/wiki/DashboardBuilders.

@4a6f656c, are you interested in migrating the openbsd-arm builder to use cmd/buildlet (the general process is described here)?

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 NeedsFix The path to resolution is known, but the work has not been done.
Projects
None yet
Development

No branches or pull requests