| commit | 08c1c72246da4f8f18dfb7e94a1da813b094c7a4 | [log] [tgz] |
|---|---|---|
| author | Jan Schär <jan@monogon.tech> | Thu Dec 19 12:03:17 2024 +0100 |
| committer | Jan Schär <jan@monogon.tech> | Mon Dec 23 10:13:43 2024 +0000 |
| tree | e8dd5a474edb79f2658b951e64b993b38c46b210 | |
| parent | 65602097b716674316a318d5594a8b2b0e52d239 [diff] |
osbase/supervisor: only enter DONE state after runnable returns Previously, a node was marked DONE as soon as it signaled DONE. If a GC run happens between the time when the runnable signals DONE, and when the runnable exit is processed, this causes problems. The test which I added panics without the other changes: panic: could not find [inner] (root.inner) in root (NODE_STATE_NEW) If the delay is long enough that the inner node has already restarted, then this could even end up with multiple instances of the same runnable running simultaneously. I fixed this problem by only entering the DONE state after the runnable has returned. Change-Id: If73b73f104c4cc204bce4374f4ba5f7e163e4a0b Reviewed-on: https://review.monogon.dev/c/monogon/+/3715 Tested-by: Jenkins CI Reviewed-by: Lorenz Brun <lorenz@monogon.tech>
This is the main repository containing the source code for the Monogon Platform.
This is pre-release software - take a look, and check back later! In the meantime, join us on Matrix (#monogon-os-community:matrix.org) or Discord.
Our build environment is self-contained and requires only minimal host dependencies:
/dev/kvm (if you want to run tests).Our docs assume that Bazelisk is available as bazel on your PATH.
Refer to SETUP.md for detailed instructions.
The source code lives in //metropolis (Metropolis is the codename of Monogon OS).
See the //metropolis/README.md for a developer quick start guide, or see the Monogon OS Handbook for user documentation.