[Dovecot] Dovecot-2.1.14 - pop3 processes always hangs forever

Axel Luttgens AxelLuttgens at swing.be
Fri Feb 8 16:39:38 EET 2013


Hello,

I'm currently experimenting with the 2.1.x series and am facing a behavior I can't explain; I must be doing something wrong and probably miss the obvious... ;-)

This is a very basic build on Mac OS X 10.8.2:

	./configure --prefix=/_COD/dovecot-2.1.14 --sysconfdir=/_ETC --localstatedir=/_VAR --with-sqlite --with-ldap=yes

(Yes, I know, a strange layout, yet very convenient for testing various things here.)

Dovecot's configuration is very basic too:

	# 2.1.14: /_ETC/dovecot/dovecot.conf
	# OS: Darwin 12.2.1 x86_64  
	auth_verbose = yes
	disable_plaintext_auth = no
	mail_debug = yes
	mail_location = mbox:~/mboxes:INBOX=~/mboxes/inbox
	passdb {
	  args = /_ETC/dovecot/db.conf
	  driver = sql
	}
	ssl = no
	userdb {
	  driver = prefetch
	}

It is started from launchd with the -F flag.

Two users are defined in the database, user1 (100002/100002) and user2 (100003/100003), with "virtual" uids/gids.

Connecting for the first time as user1 through imap:

	$ telnet 127.0.0.1 143
	Trying 127.0.0.1...
	Connected to localhost.
	Escape character is '^]'.
	* OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE IDLE AUTH=PLAIN] Dovecot ready.
	a login user1 pass1
	a OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE IDLE SORT SORT=DISPLAY THREAD=REFERENCES THREAD=REFS THREAD=ORDEREDSUBJECT MULTIAPPEND UNSELECT CHILDREN NAMESPACE UIDPLUS LIST-EXTENDED I18NLEVEL=1 CONDSTORE QRESYNC ESEARCH ESORT SEARCHRES WITHIN CONTEXT=SEARCH LIST-STATUS SPECIAL-USE] Logged in
	b logout
	* BYE Logging out
	b OK Logout completed.
	Connection closed by foreign host.

In mail.log:

	dovecot[2997]: imap-login: Login: user=<user1>, method=PLAIN, rip=127.0.0.1, lip=127.0.0.1, mpid=3006, secured, session=<EOWWzjbVxQB/AAAB>
	dovecot[2997]: imap(user1): Debug: Effective uid=100002, gid=100002, home=/_Data/Mailstores/100002
	dovecot[2997]: imap(user1): Debug: Home dir not found: /_Data/Mailstores/100002
	dovecot[2997]: imap(user1): Debug: fs: root=/_Data/Mailstores/100002/mboxes, index=, control=, inbox=/_Data/Mailstores/100002/mboxes/inbox, alt=
	dovecot[2997]: imap(user1): Debug: Namespace : /_Data/Mailstores/100002/mboxes doesn't exist yet, using default permissions
	dovecot[2997]: imap(user1): Debug: Namespace : Using permissions from /_Data/Mailstores/100002/mboxes: mode=0700 gid=-1
	dovecot[2997]: imap(user1): Disconnected: Logged out in=8 out=362

While logged in (ie after the login and before the logout), "doveadm who" shows:

	username # proto (pids) (ips)                                                                         
	user1    1 imap  (3093) (127.0.0.1)                                                                   

So far, so good.

Now, let's connect as user2 for the first time, through pop:

	$ telnet 127.0.0.1 110
	Trying 127.0.0.1...
	Connected to localhost.
	Escape character is '^]'.
	+OK Dovecot ready.
	user user2
	+OK
	pass pass2

and the session hangs forever.

This is written in the log:

	dovecot[2997]: pop3-login: Login: user=<user2>, method=PLAIN, rip=127.0.0.1, lip=127.0.0.1, mpid=3113, secured, session=<GTOlMjfV3gB/AAAB>
	dovecot[2997]: pop3(user2): Debug: Effective uid=100003, gid=100003, home=/_Data/Mailstores/100003
	dovecot[2997]: pop3(user2): Debug: Home dir not found: /_Data/Mailstores/100003
	dovecot[2997]: pop3(user2): Debug: fs: root=/_Data/Mailstores/100003/mboxes, index=, control=, inbox=/_Data/Mailstores/100003/mboxes/inbox, alt=
	dovecot[2997]: pop3(user2): Debug: Namespace : /_Data/Mailstores/100003/mboxes doesn't exist yet, using default permissions
	dovecot[2997]: pop3(user2): Debug: Namespace : Using permissions from /_Data/Mailstores/100003/mboxes: mode=0700 gid=-1
	dovecot[2997]: pop3(user2): Debug: Namespace : /_Data/Mailstores/100003/mboxes/inbox doesn't exist yet, using default permissions
	dovecot[2997]: pop3(user2): Debug: Namespace : Using permissions from /_Data/Mailstores/100003/mboxes: mode=0700 gid=-1
	dovecot[2997]: pop3(user2): Debug: Namespace : /_Data/Mailstores/100003/mboxes/inbox doesn't exist yet, using default permissions
	dovecot[2997]: pop3(user2): Debug: Namespace : Using permissions from /_Data/Mailstores/100003/mboxes: mode=0700 gid=-1

while "doveadm who" pretends nobody is connected:

	username # proto (pids) (ips)                                                                      

To get rid of the pop3 process, I have to send it a KILL signal: no other way.
But this is noticed by the master process:

	dovecot[2997]: pop3(user2): Fatal: master: service(pop3): child 3113 killed with signal 9

Note that it is possible to connect afterwards as user2 through imap.
On the other hand, trying to connect as user1 or user2 through pop always hangs.

TIA,
Axel


More information about the dovecot mailing list