Bug 651354

Summary: service 3proxy condrestart only does 'reload' under systemd
Product: [Fedora] Fedora Reporter: pankaj pandey <pankaj86>
Component: systemdAssignee: Lennart Poettering <lpoetter>
Status: CLOSED NEXTRELEASE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: low    
Version: 14CC: lpoetter, metherid, mschmidt, notting, pahan, plautrba, theinric
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2011-03-08 01:35:33 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description pankaj pandey 2010-11-09 11:28:01 UTC
Description of problem:
When running the system under the systemd init, doing
# service 3proxy condrestart
only results in reloading of the service and not restarting as expected.
This results in problems with the dispatcher script '/etc/NetworkManager/dispatcher.d/40-3proxy', which expects the service to restart for 3proxy to work properly under changing network.

Version-Release number of selected component (if applicable):
3proxy-0.6.1-10.fc14.x86_64

How reproducible:
always under systemd

Steps to Reproduce:
1. set and configure network proxy to 3proxy, and boot under systemd
2. disconnect network (eth0) and restart 3proxy so that it is in nonworking state
3. now connect the network
4. service 3proxy condrestart is called from the dispatcher script but 3proxy does not work, since systemd does reload of the service instead of restart

Actual results:
internet does not work behind 3proxy unless a manual call to 'service 3proxy restart' is made

Expected results:
internet should work behind 3proxy, (3proxy should be restarted instead of just reloading)

Additional info:
This bug probably falls under systemd, so you may reassign if that is the case.

The following output led me to believe systemd is converting condrestart calls to condreload:

[root@pankajlaptop ~]# service 3proxy status
3proxy.service - LSB: 3proxy Proxy Server
	  Loaded: loaded (/etc/rc.d/init.d/3proxy)
	  Active: active (running) since [Tue, 09 Nov 2010 15:52:11 +0530; 8min ago]
	 Process: 24793 (/etc/rc.d/init.d/3proxy stop, code=exited, status=0/SUCCESS)
	 Process: 24740 (/etc/rc.d/init.d/3proxy reload, code=exited, status=0/SUCCESS)
	 Process: 24805 (/etc/rc.d/init.d/3proxy start, code=exited, status=0/SUCCESS)
	  CGroup: name=systemd:/systemd-1/3proxy.service
		  └ 24810 /usr/bin/3proxy /etc/3proxy.cfg
[root@pankajlaptop ~]# service 3proxy restart 
Restarting 3proxy (via systemctl):                         [  OK  ]
[root@pankajlaptop ~]# service 3proxy status
3proxy.service - LSB: 3proxy Proxy Server
	  Loaded: loaded (/etc/rc.d/init.d/3proxy)
	  Active: active (running) since [Tue, 09 Nov 2010 16:01:36 +0530; 1s ago]
	 Process: 25361 (/etc/rc.d/init.d/3proxy stop, code=exited, status=0/SUCCESS)
	 Process: 24740 (/etc/rc.d/init.d/3proxy reload, code=exited, status=0/SUCCESS)
	 Process: 25374 (/etc/rc.d/init.d/3proxy start, code=exited, status=0/SUCCESS)
	  CGroup: name=systemd:/systemd-1/3proxy.service
		  └ 25379 /usr/bin/3proxy /etc/3proxy.cfg
[root@pankajlaptop ~]# service 3proxy condrestart 
Restarting 3proxy (via systemctl):                         [  OK  ]
[root@pankajlaptop ~]# service 3proxy status
3proxy.service - LSB: 3proxy Proxy Server
	  Loaded: loaded (/etc/rc.d/init.d/3proxy)
	  Active: active (running) since [Tue, 09 Nov 2010 16:01:36 +0530; 14s ago]
	 Process: 25361 (/etc/rc.d/init.d/3proxy stop, code=exited, status=0/SUCCESS)
	 Process: 25429 (/etc/rc.d/init.d/3proxy reload, code=exited, status=0/SUCCESS)
	 Process: 25374 (/etc/rc.d/init.d/3proxy start, code=exited, status=0/SUCCESS)
	  CGroup: name=systemd:/systemd-1/3proxy.service
		  └ 25379 /usr/bin/3proxy /etc/3proxy.cfg

Comment 1 pankaj pandey 2010-11-10 11:33:29 UTC
As a workaround i've replaced /etc/NetworkManager/dispatcher.d/40-3proxy file with following content:
#!/bin/sh
        if [ "$2" = "up" ]; then
        if /sbin/service 3proxy status; then
                # reload doesn't work for 3proxy
                # condrestart doesn't work for systemd-10-2
                /sbin/service 3proxy stop
                /sbin/service 3proxy start
        fi
        fi

Comment 2 Pavel Alexeev 2010-11-11 07:34:25 UTC
Firstly thank you very much for the bugreport.

Indeed, it seams systemd just do not restart service as requested. Reassigning.

Comment 3 Lennart Poettering 2011-03-08 01:35:33 UTC
"systemctl condrestart" has been changed a while back to actually mean a restart and never accidentaly trigger a reload instead. Closing.