Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Engine healthcheck: deal with empty uuid file
In rare cases (believed to be caused by a non-atomic file creation and writing operation in containerd), we end up with an empty file at /mnt/data/docker/containerd/daemon/io.containerd.grpc.v1.introspection/uuid. This causes `ctr version` (and hence the health check) to fail. See balena-os/balena-engine#322 This PR addresses this issue in two ways: 1. Before running `ctr version`, we check if the uuid file exists and is empty. If so, we remove it. (The subsequent execution of `ctr version` by the healthcheck will create the file again.) 2. After running `ctr version`, we check if the uuid file was really created and is not empty. In both cases, when an empty uuid file is detected, we log the event and create a "breadcrumb" file at `/mnt/data/engine-healthcheck/` to help us confirm our hypothesis about the root cause. Signed-off-by: Leandro Motta Barros <[email protected]> Change-type: patch
- Loading branch information