[system-updater] Add a timeout to RebootController

As a precaution against misbehaving implementations of
fuchsia.update.Manager, this change adds an unreasonably long timeout on
waiting for the initiator of an update to signal that it is a good time
to reboot.

Also, this change reworks the RebootController to own the async task
waiting for the signal, which ties the lifecycle of the fidl protocol
handler for the reboot controller to the update attempt instead of the
client's connection, preventing misbehaving clients from keeping async
tasks around in the system-updater.

Alsoer, always provide a RebootController to the update attempt in the
fidl path, simplifying removing that Option<> later.

Fixed: 61956
Change-Id: I9c32d941f932f1ca0c321cdd63c9104d06fe6b6f
Reviewed-on: https://fuchsia-review.googlesource.com/c/fuchsia/+/442686
Testability-Review: Zach Kirschenbaum <zkbaum@google.com>
Reviewed-by: Zach Kirschenbaum <zkbaum@google.com>
Commit-Queue: Kevin Wells <kevinwells@google.com>
4 files changed
tree: 35c3fbf49cbf71015ea3a856349f148bf1718ac7
  1. boards/
  2. build/
  3. bundles/
  4. docs/
  5. examples/
  6. garnet/
  7. products/
  8. scripts/
  9. sdk/
  10. src/
  11. third_party/
  12. tools/
  13. zircon/
  14. .clang-format
  15. .clang-tidy
  16. .gitattributes
  17. .gitignore
  18. .gn
  19. .style.yapf
  20. AUTHORS
  21. BUILD.gn
  22. CODE_OF_CONDUCT.md
  23. CONTRIBUTING.md
  24. LICENSE
  25. OWNERS
  26. PATENTS
  27. README.md
  28. 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.