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: install fossil, bzr, and gpg binaries on linux-*-longtest builders #48802

Closed
bcmills opened this issue Oct 5, 2021 · 10 comments
Closed
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

@bcmills
Copy link
Contributor

bcmills commented Oct 5, 2021

The go command at least nominally supports five different version control systems: Git, Mercurial, Subversion, Fossil, and Bazaar. Of those, only three appear to be installed on the linux-amd64-longtest builder. That all but guarantees that regressions in support for the other two will not be detected by the builders.

The two missing tools are Fossil (provided by the fossil Debian package), and Bazaar (somewhat confusingly, now provided by the brz Debian package).

CC @golang/release

@bcmills bcmills added Builders x/build issues (builders, bots, dashboards) NeedsFix The path to resolution is known, but the work has not been done. labels Oct 5, 2021
@bcmills bcmills added this to the Backlog milestone Oct 5, 2021
@gopherbot
Copy link

Change https://golang.org/cl/354149 mentions this issue: cmd/go: do not check for a built binary in TestScript/mod_get_fossil

gopherbot pushed a commit that referenced this issue Oct 5, 2021
This test hasn't passed since CL 349997, but the failure was not
detected because the Go project's builders do not have a 'fossil'
binary installed (#48802).

For #43684

Change-Id: I25544574ab48f4f146ae3795e541179e78815758
Reviewed-on: https://go-review.googlesource.com/c/go/+/354149
Trust: Bryan C. Mills <bcmills@google.com>
Run-TryBot: Bryan C. Mills <bcmills@google.com>
Reviewed-by: Russ Cox <rsc@golang.org>
TryBot-Result: Go Bot <gobot@golang.org>
@bcmills bcmills changed the title x/build: install fossil binary on linux-*-longtest builders x/build: install fossil and bzr binaries on linux-*-longtest builders Dec 6, 2021
@gopherbot
Copy link

Change https://golang.org/cl/369743 mentions this issue: cmd/go: fix tests broken in CL 358539

gopherbot pushed a commit that referenced this issue Dec 7, 2021
CL 358539 revised the build-stamp format, and updated the git and hg
tests to match. However, the fossil and bzr tests were missed, and
were not caught on the builders due to the fact that none of the
builder images have the necessary VCS tools installed.

Updates #48802
Updates #49168

Change-Id: I6b9fd0e19b81cb539864c94ab0860f74e7be6748
Reviewed-on: https://go-review.googlesource.com/c/go/+/369743
Trust: Bryan Mills <bcmills@google.com>
Run-TryBot: Bryan Mills <bcmills@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Russ Cox <rsc@golang.org>
@heschi heschi added this to Planned in Go Release Team Dec 7, 2021
@bcmills
Copy link
Contributor Author

bcmills commented Jan 18, 2022

The presence of a gpg binary can also change the behavior of git, so gpg should probably be installed too.

@bcmills bcmills changed the title x/build: install fossil and bzr binaries on linux-*-longtest builders x/build: install fossil, bzr, and gpg binaries on linux-*-longtest builders Jan 18, 2022
@cagedmantis cagedmantis moved this from Planned to In Progress in Go Release Team Feb 8, 2022
@cagedmantis
Copy link
Contributor

cagedmantis commented Feb 8, 2022

The linux-x86-bullseye image has been updated after the submission of go.dev/cl/383156. This issue should be resolved after we switch the linux longtest builders to use the updated Debian bullseye image.

@gopherbot
Copy link

Change https://go.dev/cl/384295 mentions this issue: dashboard, env/linux-x86-bullseye: use Debian bullseye for linux-longtest builders

Go Release Team automation moved this from In Progress to Done Feb 9, 2022
@cagedmantis
Copy link
Contributor

The image has been updated. The issue should be resolved after the next coordinator deployment.

@gopherbot
Copy link

Change https://go.dev/cl/384934 mentions this issue: env/linux-x86-bullseye: add gpg-agent package

@gopherbot
Copy link

Change https://go.dev/cl/454502 mentions this issue: cmd/go: remove TestScript/version_buildvcs_git_gpg

gopherbot pushed a commit that referenced this issue Dec 2, 2022
This was a regression test added for a 'git' command line
used for build stamping. Unfortunately, 'gpg' has proved to
be extremely fragile:

* In recent versions, it appears to always require 'gpg-agent' to be
  installed for anything involving secret keys, but for some reason is
  not normally marked as requiring gpg-agent in Debian's package
  manager.

* It tries to create a Unix domain socket in a subdirectory of $TMPDIR
  without checking the path length, which fails when $TMPDIR is too
  long to fit in the 'sun_path' field of a sockaddr_un struct (which
  typically tops out somewhere between 92 and 108 bytes).

We could theoretically address those by artificially reducing the
script's TMPDIR length and checking for gpg-agent in addition to gpg,
but arguably those should both be fixed upstream instead. On balance,
the incremental value that this test provides does not seem worth the
complexity of dealing with such a fragile third-party tool.

Updates #50675.
Updates #48802.
Fixes #57034.

Change-Id: Ia3288c2f84f8db86ddfa139b4d1c0112d67079ef
Reviewed-on: https://go-review.googlesource.com/c/go/+/454502
TryBot-Result: Gopher Robot <gobot@golang.org>
Run-TryBot: Bryan Mills <bcmills@google.com>
Auto-Submit: Bryan Mills <bcmills@google.com>
Reviewed-by: Cherry Mui <cherryyz@google.com>
@gopherbot
Copy link

Change https://go.dev/cl/454955 mentions this issue: [release-branch.go1.19] cmd/go: remove TestScript/version_buildvcs_git_gpg

@gopherbot
Copy link

Change https://go.dev/cl/454956 mentions this issue: [release-branch.go1.18] cmd/go: remove TestScript/version_buildvcs_git_gpg

gopherbot pushed a commit that referenced this issue Dec 9, 2022
…t_gpg

This was a regression test added for a 'git' command line
used for build stamping. Unfortunately, 'gpg' has proved to
be extremely fragile:

* In recent versions, it appears to always require 'gpg-agent' to be
  installed for anything involving secret keys, but for some reason is
  not normally marked as requiring gpg-agent in Debian's package
  manager.

* It tries to create a Unix domain socket in a subdirectory of $TMPDIR
  without checking the path length, which fails when $TMPDIR is too
  long to fit in the 'sun_path' field of a sockaddr_un struct (which
  typically tops out somewhere between 92 and 108 bytes).

We could theoretically address those by artificially reducing the
script's TMPDIR length and checking for gpg-agent in addition to gpg,
but arguably those should both be fixed upstream instead. On balance,
the incremental value that this test provides does not seem worth the
complexity of dealing with such a fragile third-party tool.

Updates #50675.
Updates #48802.
Updates #57034.
Fixes #57054.

Change-Id: Ia3288c2f84f8db86ddfa139b4d1c0112d67079ef
Reviewed-on: https://go-review.googlesource.com/c/go/+/454502
TryBot-Result: Gopher Robot <gobot@golang.org>
Run-TryBot: Bryan Mills <bcmills@google.com>
Auto-Submit: Bryan Mills <bcmills@google.com>
Reviewed-by: Cherry Mui <cherryyz@google.com>
(cherry picked from commit 45f5ef4)
Reviewed-on: https://go-review.googlesource.com/c/go/+/454956
gopherbot pushed a commit that referenced this issue Dec 9, 2022
…t_gpg

This was a regression test added for a 'git' command line
used for build stamping. Unfortunately, 'gpg' has proved to
be extremely fragile:

* In recent versions, it appears to always require 'gpg-agent' to be
  installed for anything involving secret keys, but for some reason is
  not normally marked as requiring gpg-agent in Debian's package
  manager.

* It tries to create a Unix domain socket in a subdirectory of $TMPDIR
  without checking the path length, which fails when $TMPDIR is too
  long to fit in the 'sun_path' field of a sockaddr_un struct (which
  typically tops out somewhere between 92 and 108 bytes).

We could theoretically address those by artificially reducing the
script's TMPDIR length and checking for gpg-agent in addition to gpg,
but arguably those should both be fixed upstream instead. On balance,
the incremental value that this test provides does not seem worth the
complexity of dealing with such a fragile third-party tool.

Updates #50675.
Updates #48802.
Updates #57034.
Fixes #57055.

Change-Id: Ia3288c2f84f8db86ddfa139b4d1c0112d67079ef
Reviewed-on: https://go-review.googlesource.com/c/go/+/454502
TryBot-Result: Gopher Robot <gobot@golang.org>
Run-TryBot: Bryan Mills <bcmills@google.com>
Auto-Submit: Bryan Mills <bcmills@google.com>
Reviewed-by: Cherry Mui <cherryyz@google.com>
(cherry picked from commit 45f5ef4)
Reviewed-on: https://go-review.googlesource.com/c/go/+/454955
@golang golang locked and limited conversation to collaborators Dec 2, 2023
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
Archived in project
Development

No branches or pull requests

4 participants