Skip to content

Gazelle CI Ubuntu failures: missing files in repository rules #2799

Description

@jayconrod

Gazelle has been experiencing a very high flake rate: 10 of the last 20 builds on master failed. Most of these are on Ubuntu, like this one.

(00:16:12) ERROR: /var/lib/buildkite-agent/.cache/bazel/_bazel_buildkite-agent/011561ce453ad491f744b6cf5241f06f/external/gazelle+/internal/go_repository.bzl:336:13: An error occurred during the fetch of repository 'gazelle++_go_deps+++go_tools+com_github_google_uuid':
--
  | Traceback (most recent call last):
  | File "/var/lib/buildkite-agent/.cache/bazel/_bazel_buildkite-agent/011561ce453ad491f744b6cf5241f06f/external/gazelle+/internal/go_repository.bzl", line 336, column 13, in _go_repository_impl
  | fail("%s: %s" % (ctx.name, result.stderr))
  | Error in fail: gazelle++_go_deps+++go_tools+com_github_google_uuid: fetch_repo: failed copying repo: lstat /var/lib/buildkite-agent/.cache/bazel/_bazel_buildkite-agent/011561ce453ad491f744b6cf5241f06f/external/gazelle++non_module_deps+bazel_gazelle_go_repository_cache/pkg/mod/github.com/google/uuid@v1.3.0/time.go: no such file or directory
  | (00:16:12) ERROR: no such package '@@gazelle++_go_deps+++go_tools+com_github_google_uuid//': gazelle++_go_deps+++go_tools+com_github_google_uuid: fetch_repo: failed copying repo: lstat /var/lib/buildkite-agent/.cache/bazel/_bazel_buildkite-agent/011561ce453ad491f744b6cf5241f06f/external/gazelle++non_module_deps+bazel_gazelle_go_repository_cache/pkg/mod/github.com/google/uuid@v1.3.0/time.go: no such file or directory
  |  

I think this is a CI infrastructure problem: the repository rule directory is being deleted while the repository rule is running. This error comes from a part of the code using filepath.Walk, which reads each directory and lstat's each file. We'd get no such file or directory if something were racing to delete the directory while fetch_repo was running.

I've only seen this happen on Ubuntu jobs. Retrying the job usually doesn't fixing the problem, but pushing an empty commit often does.

Are any other projects seeing errors like this? Is there anything happening in the infrastructure that might cause this?

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions