Issue #2521 has been updated by Kjetil Torgrim Homme.
R.I. Pienaar wrote:
> Kjetil Torgrim Homme wrote:
>
> > I wouldn't call it non-POSIX semantics, but clearly the daemon in question
> > is making assumptions which do not hold in all POSIX systems. it would be
> > nice if Volcane could identify the errant daemon more accurately so we
> > could investigate the root cause.
>
> I mentioned crond. But really as this ticket has gone for almost a year and
> a half I dont recall the specifics.
well, "crond" could be a dozen implementations. I looked at cronie and it
should handle Puppet's handling fine.
> But it will affect many things, if you're creating files and moving them into
> place there's a race condition between your creation time and the time the
> daemon checked for files matching its expected filename pattern.
we get a problem if the daemon filters files by comparing the file's mtime to
the directory's mtime. this is a dubious practice, and it should keep more
state to work more reliably (e.g., remembering a timestamp for the last
processed file will solve the problem wrt. Puppet. to handle rename(2)d files
in general, you need more state, perhaps the way cronie does it.)
----------------------------------------
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.