Issue #23319 has been updated by Alex D.

OK, thanks for the info. I'm not using EPEL, this issue with service 
refresh/restart exists in puppet-2.7.23 installed from puppetlabs repo:

<pre>
# puppet --version
2.7.23
</pre>

<pre>
# rpm -qi puppet
Name        : puppet                       Relocations: (not relocatable)
Version     : 2.7.23                            Vendor: Puppet Labs
Release     : 1.el6                         Build Date: Wed 14 Aug 2013 
09:44:16 PM UTC
Install Date: Wed 04 Dec 2013 11:04:08 AM UTC      Build Host: rpm-builder-5
Group       : System Environment/Base       Source RPM: 
puppet-2.7.23-1.el6.src.rpm
Size        : 3357077                          License: ASL 2.0
Signature   : RSA/SHA1, Thu 15 Aug 2013 02:10:55 PM UTC, Key ID 1054b7a24bd6ec30
URL         : http://puppetlabs.com
Summary     : A network tool for managing many disparate systems
</pre>

----------------------------------------
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-100989

* 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.

Reply via email to