Repository navigation
Disk failures: host signals and cases, corrupt signer-state guard, whole-filesystem disk-full playbook, sidecar host mode - #23
Merged
Conversation
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…orrupt signer-state guard, whole-filesystem disk-full playbook, sidecar host mode, --rpc for the chain instance Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…es logs; kernel journal: a quiet hour is 0 --since makes dockerd read a json-file log from its start on every sweep. New node compose files cap docker logs at 5 x 100 MB. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Disk failure handling, from a live disk-full drill on primium-6 (2026-10-15). Goes with cometduty
feat/disk-alerts(0.4.0); each tool still works alone.Triage (works without a monitor)
host.fs_readonly:findmnton the node home.host.kernel_disk_errors: kernel journal, last hour;sudo -nfirst, then the user's own view.host.disk_health_failed:smartctl -H, when installed.pvs.corrupt:priv_validator_state.jsonthat doesn't parse.host-fs-readonly,host-disk-io-errors,host-disk-failing,val-signer-state-corrupt.host-disk-full/-high/-free-lowplaybooks: they now look at the whole filesystem (du -xof the mount, files over 1G), not just the node's data directory. In the drill the 148 GiB filler sat outside the node home and the old step showed only 8.3 GiB.host-disk-fullfix steps: restart the node once space is free. A node that hits a full disk freezes and stays frozen after space returns.Docker logs
docker logs -t --tail 20000and cuts the time window itself.--sincemade dockerd read the node's whole json-file log on every sweep.logging:). The live nodes had 2.1–4.7 GB logs; existing nodes pick it up onnode.recreate.Safety
node.service start|restartandnode.recreaterefuse a validator whosepriv_validator_state.jsonis corrupt. It can't tell what it last signed and could double-sign.network export
/proc/1/mountsand/var/logread-only, plus the group that readskern.log. At deploy, cometcli checks what the host has and drops what it doesn't. A journald-only host such as Amazon Linux has nokern.log; triage reads the kernel journal there.--rpcnow works with--layout sidecar: it gives the chain instance a second endpoint. Without one, export says a stall there is reported on that node.CometdutyImage→cometduty:0.4.0: cometduty reads its config strictly, so the new keys need it. Merge and release cometduty 0.4.0 first.Live checks (primium-6)
kernel_disk_errors=1, and host-disk-io-errors (critical) matched. Ubuntu and Amazon Linux both reportfs_readonlyandkernel_disk_errors.kern.logonly on the Ubuntu hosts).Tests
go test ./...passes. New tests: signer-state parsing, the host fitting of sidecar files, and the chain instance's extra RPCs. The KB self-match test covers the new cases, and the healthy baseline includes the new signals.🤖 Generated with Claude Code