|
Copying Josh's comment...
In 2.7-3.1, splay behaved the same on windows and *nix in that splay would vary every agent run. The behavior was changed on *nix in 3.2.0 for https://projects.puppetlabs.com/issues/14766. As part of that change, runinterval is calculated relative to the start of each agent run (instead of the end) and splay is only applied to the first run, but not the 2nd, etc. That way if you're running puppet via cron, the first daemonized run will splay, and each run after should be at a constant runinterval seconds. Previously, users would see "peaks" as runs started to overlap.
I'm not sure how well known/understood the "new" *nix behavior is. The splay and splaylimit settings could use updating: https://docs.puppetlabs.com/references/latest/configuration.html#splay, and I know of at least one ticket: https://tickets.puppetlabs.com/browse/PUP-5542.
Assuming the current *nix behavior is correct, I would agree Windows is not correct, and should be ticketed. Windows runs as a service that essentially runs `puppet agent --onetime` every run interval seconds (https://github.com/puppetlabs/puppet/blob/master/ext/windows/service/daemon.rb#L74), and relies on puppet to splay each time. To match *nix behavior, the daemon would need to calculate the initial splay & splaylimit, and tell the agent to ignore those settings, so we don't get double-splay.
|