Issue #2521 has been updated by Daniel Pittman.
This ticket should be rejected: mtime reflects the time of changes to the
content of the file, which rename is not. The fact that only ctime changes is,
in fact, courtesy the kernel, not Ruby, which would have to do strange,
non-POSIX things to modify that behaviour.
I don't understand the root cause of the problem, but I certainly think we are
better off tracking that down and understanding it, not just papering over it
by adding non-POSIX semantics to file manipulation in puppet.
----------------------------------------
Bug #2521: file{} should update all timestamps when renaming files from temp
file.
https://projects.puppetlabs.com/issues/2521
Author: R.I. Pienaar
Status: Accepted
Priority: Normal
Assignee:
Category: file
Target version:
Affected Puppet version: 0.24.8
Keywords:
Branch:
At present puppet writes new files made with the file resource type using a
temp file then renames the temp file. Ruby rename only updates change time not
mtime.
This is a problem when interacting with daemons that monitor directories for
new files, like /etc/cron.d:
1) puppet creates /etc/cron.d/foo.zxxx
2) crond checks for new files matching its rules, the temp file does not match
does not get noticed, crond saves last checked timestamp
3) puppet renames /etc/cron.d/foo.zxxx -> /etc/cron.d/foo and only ctime gets
updated not mtime
4) crond checks for new files since last check, finds none.
I think puppet should probably touch both mtime and ctime after renaming a file.
--
You have received this notification because you have either subscribed to it,
or are involved in it.
To change your notification preferences, please click here:
http://projects.puppetlabs.com/my/account
--
You received this message because you are subscribed to the Google Groups
"Puppet Bugs" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/puppet-bugs?hl=en.