Events other than job results are forwarded to a random master #35588
Labels
Pending-Discussion
The issue or pull request needs more discussion before it can be closed or merged
stale
Milestone
Description of Issue/Question
In a multi-master / multi-syndic environment events other than job results (such as minion_start) are forwarded to a random master. If you want to watch the event bus for an event such as minion starting after a reboot, you never know which top level master gets it. This makes it pretty tough to make use of those events. Suppose you start a reboot job on a minion from one of the masters. Then the event that it went up arrives to the other one.
The reason for that behaviour is that MultiSyndic._forward_events() calls
_call_syndic() method without any master_id, which effectively forwards self.raw_events to a first syndic on the list. This can be easily changed so that a special master_id value (such as '*') makes _call_syndic() forward events to every available master. At least this works for me.
Setup
2 masters, 2 syndics connecting to both of them.
Steps to Reproduce Issue
Restart the minion on an end node a couple of times and see the event appearing on one of the masters (semi-randomly)
Versions Report
2016.3.2
The text was updated successfully, but these errors were encountered: