commit | ec9eace2d1741a9332df64b3270488615a90e11f | [log] [tgz] |
---|---|---|
author | Gary Bressler <geb@fuchsia.infra.roller.google.com> | Wed Apr 03 22:59:27 2024 +0000 |
committer | Copybara-Service <copybara-worker@google.com> | Wed Apr 03 16:00:33 2024 -0700 |
tree | 8edaef21b1c48103f49eab8f67a7f1193220bd1a | |
parent | f92cf630d4028f91a95711b8d49666a7898de11c [diff] |
[roll] Roll fuchsia [component_manager] Fix start ordering bug that contributed to starnix flake There is a race in start ordering where StartAction performs the following sequence: - Create a pending Runtime object - Call ComponentRunner/Start with this runtime object - Install the Runtime object in the component's execution state The race is what happens if the component exits between (2) and (3). The component exiting will trigger a StopAction. If the StopAction runs before (3), it will effectively no-op since it didn't find the component's Runtime. But this isn't correct because the component _did_ start. At the very least, it should dispatch a Stopped event. To fix this bug, change the ordering to: - Lock the ExecutionState - Call ComponentRunner/Start with this runtime object - Install the Runtime object in the component's execution state - Unlock the ExecutionState Because the runner is called under lock, the race can't happen because StopAction will be forced to wait on the lock, and when it gets the lock it will find the Runtime there. This doesn't completely solve the flake, but hopefully mitigates it. Original-Bug: 325143035 Original-Reviewed-on: https://fuchsia-review.googlesource.com/c/fuchsia/+/1018357 Original-Revision: 31770a65487491ef9bdcf7df2ae2d8a171f724f9 GitOrigin-RevId: d8f542c7044ad4c4929143c21e217001712414c4 Change-Id: I5dfcff4d3d8d078c0d39a73e00c58df419c04f42
This repository contains Fuchsia's Global Integration manifest files.
All changes should be made to the internal version of this repository. Our infrastructure automatically updates this version when the internal one changes.
Currently all changes must be made by a Google employee. Non-Google employees wishing to make a change can ask for assistance via the IRC channel #fuchsia
on Freenode.
First install Jiri.
Next run:
$ jiri init $ jiri import minimal https://fuchsia.googlesource.com/integration $ jiri update
Third party projects should have their own subdirectory in ./third_party
.