jschoubben
338797a527
Knock under the apply's lock, and read what is owed first (review of this fix)
...
mesh/delivery merged: source.main moved to novox/mesh-host@e196058f6fb0
mesh/delivery-group group fix/provisioner-retries-on-declaration merged: every member is merged
mesh/check pass 338797a52703 on d75c66dc7e27 | unit 2301 run, 3410 kept, 10 skipped | integration 2326 run, 3431 kept, 13 skipped | over bound: unit, …
A write judged by the declaration before the apply settled could record its
refusal just after Knock found nothing owed: the original fault in a small
window. Knock now holds the apply's lock as a write does, reads no declaration
while nothing is owed, and its comment names Settled as its caller.
2026-10-25 21:49:23 +01:00
jschoubben
2c93f79429
Tell the provisioner's client to fill again once a settled apply may let through a write the filling refused (ace, 2026-10-25 21:17)
...
ace's filling refused mesh-build-go's files as not named as filled 32 s before
its want arrived; after the apply that named them nothing asked again, and the
runtime crash-looped on its missing broker credential. The filling now keeps
what it refused or failed and, when the node agent says a module's apply or
removal settled (agent.Env.Settled, called once what runs holds it), touches its
write socket if the declaration now names such a path, names the provisioner's
account, or a write had failed; the client watches that socket and fills every
module again. Said in the journal each time.
2026-10-25 21:42:41 +01:00
mesh-tools
5f16cf507a
Merge pull request 'Say a module's health is not yet judged while it changes, and judge it as soon as its change ends (issue 1945)' ( #141 ) from fix/r6-health-unknown into main
2026-10-25 15:04:54 +00:00
jschoubben
b32a27c115
Owe a look when a module's change ends unjudged, so a module with nothing long-running is ok within a look of its apply
...
mesh/delivery merged: source.main moved to novox/mesh-host@5f16cf507a0f
mesh/check pass b32a27c115a2 on 0dfbe1a179f2 | unit 292 run, 1060 kept, 5 skipped | integration 295 run, 1062 kept, 4 skipped | over bound: unit (slow…
The facts look inside an apply runs while the module is still applying and judges nothing; the
running write then left xorg running and unknown until the five-minute statement, holding every
x11-display consumer behind it. The running write now nudges the health loop, which looks and says
at once. A declaration's report gets the same motion and composition check, and a removed module
leaves nothing marked unjudged (review of fix 15).
2026-10-25 15:46:05 +01:00
jschoubben
c16e625a08
Say a module's health is not yet judged while its change is under way and until a look after it
...
A have said applying and failed for the controller on novox at 15:27:36, from a look at the
container being replaced, two seconds before its launch said healthy; the assigner held the
canary on it and set novox back. A look now judges only a module that is not in motion, and a
module whose composition moved carries unknown until a look after the move.
2026-10-25 15:32:59 +01:00
jschoubben
1cdb4d1a29
Say a module found running on its own have again at the agent's start, so its health is this engine's and not an older engine's unknown
...
xorg's have on g14 and shanks kept the unknown an engine before 958ccbd wrote: the
baseline believed the have and never handed the module to the session, so no look
rewrote its health, and the assigner held every module requiring x11-display back.
2026-10-25 15:27:23 +01:00
mesh-tools
0dfbe1a179
Merge pull request 'Drop the node's own copy of a resource a module composition declares, and give the kept declaration's filled paths to their modules (issue 1945)' ( #140 ) from fix/r6-own-composition-dupes into main
2026-10-25 13:51:00 +00:00
jschoubben
1bdbf47ffa
Leave out the node's own copy only by kind and id, never by a shared target (issue 1945, review)
...
mesh/delivery merged: source.main moved to novox/mesh-host@0dfbe1a179f2
mesh/check pass 1bdbf47ffa83 on 0dfbe1a179f2 | unit 302 run, 1044 kept, 5 skipped | integration 305 run, 1046 kept, 4 skipped | over bound: unit (slow…
A unit or container of the node's own that shares only its name with a
module's resource is not the module's: dropped, its record became an orphan
the apply removes, stopping the module's unit (1945/AC17).
2026-10-25 14:29:06 +01:00
jschoubben
16f84b53da
Leave the node's own copy of a module's resource out, and carry the kept declaration's filled paths (issue 1945)
...
The node's own composition and a module's both declared the same files, and
the joined declaration was refused whole ("2 resources declare X"): the
node's own copy is now left out when joining and at the node's own apply, and
said once (1945/AC17). A module still running from the kept declaration now
carries its filled paths, so the filling no longer refuses them as not named
as filled (1945/AC18).
2026-10-25 14:10:52 +01:00
mesh-tools
57b553ac5a
Merge pull request 'Apply the revision of a composition its want names, read from the key's history, when the latest has another digest (issue 1945)' ( #139 ) from fix/r6-want-names-revision into main
2026-10-25 12:30:40 +00:00
jschoubben
11a635796d
Bound a key's history read to 10 s and test it on a real bus; the witness test waits for its process to run from its image (issue 1945)
mesh/delivery merged: source.main moved to novox/mesh-host@57b553ac5a57
mesh/check pass 11a635796df9 on 57b553ac5a57 | unit 299 run, 1043 kept, 5 skipped | integration 302 run, 1045 kept, 4 skipped | over bound: unit (slow…
2026-10-25 12:51:00 +01:00
jschoubben
8343c4fb36
Apply the revision of a composition key whose digest the want names, from the revisions the bucket keeps (issue 1945)
2026-10-25 12:42:20 +01:00
mesh-tools
3e3e43de52
Merge pull request 'Never lose the bus to a replace of its own container (issue 1945)' ( #138 ) from fix/r6-bus-replace into main
2026-10-25 11:25:11 +00:00
jschoubben
175fb45c19
Take a container left set aside as the next apply's, and bound an apply to 30 minutes (issue 1945)
mesh/delivery merged: source.main moved to novox/mesh-host@3e3e43de5214
mesh/check pass 175fb45c19e3 on 3e3e43de5214 | unit 299 run, 1042 kept, 5 skipped | integration 302 run, 1043 kept, 4 skipped | over bound: unit (slow…
2026-10-25 12:18:50 +01:00
jschoubben
219169dbd9
Set a running container aside until its replacement runs, and put it back when the replacement does not come up (issue 1945)
2026-10-25 12:14:41 +01:00
jschoubben
b99d0b45bf
Run an apply in a context the bus's loss cannot end, and say why a killed command was killed (issue 1945)
2026-10-25 12:09:28 +01:00
jschoubben
f06058390c
Merge pull request 'Apply again a module whose resources are gone, move a module with nothing to back up, and report ok for a running module with nothing to watch (issue 1944)' ( #137 ) from fix/r6-reapply-missing into main
...
Reviewed-on: #137
2026-10-25 10:11:19 +00:00
jschoubben
958ccbde3e
Say a running module ok once looked at when nothing of it is judged, so mesh-host's canary can be healthy and its other nodes get the new engine (issue 1945)
mesh/delivery held for a person: merged without a passing check: only a person decides what follows
mesh/check pass 958ccbde3ed4 on f06058390c0f | unit 297 run, 1038 kept, 5 skipped | integration 300 run, 1039 kept, 4 skipped | over bound: unit (slow…
2026-10-25 11:08:10 +01:00
jschoubben
43d1c2456f
Apply a module again only for a newly missing resource, leave filled files out of the record check, and say when the applied state cannot be read (issue 1945)
2026-10-25 11:04:08 +01:00
jschoubben
c46937da04
Apply a module again when the engine holds no record of its resources or its health says one is missing, and move a module with nothing to back up without a backup (issue 1944, issue 1945)
2026-10-25 10:59:21 +01:00
jschoubben
cf455bc4fe
Merge pull request 'Never remove a module's resources while its own composition waits to be applied (issue 1944)' ( #136 ) from fix/r6-node-own-keeps-moved into main
...
Reviewed-on: #136
2026-10-25 09:23:28 +00:00
jschoubben
ecf142e451
Let only a module's wanted or newest composition hold the node's own apply back, never a stale refused one (issue 1945)
mesh/delivery merged: source.main moved to novox/mesh-host@cf455bc4fe3e
mesh/check pass ecf142e4513f on cf455bc4fe3e | unit 292 run, 1033 kept, 5 skipped | integration 295 run, 1034 kept, 4 skipped | over bound: unit (slow…
2026-10-25 02:01:24 +01:00
jschoubben
fa9e4483c8
Hold back the node's own apply while a module's composition cannot be read or is refused, naming it (issue 1944, issue 1945)
2026-10-25 02:56:20 +02:00
jschoubben
e62c32c8c3
Leave a record another module's composition now holds, whatever its type, instead of removing it in the node's own apply; a removed module holds nothing back (issue 1944, issue 1945)
2026-10-25 02:54:58 +02:00
jschoubben
2bfde7d659
Hold out a module whose own composition waits to be applied, so the node's own apply never removes the resources it moved there (issue 1944, issue 1945)
2026-10-25 02:52:10 +02:00
jschoubben
db06feed2e
Merge pull request 'Refuse an apply that would write a provisioner file empty, naming the file (issue 1944)' ( #135 ) from fix/r6-node-composition into main
...
Reviewed-on: #135
2026-10-25 00:17:56 +00:00
jschoubben
4e6b756bd2
Refuse an apply that would write a provisioner's file empty, read the node's own filled paths, and name the node's own composition when its apply fails (issue 1944, issue 1945)
mesh/delivery-group group fix/r6-node-composition held: a member is held: novox/mesh-sdk@10b6e202320f (merged without a passing check: only a person decides wh…
mesh/delivery held for a person: merged without a passing check: only a person decides what follows
mesh/check checking 4e6b756bd225 on b833d09d2872 | novox/mesh-host#135 in group fix/r6-node-composition
2026-10-25 01:49:00 +02:00
jschoubben
b833d09d28
Merge pull request 'R6: the node-engine applies from its wants and signed compositions, one module at a time; operator-signers (issue 1944)' ( #134 ) from feat/r6 into main
...
Reviewed-on: #134
2026-10-24 23:17:39 +00:00
jschoubben
81758b24a8
Pin mesh-sdk to feat/r6 748c564, which carries main's composer (issue 1943)
mesh/delivery-group group feat/r6 merged: every member is merged
mesh/delivery delivering: 0 machine step(s) passed
mesh/check checking 81758b24a8e4 on 285395d523e1 | novox/mesh-host#134 in group feat/r6
2026-10-24 23:06:00 +02:00
jschoubben
25ad5ce42c
Merge remote-tracking branch 'origin/main' into feat/r6
2026-10-24 23:00:09 +02:00
jschoubben
285395d523
Merge pull request 'R4g finish: merge-check.sh gone, reads-outside markers (issues 1295, 1935)' ( #133 ) from feat/r4g-finish into main
...
Reviewed-on: #133
2026-10-24 20:57:23 +00:00
jschoubben
b47df31834
Pin mesh-sdk to d7a9b96
2026-10-24 21:18:33 +02:00
jschoubben
fd05c8235d
Pin mesh-sdk to 7f9cc0e
2026-10-24 20:43:47 +02:00
jschoubben
98d1f165b7
Pin mesh-sdk to e45bdc0
2026-10-24 20:22:00 +02:00
jschoubben
332d8f161b
The carried genesis template no longer lists the controller's plan-moved event
2026-10-24 18:32:58 +02:00
jschoubben
5088755e5e
gofmt
2026-10-24 18:28:22 +02:00
jschoubben
e72c682450
Pin mesh-sdk to a523a8c
2026-10-24 18:18:06 +02:00
jschoubben
be5f31ce66
What runs is the agent's compositions plus the kept declaration's rest: health, filling, take act, directories and the others held out of an apply read it; a restart trusts the node-engine's own haves; the bed tests run off Arch (review round 1)
2026-10-24 18:13:40 +02:00
jschoubben
67db003813
Pin mesh-sdk to the head of feat/r6 (5da87a0)
2026-10-24 17:50:20 +02:00
jschoubben
e5a06cc73d
The node agent waits for a backup's end on the holder's event, not by polling; the manifest consumes it (R6-A A5)
2026-10-24 17:03:30 +02:00
jschoubben
20d0998cdd
The operator's public keys reach the node as the file operator-keys, fed by the node-engine's setting operator-signers (ADR 0539 clause 3)
2026-10-24 16:57:15 +02:00
jschoubben
83f16cff8d
apply FILE is no hand path: mesh-compose and a want are (ADR 0539 clause 10); genesis keeps the carried bundle
2026-10-24 16:55:23 +02:00
jschoubben
96d0322498
The node-engine reports reads-wants; a failed apply is said; the have's fingerprint and digest follow its health (R6-A A6)
2026-10-24 16:43:26 +02:00
jschoubben
b2003e7a38
A composition is applied only when the controller or the operator signed it; the node agent's integration tests on an embedded bus (R6-A A9, A1, A5)
2026-10-24 16:42:11 +02:00
jschoubben
3303797bfb
The node agent runs in the node-engine: watches the wants and compositions on the link, applies one module's composition, asks the backup, writes the haves (R6-A A1, A5, A6)
2026-10-24 16:39:51 +02:00
jschoubben
d5dd7761c6
The node agent: follows the wants and the node's compositions, applies one module at a time, backs a data module up first, holds it on a failed backup (R6-A A1, A2, A5, A6)
2026-10-24 16:36:21 +02:00
jschoubben
5f5f37b0b2
Pin mesh-sdk to feat/r6 S1-S3 (d6cef58): the composition bucket, the want's composition and backup answer, the have's composition and held phase
2026-10-24 16:31:20 +02:00
jschoubben
c30b86ae22
Proved: the evidence is a have under the running build (comment)
2026-10-24 16:26:39 +02:00
jschoubben
1598156752
The node-engine hears no declaration: the queue, orders, put-backs, unsaid, numbers and news go; a session says the facts in the node-engine's own order, and the first have proves a build (R6-A A7, A8)
2026-10-24 16:25:11 +02:00
jschoubben
e2b6f37168
Apply one module at a time: a scope of the module and what the others hold, and an owner record, so a removal is the module's own (R6-A A3, A4)
2026-10-24 16:16:32 +02:00