Bazel Known Issues¶
Known issues with Bazel versions.
Bazel versions¶
Bazel 5¶
Bazel supports network compression of remote cache data after 5.0.0 under
the --experimental_remote_cache_compression
flag. Large-sized targets,
more than 1GB, tend to have issues, it is not recommended to use this flag
with large-sized targets. Finally, the maximum number of targets tested so
far is 30000, if you need to build more targets with
--experimental_remote_cache_compression
please reach to the EngFlow team.
Bazel 5.2.0: Remote cache does not work¶
Bazel 5.2.0 has a bug that can cause remote caching to never upload action outputs; see https://github.com/bazelbuild/bazel/pull/15842.
Bazel 5.1.0: Slow check cache hit
or upload missing inputs
¶
Bazel 5.1.0 has a bug that can cause serialized digest calculations and make these sections of the build significantly slower than usual; see https://github.com/bazelbuild/bazel/commit/77a002cce050e861fcc87c89acf7768aa5c97124.
Bazel 4¶
Bazel versions before 4.0.0 have an issue with dynamic linking when used
with remote execution on macOS. Bazel 4.0.0 has a flag
--incompatible_macos_set_install_name
to fix the issue. As of 2021-02-04,
this flag is not enabled by default yet (see the upstream
bug).
Cross-platform remote execution¶
Definition: when the host OS (what Bazel runs on, e.g. Windows) is not the same type of OS as the execution OS (what remote executors run on, e.g. Linux). However the target OS and target architecture (what the compiled binaries will run on, e.g. Linux/arm64) can be anything you can (cross-)compile to on the execution OS.
host OS | execution OS | Works on EngFlow? | Notes |
---|---|---|---|
macOS | Linux | yes | Seen successful 2021-02-04 |
Linux | Linux | yes | |
(any) | (any-other) | no | 2020-07-13: the host OS must be the same kind as the execution OS. Example: you cannot run the remote executors on Linux and Bazel on Windows; both OSs have to be Linux. |