ADR 0090: a failure is the same by resource id, not by the host's words
This commit is contained in:
@@ -34,8 +34,9 @@ identically for ever", and nothing escalated the second
|
|||||||
|
|
||||||
The mesh keeps, beside each machine's last report, when the current failure was first reported
|
The mesh keeps, beside each machine's last report, when the current failure was first reported
|
||||||
and how many reports in a row have said it — the same outcome, the same refusal, the same failed
|
and how many reports in a row have said it — the same outcome, the same refusal, the same failed
|
||||||
resources with the same words. A report that says something different starts the count again; a
|
resources by id. Not by the host's words: an error carrying a duration or a counter would read as
|
||||||
clean apply clears it. **Three identical reports in a row make a machine stuck**: `status` says
|
new on every report, and the resource looping on it is exactly what this is for. A report that
|
||||||
|
says something different starts the count again; a clean apply clears it. **Three identical reports in a row make a machine stuck**: `status` says
|
||||||
so beside the failure, with the count and the time it began, and the machine-readable status
|
so beside the failure, with the count and the time it began, and the machine-readable status
|
||||||
carries the same three facts. The host keeps retrying; being stuck is a statement about the
|
carries the same three facts. The host keeps retrying; being stuck is a statement about the
|
||||||
mesh's knowledge, not an instruction to the machine.
|
mesh's knowledge, not an instruction to the machine.
|
||||||
@@ -54,8 +55,8 @@ stay open in the issue's own questions.
|
|||||||
## How it is checked
|
## How it is checked
|
||||||
|
|
||||||
An inventory test records the same failure three times and asserts the count and the unchanged
|
An inventory test records the same failure three times and asserts the count and the unchanged
|
||||||
start; then a different failure, and asserts the count restarted; then a clean apply, and asserts
|
start; the same resource failing in other words, and asserts the count went on; a different
|
||||||
both cleared. The status command's own test asserts a stuck machine is said to be one.
|
failure, and asserts it restarted; a clean apply, and asserts both cleared. The status command's own test asserts a stuck machine is said to be one.
|
||||||
|
|
||||||
## References
|
## References
|
||||||
|
|
||||||
|
|||||||
@@ -222,7 +222,7 @@ knows something the person reading the status does not.
|
|||||||
([ADR 0090](../../02-DECISIONS/0090-a-failure-that-repeats-is-said-to-be-stuck.md)). A machine
|
([ADR 0090](../../02-DECISIONS/0090-a-failure-that-repeats-is-said-to-be-stuck.md)). A machine
|
||||||
re-applies on its interval and reports each time, so a resource nothing can ever apply arrives as
|
re-applies on its interval and reports each time, so a resource nothing can ever apply arrives as
|
||||||
the same failure over and over, at a fresh time each time. The mesh keeps, beside the last report,
|
the same failure over and over, at a fresh time each time. The mesh keeps, beside the last report,
|
||||||
when the current failure began and how many reports in a row have said it; three make the machine
|
when the current failure began and how many reports in a row have said it — the same resources by
|
||||||
stuck, and `status` says so beside the failure. The host keeps trying — stuck is what the mesh
|
id, whatever the words; three make the machine stuck, and `status` says so beside the failure. The host keeps trying — stuck is what the mesh
|
||||||
knows, not what the machine is told. *How it is checked:* an inventory test counts three identical
|
knows, not what the machine is told. *How it is checked:* an inventory test counts three identical
|
||||||
reports, a different one, and a clean apply; the status test asserts the word appears.
|
reports, a different one, and a clean apply; the status test asserts the word appears.
|
||||||
|
|||||||
Reference in New Issue
Block a user