Automated rollback of commit b699b1cce2dae631516f91f178642d698dbc9802.

*** Reason for rollback ***

Fixed bug when the primary action of a finished ActionExecutionState is
Skyframe-restarted, and then its state is obsoleted between when it next
probes the action map and when it attempts to use that state's value in
ActionExecutionState.getResultOrDependOnFuture. The primary action will
now restart in that case instead of crash.

Renamed "ActionCacheWriteStep" because it does more than just action
cache work. It runs the generic "postprocessing" step, including updating
the ContinuationState's discoveredInputs and inputArtifactData. That
update work can cause Skyframe restarts.

*** Original change description ***

Automated rollback of commit 0a64598d3cbd2447013232764754a46f10695a64.

*** Reason for rollback ***

b/183597213

*** Original change description ***

Stop forwarding lost input exceptions to shared actions, restart them

Refactors the action execution state machine to make non-primary shared
actions restart when the primary fails because of lost inputs.

Rewound deps' states are now cleared only if done. They may not be done
if multiple rewinds race.

RELNOTES: None.
PiperOrigin-RevId: 364945413
4 files changed
tree: 84f23d274af5ef066f827735c00d634ffe466465
  1. .bazelci/
  2. examples/
  3. scripts/
  4. site/
  5. src/
  6. third_party/
  7. tools/
  8. .bazelrc
  9. .gitattributes
  10. .gitignore
  11. AUTHORS
  12. BUILD
  13. CHANGELOG.md
  14. CODEBASE.md
  15. CODEOWNERS
  16. combine_distfiles.py
  17. combine_distfiles_to_tar.sh
  18. compile.sh
  19. CONTRIBUTING.md
  20. CONTRIBUTORS
  21. distdir.bzl
  22. distdir_deps.bzl
  23. ISSUE_TEMPLATE.md
  24. LICENSE
  25. README.md
  26. WORKSPACE
README.md

Bazel

{Fast, Correct} - Choose two

Build and test software of any size, quickly and reliably.

  • Speed up your builds and tests: Bazel rebuilds only what is necessary. With advanced local and distributed caching, optimized dependency analysis and parallel execution, you get fast and incremental builds.

  • One tool, multiple languages: Build and test Java, C++, Android, iOS, Go, and a wide variety of other language platforms. Bazel runs on Windows, macOS, and Linux.

  • Scalable: Bazel helps you scale your organization, codebase, and continuous integration solution. It handles codebases of any size, in multiple repositories or a huge monorepo.

  • Extensible to your needs: Easily add support for new languages and platforms with Bazel's familiar extension language. Share and re-use language rules written by the growing Bazel community.

Getting Started

Documentation

Contributing to Bazel

See CONTRIBUTING.md

Build status