Bug 843116 - dovecot starts too early
dovecot starts too early
Status: CLOSED CURRENTRELEASE
Product: Fedora
Classification: Fedora
Component: dovecot (Show other bugs)
17
Unspecified Unspecified
unspecified Severity unspecified
: ---
: ---
Assigned To: Michal Hlavinka
Fedora Extras Quality Assurance
:
Depends On: 851131
Blocks:
  Show dependency treegraph
 
Reported: 2012-07-25 12:02 EDT by Ralf Corsepius
Modified: 2012-11-14 21:38 EST (History)
2 users (show)

See Also:
Fixed In Version: dovecot-2.1.10-2.fc17
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed: 2012-11-14 21:38:50 EST
Type: Bug
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---


Attachments (Terms of Use)

  None (edit)
Description Ralf Corsepius 2012-07-25 12:02:59 EDT
Description of problem:

I am using nfs-autofs-automounted homes.

When booting up, dovecot fails start up properly, AFAIU, because these users' homes are not yet available:


[root@beck ~]# systemctl status dovecot.service
dovecot.service - Dovecot IMAP/POP3 email server
	  Loaded: loaded (/usr/lib/systemd/system/dovecot.service; enabled)
	  Active: active (running) since Wed, 25 Jul 2012 17:51:35 +0200; 3min 40s ago
	Main PID: 655 (dovecot)
	  CGroup: name=systemd:/system/dovecot.service
		  ├ 655 /usr/sbin/dovecot -F
		  ├ 685 dovecot/anvil
		  ├ 686 dovecot/log
		  └ 691 dovecot/config

Jul 25 17:51:35 beck dovecot[655]: master: Dovecot v2.1.8 starting up (cor...d)
Jul 25 17:51:35 beck dovecot[655]: master: Warning: /var/ftp/pub is no lon...nt
Jul 25 17:51:35 beck dovecot[655]: master: Warning: /misc is no longer mou...nt
Jul 25 17:51:35 beck dovecot[655]: master: Warning: /net is no longer moun...nt
Jul 25 17:51:35 beck dovecot[655]: master: Warning: /users is no longer mo...nt
Jul 25 17:51:35 beck dovecot[655]: master: Warning: /run/user/corsepiu/gvf...nt
[root@beck ~]# systemctl restart dovecot.service
[root@beck ~]# systemctl status dovecot.service
dovecot.service - Dovecot IMAP/POP3 email server
	  Loaded: loaded (/usr/lib/systemd/system/dovecot.service; enabled)
	  Active: active (running) since Wed, 25 Jul 2012 17:55:42 +0200; 3s ago
	Main PID: 1723 (dovecot)
	  CGroup: name=systemd:/system/dovecot.service
		  ├ 1723 /usr/sbin/dovecot -F
		  ├ 1727 dovecot/anvil
		  ├ 1728 dovecot/log
		  └ 1730 dovecot/config

Jul 25 17:55:42 beck dovecot[1723]: master: Dovecot v2.1.8 starting up (core dumps disabled)


Version-Release number of selected component (if applicable):
dovecot-2.1.8-1.fc17.x86_64

How reproducible:
Always.

Manually restarting dovecot resolves this issue.


Actual results:
After bootup, such users can't access mail.
After manually restarting dovecot (cf. above), mail access works again.

Expected results:
Function. FC16 did not exhibit this behavior.
Comment 1 Michal Hlavinka 2012-07-27 06:30:24 EDT
please try if following helps:
create /etc/systemd/system/dovecot.service with content:
.include /usr/lib/systemd/system/dovecot.service
[Unit]
After=autofs.service

and reboot. Does it help?
Comment 2 Ralf Corsepius 2012-07-27 10:44:05 EDT
(In reply to comment #1)
> Does it help?
No, it doesn't.

# cat /etc/systemd/system/dovecot.service
.include /usr/lib/systemd/system/dovecot.service
[Unit]
After=autofs.service

After rebooting, user "corsepiu" logging-in into xfce via gdm and launching thunderbird:

# systemctl status dovecot.service
dovecot.service - Dovecot IMAP/POP3 email server
	  Loaded: loaded (/etc/systemd/system/dovecot.service; enabled)
	  Active: active (running) since Fri, 27 Jul 2012 16:32:19 +0200; 5min ago
	Main PID: 834 (dovecot)
	  CGroup: name=systemd:/system/dovecot.service
		  ├ 834 /usr/sbin/dovecot -F
		  ├ 868 dovecot/anvil
		  └ 869 dovecot/log

Jul 27 16:32:19 beck dovecot[834]: master: Dovecot v2.1.8 starting up (core...d)
Jul 27 16:32:19 beck dovecot[834]: master: Warning: /run/user/corsepiu/gvfs...nt
Jul 27 16:32:45 beck dovecot[869]: imap-login: Login: user=<corsepiu>, meth...o>
Jul 27 16:32:45 beck dovecot[869]: imap(corsepiu): Error: chdir(/users/cors...ks
Jul 27 16:32:45 beck dovecot[869]: imap(corsepiu): Error: user corsepiu: In...iu
Jul 27 16:32:45 beck dovecot[869]: imap(corsepiu): Error: Invalid user sett...n.
Comment 3 Michal Hlavinka 2012-08-23 05:20:55 EDT
OK, I tried to reproduce this. 

Environment:
mkdir /home/auto
adduser -d /home/auto/afsuser afsuser
passwd afsuser
new /etc/auto.home with following line:
afsuser -fstype=ext3,loop,rw :/home/disk.img
added "/home/auto /etc/auto.home" to /etc/auto.master
chkconfig dovecot on
chkconfig autofs on
dd if=/dev/zero of=/home/disk.img bs=1M count=100
mkfs.ext3 -F /home/disk.img
mount /home/disk.img /mnt -oloop
mv /home/auto/afsuser /mnt
umount /mnt

default dovecot configuration, set mail_location=maildir:~/Maildir

configure thunderbird to use afsuser@localhost:143

1) Reproduce - force autofs started *after* (note "Before=") dovecot:
# cat /etc/systemd/system/dovecot.service 
.include /usr/lib/systemd/system/dovecot.service
[Unit]
Before=autofs.service

reboot, add enforcing=0 to kernel cmd line

start thunderbird -> "Login to server localhost failed."
service dovecot status:
master: Dovecot v2.1.9 starting up (core dumps disabled)
master: Warning: /misc is no longer mounted. See http://wiki2.dovecot.org/Mountpoints
master: Warning: /net is no longer mounted. See http://wiki2.dovecot.org/Mountpoints
master: Warning: /home/auto is no longer mounted. See http://wiki2.dovecot.org/Mountpoints
imap-login: Login: user=<afsuser>, method=PLAIN, rip=::1, lip=::1, mpid=884, secured, session=<u5QeJdzHfAAAAAAAAAAAAAAAAAAAAAAB>
imap(afsuser): Error: user afsuser: Initialization failed: Namespace '': Can't create mailbox root dir /home/auto/afsuser/...ount remove
imap(afsuser): Error: Invalid user settings. Refer to server log for more information.

-> reproducible

2) Try the fix - start dovecot after autofs:
# cat /etc/systemd/system/dovecot.service 
.include /usr/lib/systemd/system/dovecot.service
[Unit]
After=autofs.service

