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 [email protected]. To post to this group, send email to [email protected]. Visit this group at http://groups.google.com/group/puppet-bugs. For more options, visit https://groups.google.com/groups/opt_out.
