[PUP-3062] The default unit for `splaylimit` should not be seconds. Created: 2014/08/14  Updated: 2019/06/19  Resolved: 2019/06/19

Status: Closed
Project: Puppet
Component/s: None
Affects Version/s: None
Fix Version/s: None

Type: Improvement Priority: Normal
Reporter: Zee Alexander Assignee: Unassigned
Resolution: Won't Fix Votes: 5
Labels: customer, help_wanted, support
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Team: Coremunity
CS Priority: Reviewed


runinterval defaults to minutes, and splaylimit defaults to runinterval

What's more, I can't imagine ever wanting to splay by seconds instead of minutes.

I'm not opposed to the option existing, but it should not be the default unit.

I've seen this confuse at least one customer, and it certainly took me time to notice this in the docs. Of course I should have read them more closely, but this is still confusing on its face.

Comment by Zee Alexander [ 2014/08/14 ]

The obvious caveat here would be that this change would break backwards compatibility. If this request is accepted it should be at some major release bump.

Comment by Andrew Parker [ 2014/08/14 ]

There are problems with defaulting this one to minutes: all of the other durations default to seconds. We could start changing each one to its own default unit, but that seems even more confusing. A good middle ground is to not allow values that don't specify the units (the "s" is always required, even if 5 seconds is wanted).

I think the way to move this forward would be to get a deprecation warning for Puppet 3.7 and change it to a failure in puppet 4.

Comment by Nick Walker [ 2017/05/22 ]

I agree that the only correct way to implement this change if we decide to do so is to error out if the unit is not specified instead of silently changing users splay to minutes when they now expect seconds.

Comment by Josh Cooper [ 2019/06/19 ]

The runinterval and splaylimit settings are both type duration. If you set either of them and don't specify units, then they both are interpreted as seconds. The reason this issue occurred is because runinterval defaults to 30m, but splaylimit was overridden as 60 which is interpreted as seconds.

I don't think requiring units is a good idea. It would be very disruptive without a lot of benefit, as everything that has ever set a puppet setting would need to be aware of units, such as puppet config set runinterval 30m, packaging (rpm, deb, msi), cloud-init scripts, kickstart, foreman, etc.

Closing this ticket.

Generated at Tue Jul 14 20:12:37 PDT 2020 using Jira 8.5.2#805002-sha1:a66f9354b9e12ac788984e5d84669c903a370049.