reboot

cat /var/log/boot.log:
         Starting Automounts filesystems on demand...
.........
[  OK  ] Started Automounts filesystems on demand.
         Starting Dovecot IMAP/POP3 email server...
[  OK  ] Started Dovecot IMAP/POP3 email server.

so dovecot really is started after autofs

thunderbird -> Login failed again

service dovecot status:
dovecot: master: Dovecot v2.1.9 starting up (core dumps disabled)
dovecot: imap-login: Login: user=<afsuser>, method=PLAIN, ...
dovecot: imap(afsuser): Error: chdir(/home/auto/afsuser) failed: Too many levels of symbolic links

WTF?

# cat chdircheck.c 
#include <unistd.h>
#include <stdio.h>
#include <errno.h>

int main(int argc, char **argv)
{
  int r=chdir("/home/auto/afsuser");
  fprintf(stderr,"Return code is: %d, errno=%d : %m\n",r,errno);
  return r;
}

gcc chdircheck.c -o /home/chdircheck
to /etc/.../dovecot.service added:
[Service]
ExecStartPre=/home/chdircheck

reboot
service dovecot status: failed
/var/log/messages: 
chdircheck[608]: Return code is: -1, errno=40 : Too many levels of symbolic links

seems there is some problem with autofs. I'll investigate and file a new bug.
Comment 4 Michal Hlavinka 2012-08-23 06:25:39 EDT
> seems there is some problem with autofs. I'll investigate and file a new bug.

the bug seems to be in systemd or kernel : bug #851131
Comment 5 Michal Hlavinka 2012-10-18 11:50:19 EDT
That systemd bug won't be fixed in Fedora 17 nor 16, but there should be workaround for that bug.

please try if following helps:
create /etc/systemd/system/dovecot.service with content:



.include /usr/lib/systemd/system/dovecot.service
[Unit]
After=autofs.service

[Service]
PrivateTmp=false




and reboot. Does it help?
Comment 6 Ralf Corsepius 2012-10-19 01:41:17 EDT
(In reply to comment #5)
> That systemd bug won't be fixed in Fedora 17 nor 16,
Is anybody surprized, why Fedora is loosing users? I regret, but such kind of regressions, definitely contribute their share to the "great Fedora experience".

> but there should be
> workaround for that bug.
... 
> please try if following helps:
> create /etc/systemd/system/dovecot.service with content:
...
> and reboot. Does it help?

Seems so. At least, dovecot appeared working properly after 2 reboots for me.

Thanks for you efforts.
Comment 7 Michal Hlavinka 2012-11-02 07:41:06 EDT
Should be fixed in dovecot-2.1.10-2.fc17 I did not use 'After=autofs.service', because for my testing it was not necessary. Only the systemd workaround was required.
Comment 8 Fedora Update System 2012-11-02 08:26:59 EDT
dovecot-2.1.10-2.fc17 has been submitted as an update for Fedora 17.
https://admin.fedoraproject.org/updates/dovecot-2.1.10-2.fc17
Comment 9 Fedora Update System 2012-11-03 21:57:14 EDT
Package dovecot-2.1.10-2.fc17:
* should fix your issue,
* was pushed to the Fedora 17 testing repository,
* should be available at your local mirror within two days.
Update it with:
# su -c 'yum update --enablerepo=updates-testing dovecot-2.1.10-2.fc17'
as soon as you are able to.
Please go to the following url:
https://admin.fedoraproject.org/updates/FEDORA-2012-17584/dovecot-2.1.10-2.fc17
then log in and leave karma (feedback).
Comment 10 Fedora Update System 2012-11-14 21:38:52 EST
dovecot-2.1.10-2.fc17 has been pushed to the Fedora 17 stable repository.  If problems still persist, please make note of it in this bug report.

Note You need to log in before you can comment on or make changes to this bug.