Issue #3873 has been updated by Daniel Pittman.
Eric Lindvall wrote: > Could you give some real-world scenarios where the current behavior would be > the correct behavior? Solid question. You have convinced me to change my mind. I thought that I could, but trying to find an example where this was the correct behaviour, *and* that was better than the costs of the problems, changed my view. > I don't see how the `/./` hack is something that could honestly be argued is > the right way to get out of the dependency loop. No, that is actually another bug that you are sneaking through there - we *should* treat the canonical, cleaned-up name of a file as the thing we demand is unique. Otherwise `/foo`, `//foo`, and `///foo` can all be managed as if distinct, while actually being the same file. When that gets fixed, if it does, this loophole would go away. ---------------------------------------- Bug #3873: Unexpected dependency created by exec https://projects.puppetlabs.com/issues/3873 Author: Ben Beuchler Status: Needs Decision Priority: Normal Assignee: Randall Hansen Category: RAL Target version: Affected Puppet version: 0.25.4 Keywords: Branch: It looks like the Exec type is automatically creating dependencies on any files mentioned in the "onlyif" and "unless" parameters. While I understand that this is likely to be the most commonly desired behavior, it can unexpectedly break things. As an example, this is the code that triggered the behavior for me: <pre> class syslog-ng::weblogger inherits syslog-ng { $alp = "/var/spool/apache2/access_log_pipe" file { "/var/spool/apache2": ensure => directory, owner => www-data, group => www-data } File["/etc/syslog-ng/syslog-ng.conf"] { require => File[ "$alp" ] } # If apache started first and created $alp as a normal file, delete # it. exec { "cleanup_alp": command => "/bin/rm ${alp}", unless => "/usr/bin/test -p ${alp}", } # If the FIFO doesn't exist, create it. exec { "access_log_pipe": command => "/usr/bin/mkfifo ${alp}", unless => "/usr/bin/test -p ${alp}", require => Exec["cleanup_alp"], } # Ensure permissions are correct on the pipe. file { "$alp": ensure => present, owner => www-data, group => www-data, mode => 0770, require => Exec["access_log_pipe"] } } </pre> I'll attach the relevant section of the `--graph` output. Note the unrequested dependency between `Exec[cleanup_alp]` and `File[/var/spool/apache2/access_log_pipe]`. Filing this as a bug as suggested by Dan Bode: http://groups.google.com/group/puppet-users/browse_thread/thread/73a98af374c3f7f2 -- 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.
