schedules: keep projecting a schedule whose definition stops decoding
A reconcile projected only the definitions this build decodes, so after a rollback an agent's already-projected schedule whose definition a newer build rewrote was dropped from its key within a minute and stopped firing. The projection now keeps an agent's stored entries whose id belongs to an unreadable definition, as they were; it never adds one to a key that did not hold it. A deleted readable definition still leaves every key.
This commit is contained in:
parent
29aa242201
commit
3464a912bf
2 changed files with 78 additions and 22 deletions
|
|
@ -94,10 +94,11 @@ involved.
|
|||
`all`. Agents hold no grant on this bucket. Each change re-reads the key and
|
||||
writes against its revision, so a prompt exists for every one of its agents or for
|
||||
none of them, and two changes at once don't lose one. The controller leaves a
|
||||
prompt it can't decode, such as one a newer build wrote, out of the list and
|
||||
out of every agent's key, with a warning in its log. It keeps the prompt in
|
||||
the document as it was, after the others, and won't reuse its id. A document
|
||||
that isn't an object with a list of `schedules` is an error.
|
||||
prompt it can't decode, such as one a newer build wrote, out of the list, with
|
||||
a warning in its log. An agent's key that already held the prompt keeps it as
|
||||
it was, so it goes on firing, and no other key gets it. The controller keeps
|
||||
the prompt in the document as it was, after the others, and won't reuse its
|
||||
id. A document that isn't an object with a list of `schedules` is an error.
|
||||
|
||||
`agent-schedules` holds one key per agent: the prompts naming that agent,
|
||||
without their names or other agents. A key the controller can't decode counts
|
||||
|
|
|
|||
Loading…
Reference in a new issue