Issue #23319 has been updated by Dominic Cleal. Status changed from Unreviewed to Duplicate
This was #7165, fixed in 3.2. On the off-chance you're using EPEL, I notice there's a regression between 2.6.18 and 2.7.23 where the patch wasn't carried forward. I've filed this as https://bugzilla.redhat.com/show_bug.cgi?id=1038041. ---------------------------------------- Bug #23319: Unnecessary service restart when service is down and we set "ensure => running" and subscribe the service to some file(s) in puppet-2.7 https://projects.puppetlabs.com/issues/23319#change-100988 * Author: Alex D * Status: Duplicate * Priority: High * Assignee: * Category: * Target version: * Affected Puppet version: * Keywords: * Branch: ---------------------------------------- Steps to reproduce: 1) create test.pp file: <pre> service { "nginx": ensure => running, enable => true, subscribe => File["/tmp/test1"]; } file { "/tmp/test1": ensure => file, content => "kasjakjksjjks"; } </pre> 2) Install nginx and set error_log level to "info" 3) Make sure nginx is down and "/tmp/test1" file does not exist: <pre> service nginx stop rm -f /tmp/test1 </pre> 4) Apply the test.pp file: <pre> puppet apply test.pp </pre> Result: puppet brings nginx service up and then restarts it. Result in stdout: <pre> notice: /Stage[main]//File[/tmp/test1]/ensure: defined content as '{md5}502675e3d4e9692deb2e3b2e262450c1' notice: /Stage[main]//Service[nginx]/ensure: ensure changed 'stopped' to 'running' notice: /Stage[main]//Service[nginx]: Triggered 'refresh' from 1 events </pre> Result in nginx log: <pre> 2013/11/29 16:44:38 [notice] 3900#0: using the "epoll" event method 2013/11/29 16:44:38 [notice] 3900#0: nginx/1.0.15 2013/11/29 16:44:38 [notice] 3900#0: built by gcc 4.4.7 20120313 (Red Hat 4.4.7-3) (GCC) 2013/11/29 16:44:38 [notice] 3900#0: OS: Linux 2.6.32-358.123.2.openstack.el6.x86_64 2013/11/29 16:44:38 [notice] 3900#0: getrlimit(RLIMIT_NOFILE): 1024:4096 2013/11/29 16:44:38 [notice] 3901#0: start worker processes 2013/11/29 16:44:38 [notice] 3901#0: start worker process 3904 2013/11/29 16:44:38 [notice] 3901#0: signal 15 (SIGTERM) received, exiting 2013/11/29 16:44:38 [notice] 3904#0: exiting 2013/11/29 16:44:38 [notice] 3904#0: exit 2013/11/29 16:44:38 [notice] 3901#0: signal 17 (SIGCHLD) received 2013/11/29 16:44:38 [notice] 3901#0: worker process 3904 exited with code 0 2013/11/29 16:44:38 [notice] 3901#0: exit 2013/11/29 16:44:38 [notice] 3940#0: using the "epoll" event method 2013/11/29 16:44:38 [notice] 3940#0: nginx/1.0.15 2013/11/29 16:44:38 [notice] 3940#0: built by gcc 4.4.7 20120313 (Red Hat 4.4.7-3) (GCC) 2013/11/29 16:44:38 [notice] 3940#0: OS: Linux 2.6.32-358.123.2.openstack.el6.x86_64 2013/11/29 16:44:38 [notice] 3940#0: getrlimit(RLIMIT_NOFILE): 1024:4096 2013/11/29 16:44:38 [notice] 3941#0: start worker processes 2013/11/29 16:44:38 [notice] 3941#0: start worker process 3943 </pre> Strace: <pre> 2912 execve("/bin/env", ["env", "-i", "PATH=/sbin:/usr/sbin:/bin:/usr/bin", "TERM=screen", "/etc/init.d/nginx", "status"], [/* 28 vars */]) = 0 2912 execve("/etc/init.d/nginx", ["/etc/init.d/nginx", "status"], [/* 2 vars */]) = 0 2926 execve("/bin/env", ["env", "-i", "PATH=/sbin:/usr/sbin:/bin:/usr/bin", "TERM=screen", "/etc/init.d/nginx", "start"], [/* 28 vars */]) = 0 2926 execve("/etc/init.d/nginx", ["/etc/init.d/nginx", "start"], [/* 2 vars */]) = 0 2945 execve("/bin/env", ["env", "-i", "PATH=/sbin:/usr/sbin:/bin:/usr/bin", "TERM=screen", "/etc/init.d/nginx", "status"], [/* 28 vars */]) = 0 2945 execve("/etc/init.d/nginx", ["/etc/init.d/nginx", "status"], [/* 2 vars */]) = 0 2954 execve("/bin/env", ["env", "-i", "PATH=/sbin:/usr/sbin:/bin:/usr/bin", "TERM=screen", "/etc/init.d/nginx", "stop"], [/* 28 vars */]) = 0 2954 execve("/etc/init.d/nginx", ["/etc/init.d/nginx", "stop"], [/* 2 vars */]) = 0 2966 execve("/bin/env", ["env", "-i", "PATH=/sbin:/usr/sbin:/bin:/usr/bin", "TERM=screen", "/etc/init.d/nginx", "start"], [/* 28 vars */]) = 0 2966 execve("/etc/init.d/nginx", ["/etc/init.d/nginx", "start"], [/* 2 vars */]) = 0 </pre> Such behavior may break some services deployment (cluster services that start to synchronize on the first start and then get stopped/started again). -- 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 unsubscribe from this group and stop receiving emails from it, send an email to puppet-bugs+unsubscr...@googlegroups.com. To post to this group, send email to puppet-bugs@googlegroups.com. Visit this group at http://groups.google.com/group/puppet-bugs. For more options, visit https://groups.google.com/groups/opt_out.