Merge pull request 'Issue 087: a machine states its host only when the mesh sends it something' (#205) from issue/087-a-machine-says-its-host-only-when-asked into main
This commit was merged in pull request #205.
This commit is contained in:
@@ -54,6 +54,38 @@ Two deliberate refusals to guess:
|
||||
for a scheme where `10` sorts before `9`. Said in the code at the place that would have to learn,
|
||||
rather than left as a surprise.
|
||||
|
||||
## Measured on the mesh, and one limitation it exposed
|
||||
|
||||
All four machines run the identical host binary — same digest, installed within eighteen seconds of each
|
||||
other — and at first only one reported its version. The other three said *not reported*, which read as a
|
||||
difference between machines where there was none.
|
||||
|
||||
**A machine states its host version only when the mesh sends it a declaration.** The report is published
|
||||
after an apply; the periodic reconcile that runs every five minutes publishes nothing, because it is the
|
||||
machine keeping itself as declared rather than answering anything. So a machine that is current and idle
|
||||
never says, and the mesh cannot distinguish that from a machine running something ancient.
|
||||
|
||||
Confirmed by pushing: before, `not reported`; after, `04a27ca` — the same version the machine that had
|
||||
been pushed already reported.
|
||||
|
||||
```
|
||||
novox host 04a27ca
|
||||
shanks host 04a27ca
|
||||
g14 host 04a27ca
|
||||
ace host not reported — this machine has not said since the mesh began keeping it
|
||||
```
|
||||
|
||||
`ace` has not been pushed since the field existed; it is adopted and parked.
|
||||
|
||||
**This is enough for the purpose and not enough for the claim.** For deciding whether a new declaration
|
||||
field is safe it is sufficient, because pushing is what the mesh is about to do anyway and the answer
|
||||
arrives with the act. For *knowing what the mesh is running*, it is not: a long-idle machine's entry is
|
||||
as old as its last push, and the honest reading of `not reported` is "nobody has asked recently" rather
|
||||
than "this machine is silent". The words say the first, which is why they are those words.
|
||||
|
||||
Making a heartbeat carry it would close the gap and is a change to what a heartbeat is — a bare word
|
||||
that the node is there, deliberately carrying nothing else. Left alone rather than widened in passing.
|
||||
|
||||
## The open questions, answered as far as they can be
|
||||
|
||||
- *Should a node report the version of its host?* It already did. The gap was the reading.
|
||||
|
||||
Reference in New Issue
Block a user