chime-experiment / chime-experiment/coco

coco shouldn't update configs it doesn't send to the running system

Open
#254 2 comments 0 reactions 0 assignees View on GitHub
daemon
Dominant language
C++
Stars
3
Forks
2
PR merge metrics
No merged PRs in 30d

Description

Recap of the previous endpoint bug, now fixed:
* The DUT1 endpoint indicated updating the updatable_config for both the cluster and cluster-keep-warm `PersistentState`s
* But the kotekan config for keep-warm didn't include the updatable_config (an oversight on our part)

With this bad coco endpoint, the program flow in coco was something like:
* Receive update from DUT1, which indicates update to both cluster and cluster-keep-warm config
* coco updates the value in the cluster `PersistentState`
* coco fails to update the value in the cluster-keep-warm `PersistentState`
* Endpoint processing fails (with result 500 Internal Server Error)

This is a problem, because coco updated the `cluster` state but never sent it! So, later:

* coco runs the schedule cluster config check
* cluster config check fails because coco's internal copy of the cluster config (with the new DUT1 value) differs from what is on the cluster (no DUT1 update)

So one or more of these should be done:
* coco needs to be able to guarantee that changes to its internal state get pushed to downstream endpoints
* coco separately tracks states it _wants_ to send vs. configs it _has_ sent
* a failure in an endpoint causes a rollback of whatever was updated by the endpoint

Not sure which of these is best.

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.