Bug 635780

Summary: dovecot becomes unresponsive after package update (condrestart should never fail)
Product: [Fedora] Fedora Reporter: Nicolas Mailhot <nicolas.mailhot>
Component: systemdAssignee: Lennart Poettering <lpoetter>
Status: CLOSED UPSTREAM QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: low    
Version: rawhideCC: jreiser, k.georgiou, lpoetter, mcepl, mcepl, metherid, mschmidt, notting, plautrba, theinric
Target Milestone: ---Keywords: Triaged
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2011-03-08 00:49:37 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:
Bug Depends On:    
Bug Blocks: 538278    

Description Nicolas Mailhot 2010-09-20 17:15:34 UTC
For some reason, on a systemd box, updating dovecot via yum makes imap clients unhappy. With the traditional init system this operation was transparent

# yum update
Running Transaction

  Updating       : 1:dovecot-2.0.3-1.fc14.x86_64                           7/26 
warning: /etc/dovecot/conf.d/15-lda.conf created as /etc/dovecot/conf.d/15-lda.conf.rpmnew
  Cleanup        : 1:dovecot-2.0.2-1.fc14.x86_64                          17/26 
 
Updated:
  dovecot.x86_64 1:2.0.3-1.fc14                                      

Complete!

→ Looking at the service after the yum update:

# service dovecot status
dovecot.service - LSB: start and stop Dovecot Imap server
	  Loaded: loaded (/etc/rc.d/init.d/dovecot)
	  Active: active (running) since [Sat, 18 Sep 2010 03:18:38 +0200; 2 days ago]
	 Process: 29489 (/etc/rc.d/init.d/dovecot reload, code=exited, status=0/SUCCESS)
	  CGroup: name=systemd:/systemd-1/dovecot.service
		  ├ 1503 /usr/sbin/dovecot
		  ├ 1505 dovecot/anvil
		  ├ 1506 dovecot/log
		  ├ 5769 dovecot/auth
		  ├ 5770 dovecot/ssl-params
		  └ 5801 dovecot/auth -w

→ active since two days!!! but the binary has just been replaced and should have been reloaded


# service dovecot restart
Restarting dovecot (via systemctl):                        [  OK  ]

→ and now everything works again

# service dovecot status
dovecot.service - LSB: start and stop Dovecot Imap server
	  Loaded: loaded (/etc/rc.d/init.d/dovecot)
	  Active: active (running) since [Mon, 20 Sep 2010 19:05:48 +0200; 5s ago]
	 Process: 29730 (/etc/rc.d/init.d/dovecot stop, code=exited, status=0/SUCCESS)
	 Process: 29489 (/etc/rc.d/init.d/dovecot reload, code=exited, status=0/SUCCESS)
	 Process: 29743 (/etc/rc.d/init.d/dovecot start, code=exited, status=0/SUCCESS)
	  CGroup: name=systemd:/systemd-1/dovecot.service
		  ├ 29750 /usr/sbin/dovecot
		  ├ 29753 dovecot/anvil
		  ├ 29754 dovecot/log
		  ├ 29755 dovecot/ssl-params
		  ├ 29756 dovecot/imap-login
		  ├ 29757 dovecot/config
		  ├ 29765 dovecot/auth
		  ├ 29772 dovecot/auth -w
		  └ 29776 dovecot/imap

Version-Release number of selected component (if applicable):
systemd-units-10-1.fc14.x86_64
systemd-gtk-10-1.fc14.x86_64
systemd-sysvinit-10-1.fc14.x86_64
systemd-10-1.fc14.x86_64

Comment 1 Bill Nottingham 2010-09-20 17:40:11 UTC
Does simply running 'service dovecot condrestart' provoke the same issue?

Comment 2 Michal Schmidt 2010-09-20 18:30:00 UTC
It does here.

The bug seems to be in src/systemctl.c where "condrestart" is interpreted as as request for "ReloadOrTryRestartUnit".

Fedora Packaging Guidelines require that "condrestart" must be equivalent to "try-restart". See http://fedoraproject.org/wiki/Packaging:SysVInitScript#condrestart_and_try-restart

So "condrestart" should be translated to "TryRestartUnit".

Comment 3 Michal Schmidt 2010-09-20 18:45:49 UTC
posted a patch:
http://lists.freedesktop.org/archives/systemd-devel/2010-September/000387.html

Comment 4 Bill Nottingham 2010-09-20 18:48:16 UTC
Would this also fix bug 632620 and bug 633774?

Comment 5 Michal Schmidt 2010-09-20 19:16:12 UTC
I don't think so.

Comment 6 Matthias Clasen 2010-10-08 22:46:18 UTC
Moving systemd bugs to f15, since the systemd feature got delayed.

Comment 7 Matěj Cepl 2010-12-29 11:09:06 UTC
*** Bug 655116 has been marked as a duplicate of this bug. ***

Comment 8 Matěj Cepl 2010-12-29 11:17:05 UTC
Also, how does this bug relate to the fact, that dovecot never gets started automatically on reboot even though it is chkconfiged on? (will have to reboot to obtain good error message)

Comment 9 Matěj Cepl 2010-12-29 11:33:22 UTC
See also bug 651354 ... condrestart should lead eventually to restart not reload.

Comment 10 Stephen Gallagher 2011-03-04 01:30:05 UTC
*** Bug 680074 has been marked as a duplicate of this bug. ***

Comment 11 Lennart Poettering 2011-03-08 00:49:37 UTC
"condrestart" has now been synomymous to "try-restart" for a while, and with current git we no longer generate an error if condrestart is used on a service that isn't running. This should resolve this issue.