diff --git a/modules/mesh-delivery-assigner/cmd/mesh-delivery-assigner/main.go b/modules/mesh-delivery-assigner/cmd/mesh-delivery-assigner/main.go index 1f51d4bc..9fb35753 100644 --- a/modules/mesh-delivery-assigner/cmd/mesh-delivery-assigner/main.go +++ b/modules/mesh-delivery-assigner/cmd/mesh-delivery-assigner/main.go @@ -317,6 +317,7 @@ func follow(ctx context.Context, js jetstream.JetStream, nc process.Subscriber, reads := &enginereads.Keeper{Fallback: w.recordReads, Changed: wake, Logf: logger.Printf} if bus != nil { reads.Call = bus.CallKeptOn // a kept call, called again through a transport fault (ADR 0668 §1) + reads.Once = bus.CallOn // its fault keeps the fallback at once while the kept call asks on (ADR 0668 §3) } if kv := kvs[engineReadsBucket]; kv != nil { reads.Put = func(node string, v []byte) error { _, err := kv.Put(ctx, node, v); return err } diff --git a/modules/mesh-delivery-builder/cmd/mesh-delivery-builder/main.go b/modules/mesh-delivery-builder/cmd/mesh-delivery-builder/main.go index 71dd3e3d..71e15570 100644 --- a/modules/mesh-delivery-builder/cmd/mesh-delivery-builder/main.go +++ b/modules/mesh-delivery-builder/cmd/mesh-delivery-builder/main.go @@ -270,6 +270,7 @@ func run(ctx context.Context, getenv func(string) string, logOut io.Writer) erro // What each counted node's engine reads (ADR 0618 §2, ADR 0624 §1): asked through the node-engine seat's verb as the // builder's own account, for every node the assignments names, and kept in the state engine-reads once it is bound. reads := newEngineReads(calls.CallKeptOn, gate, logger.Printf) + reads.keeper.Once = calls.CallOn // its fault keeps the last statement at once while the kept call asks on (ADR 0668 §3) // The old reference form's window over them (DLV-B9), kept in the state old-form once it is bound; builder_old_form // reads it and drops a retired node by hand. reads.ctx = context.WithoutCancel(ctx) diff --git a/modules/mesh-delivery-indexer/cmd/mesh-delivery-indexer/main.go b/modules/mesh-delivery-indexer/cmd/mesh-delivery-indexer/main.go index 23d17e0e..d973cc3f 100644 --- a/modules/mesh-delivery-indexer/cmd/mesh-delivery-indexer/main.go +++ b/modules/mesh-delivery-indexer/cmd/mesh-delivery-indexer/main.go @@ -493,6 +493,7 @@ func run(ctx context.Context, getenv func(string) string, logOut io.Writer) erro // §2): asked through the node-engine seat's verb as the indexer's own account, for every node the assignments names, // kept in the state engine-reads once it is bound; each change weighs the holds again. reads := newEngineReads(calls.CallKeptOn, gate, func() { ix.KickHolds(ctx) }, logger.Printf) + reads.keeper.Once = calls.CallOn // its fault keeps the last statement at once while the kept call asks on (ADR 0668 §3) gate.OnPlaced = reads.placed ix.Counted, ix.AskEngines = reads.counted, reads.ask // The holds, new with ADR 0632 (issue 1790's kind), bound when they appear: until then a merge that would hold a