commit | 63b346d8a41f2c6e668bb17600fbc15c4feb1f2f | [log] [tgz] |
---|---|---|
author | Serge Bazanski <serge@monogon.tech> | Thu Nov 30 12:54:19 2023 +0100 |
committer | Serge Bazanski <serge@monogon.tech> | Thu Nov 30 15:48:00 2023 +0000 |
tree | e1422afea67211d2dc3b55626d7897df89860bc8 | |
parent | e6e570ae3c26c5fda4855522e8cf04644627295f [diff] |
metropolis/node/c/localstorage: make writes durable With just a write() -> rename() we can end up with an empty file in case of an outage. The write() needs to be followed by an fsync() to avoid that. Since all of our localstorage framework contains only rarely-written 'configuration' style files, we now add such an fsync() to every write(). This should fix some flakes in tests and low-load clusters where eg. a node can't read back its key material or persisted node roles after reboot. Change-Id: Iefae4f8bd68ee2972860a7c58326442c80d8aa8c Reviewed-on: https://review.monogon.dev/c/monogon/+/2411 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!
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.
Build CLI and node image:
bazel build //metropolis/cli/dbg //:launch --config dbg
Launch an ephemeral test node:
bazel test //:launch --config dbg --test_output=streamed
Run a kubectl command while the test is running:
bazel-bin/metropolis/cli/dbg/dbg_/dbg kubectl describe node
Run full test suite:
bazel test --config dbg //...