[pkg-cache] Add blob write retry

This change attempts to workaround an inconsistency between
pkgfs/install and pkg-cache when fetching a package, where pkgfs/install
reports a blob is still needed but pkg-cache has already either decided
it was already present or has written it.  After processing all blobs in
the package, pkg-cache will re-query pkgfs/install and open any
remaining blobs for write.  If pkgfs discovers the blob is present (as
it should be at this point), it will unblock the package install. If
this blob data is somehow still needed, the package cache operation will
fail as it did before.

Bug: 74326
Change-Id: I0ff191d9061a530159bc43e90bdd854a9b05bfa7
Reviewed-on: https://fuchsia-review.googlesource.com/c/fuchsia/+/514654
Fuchsia-Auto-Submit: Kevin Wells <kevinwells@google.com>
Reviewed-by: Aaron Wood <aaronwood@google.com>
Commit-Queue: Auto-Submit <auto-submit@fuchsia-infra.iam.gserviceaccount.com>
1 file changed
tree: c1a37071363169ffcaf255af726ddd3fb52d980f
  1. boards/
  2. build/
  3. buildtools/
  4. bundles/
  5. docs/
  6. examples/
  7. garnet/
  8. products/
  9. scripts/
  10. sdk/
  11. src/
  12. third_party/
  13. tools/
  14. zircon/
  15. .clang-format
  16. .clang-tidy
  17. .git-blame-ignore-revs
  18. .gitattributes
  19. .gitignore
  20. .gn
  21. .style.yapf
  22. AUTHORS
  23. BUILD.gn
  24. CODE_OF_CONDUCT.md
  25. CONTRIBUTING.md
  26. LICENSE
  27. OWNERS
  28. PATENTS
  29. README.md
  30. rustfmt.toml
README.md

Fuchsia

Pink + Purple == Fuchsia (a new operating system)

What is Fuchsia?

Fuchsia is a modular, capability-based operating system. Fuchsia runs on modern 64-bit Intel and ARM processors.

Fuchsia is an open source project with a code of conduct that we expect everyone who interacts with the project to respect.

Read more about Fuchsia's principles.

How can I build and run Fuchsia?

See Getting Started.

Where can I learn more about Fuchsia?

See fuchsia.dev.