This prevents some nasty races where a BackPoke could arrive on a paused vertex either during a resume or pause operation. Previously we might also have poked an excessive number of resources on resume. The solution was to discard BackPokes during pause or resume. On pause, they can be discarded because we've asked the graph to quiesce, and any further work can be done on resume, and on resume we ignore them because this should only happen during the unrolling (reverse topological resume of the graph) and at the end of this the indegree == 0 vertices will initiate a series of pokes which should deal with any BackPoke that was possibly discarded. One other aspect of this which is important: if an indegree == 0 vertex is poked (Process runs) but it's already in the correct state, it should still transmit the Poke through itself so that subsequent vertices know to run. Currently this is done correctly in Process(). I'm a bit ashamed that this wasn't done properly in the engine earlier, but I suppose that's what comes out of running fancier graphs and really thinking in detail about what's truly correct. Hopefully I got it right this time!
mgmt: next generation config management!
Community:
Come join us in the mgmt community!
| Medium | Link | |
|---|---|---|
| IRC | #mgmtconfig on Freenode | |
| @mgmtconfig & #mgmtconfig | ||
| Mailing list | mgmtconfig-list@redhat.com |
Status:
Mgmt is a fairly new project. We're working towards being minimally useful for production environments. We aren't feature complete for what we'd consider a 1.x release yet. With your help you'll be able to influence our design and get us there sooner!
Documentation:
Please read, enjoy and help improve our documentation!
| Documentation | Additional Notes |
|---|---|
| general documentation | for everyone |
| quick start guide | for mgmt developers |
| resource guide | for mgmt developers |
| godoc API reference | for mgmt developers |
| prometheus guide | for everyone |
| puppet guide | for puppet sysadmins |
Questions:
Please ask in the community! If you have a well phrased question that might benefit others, consider asking it by sending a patch to the documentation FAQ section. I'll merge your question, and a patch with the answer!
Roadmap:
Please see: TODO.md for a list of upcoming work and TODO items. Please get involved by working on one of these items or by suggesting something else! Feel free to grab one of the straightforward #mgmtlove issues if you're a first time contributor to the project or if you're unsure about what to hack on!
Bugs:
Please set the DEBUG constant in main.go to true, and post the logs when you report the issue.
Bonus points if you provide a shell or OMV reproducible test case.
Feel free to read my article on debugging golang programs.
Patches:
We'd love to have your patches! Please send them by email, or as a pull request.
On the web:
Happy hacking!
