Daemonized puppet on Windows and splay

74 views
Skip to first unread message

Chris Spence

unread,
Oct 21, 2015, 11:41:24 AM10/21/15
to Puppet Users
We are running puppet (3.7.x) on Windows daemonized. We recently turned on splay because reasons. After having done so the interval between daemonised runs, counter to expectation, has become randomised (though we get an averageish run interval of 30 minutes (30.5 recurring)). The linuxes here have identical config and their runs are as regular as a muesli eating vegetarian. Here are some report times and approximate delta of a representative Windows 2012:

Oct 21 2015 - 16:03:27 (14)
Oct 21 2015 - 15:49:10 (28)
Oct 21 2015 - 15:21:14 (33)
Oct 21 2015 - 14:48:23 (32)
Oct 21 2015 - 14:16:47 (23)
Oct 21 2015 - 13:53:35 (36)
Oct 21 2015 - 13:17:57 (27)
Oct 21 2015 - 12:54:02 (29)
Oct 21 2015 - 12:25:20 (53)
Oct 21 2015 - 11:31:48

Before I raise this as a bug, has anyone else seen this happening?

Josh Cooper

unread,
Dec 16, 2015, 8:03:27 PM12/16/15
to puppet...@googlegroups.com

--
You received this message because you are subscribed to the Google Groups "Puppet Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to puppet-users...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/puppet-users/fc651143-df27-4bed-948e-6b593f21e465%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

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.

Josh

-- 
Josh Cooper
Developer, Puppet Labs
Reply all
Reply to author
Forward
0 new messages