We have 2 instances of route coordinated by zookeeper with MasterRoutePolicy. If zookeeper is disconnected, the quartz job is paused and left in that state after connection recovery. Later on, if another node shuts down, current node with paused job starts the route, despite wrong time.
How to reproduce:
- Run 2 instances with MasterRoutePolicy for leader selection connected to zookeeper with route from("quartz2://foobar?cron=0+0+15+?+*+MON-FRI").log("start");
- Simulate zookeeper disconnect (pull net cable etc.) on non-master -> Trigger is set to Paused. Log:
[Curator-ConnectionStateManager-0] org.apache.camel.component.quartz2.QuartzEndpoint: Pausing trigger foobar
- Reconnect to zookeeper
- Master node successfully runs the scheduled job, wait 5 min
- Shutdown master node -> the second node triggers the job even though it was already executed on master and cron time is in the past
Expected behavior is to skip running missed job in step 5.