[2.0b3] Tag changes depend on rack / cluster connection
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
MAAS |
Fix Released
|
Critical
|
Unassigned |
Bug Description
(This bug is knowingly being introduced by lp:~allenap/maas/rpc-tags-region to unblock other work.)
At present, the computation to see if a tag matches a specific node is done on that node's cluster controller.
However, if a cluster is unconnected (via RPC) at the moment a tag is changed, the cluster is skipped, and the tag is not evaluated. Until the next time that tag is changed (and the cluster is up) this situation will remain.
Previously, when we used a message queue, a cluster could be down at the moment a tag was edited, but it would consume the evaluate-tag message when it later came back up (or when communication was restored, ...).
One solution to this is to break the need to always do the computation on the node's cluster. If we spread the load between clusters that /are/ available, we can evaluate a changed tag regardless of the availability of a node's cluster.
We may later want to add the means to detect out-of-date tags from the database (we can't right now, and never have been able to) so that we can more robustly recover from failures.
Related branches
- Blake Rouse (community): Approve
- Gavin Panella (community): Abstain
-
Diff: 777 lines (+362/-136)7 files modifiedsrc/maasserver/api/tests/test_tag.py (+15/-18)
src/maasserver/models/tag.py (+58/-17)
src/maasserver/models/tests/test_tag.py (+95/-36)
src/maasserver/populate_tags.py (+77/-43)
src/maasserver/testing/factory.py (+13/-4)
src/maasserver/testing/orm.py (+1/-1)
src/maasserver/tests/test_populate_tags.py (+103/-17)
summary: |
- Tag changes will never be evaluated on unconnected clusters + [2.0b3] Tag changes will never be evaluated on unconnected clusters |
Changed in maas: | |
milestone: | none → 2.0.0 |
importance: | High → Critical |
summary: |
- [2.0b3] Tag changes will never be evaluated on unconnected clusters + [2.0b3] Tag changes depend on rack / cluster connection |
Changed in maas: | |
status: | Triaged → Fix Committed |
Changed in maas: | |
status: | Fix Committed → Fix Released |