[Dovecot] Dovecot auth process died because of Socket operation on non-socket
Hi,
I'm having problems setting up a dovecot1.0 stable on a Debian-amd64 server. The process dies with the following message:
May 28 15:13:46 rouge dovecot: Dovecot v1.0-stable starting up May 28 15:13:47 rouge dovecot: Login process died too early - shutting down May 28 15:13:47 rouge dovecot: pop3-login: fd_send(-1) failed: Socket operation on non-socket May 28 15:13:47 rouge dovecot: pop3-login: fd_send(-1) failed: Socket operation on non-socket May 28 15:13:47 rouge dovecot: auth(default): accept() failed: Socket operation on non-socket May 28 15:13:47 rouge dovecot: child 15116 (auth) returned error 89 May 28 15:13:47 rouge dovecot: child 15117 (login) returned error 89 May 28 15:13:47 rouge dovecot: child 15118 (login) returned error 89
Attached is the strace of the dovecot process, I don't know if this is relevant but I can provide any needed information.
The config file is like this:
protocols = imap imaps pop3 pop3s ssl_disable = no ssl_cert_file = /etc/ssl/certs/pop-imap-zamok.pem ssl_key_file = /etc/ssl/private/pop-imap-zamok.pem disable_plaintext_auth = no login_processes_count = 6 mail_extra_groups = mail default_mail_env = mbox:~/Mail/:INBOX=/var/mail/%u protocol imap { } protocol pop3 { } auth_verbose = yes auth_debug = yes auth default { mechanisms = plain passdb = pam userdb = passwd user = root }
Can anybody help me with this issue ?
Thank's in advance !
Nico Une pierre, deux maisons, trois ruines, quatre fossoyeurs, un jardin, des fleurs, un raton-laveur... -+- Jacques Prévert -+-
Le 05/28/2005 03:23 PM, Nicolas STRANSKY a écrit :
Hi,
I'm having problems setting up a dovecot1.0 stable on a Debian-amd64 server. The auth process dies with the following message: (snip)
Could anyone help me with this issue ? I've tried several things but none worked. Dovecot0.99 works fine one the same machine with the same configuration (in dovecot0.99 format).
When I launch /usr/sbin/dovecot on the command line, I have the following logs, and the auth process dies immediatly:
May 28 16:01:07 rouge dovecot: Dovecot v1.0-stable starting up May 28 16:01:08 rouge dovecot: Login process died too early - shutting down May 28 16:01:08 rouge dovecot: auth(default): accept() failed: Socket operation on non-socket May 28 16:01:08 rouge dovecot: child 21099 (auth) returned error 89
But strangely, when I launch /usr/sbin/dovecot -F on the command line, to make dovecot run in the foreground, then everything works perfectly and I'm able to login !
For now I've got no idea of what could explain this behaviour.
Thank's for any hint,
-- Nico Amour, amour, quand tu nous tiens, On peut bien dire : Adieu prudence. -+- Jean de La Fontaine (1621-1695), Le Lion amoureux (Fables IV.1) -+-
On 29.5.2005, at 19:42, Nicolas STRANSKY wrote:
May 28 16:01:07 rouge dovecot: Dovecot v1.0-stable starting up May 28 16:01:08 rouge dovecot: Login process died too early - shutting down May 28 16:01:08 rouge dovecot: auth(default): accept() failed: Socket operation on non-socket May 28 16:01:08 rouge dovecot: child 21099 (auth) returned error 89
What mount options do you have for your /var partition?
-- Tomi Hakala
Le 05/29/2005 07:23 PM, Tomi Hakala a écrit :
What mount options do you have for your /var partition?
The mount options for the /var partition are just default ones: /dev/sda6 on /var type ext3 (rw)
But /home and /var/mail are mounted over NFSv4: vert.adm.crans.org:/home on /home type nfs4 (rw,addr=138.231.144.2) vert.adm.crans.org:/var/spool/mail on /var/mail type nfs4 (rw,addr=138.231.144.2)
Regards,
Nico Les hommes aiment la guerre et les femmes aiment les militaires. Pauvre paix ! -+- Gilbert Cesbron (1913-1979), de petites choses. -+-
On 29.5.2005, at 20:29, Nicolas STRANSKY wrote:
The mount options for the /var partition are just default ones: /dev/sda6 on /var type ext3 (rw)
OK.. What configure options did you use while compiling Dovecot?
Any difference if you set "login_dir = /var/run/dovecot/login" in dovecot.conf?
But /home and /var/mail are mounted over NFSv4: vert.adm.crans.org:/home on /home type nfs4 (rw,addr=138.231.144.2) vert.adm.crans.org:/var/spool/mail on /var/mail type nfs4 (rw,addr=138.231.144.2)
It seems that you have Dovecot indexes stored on NFS disk, thus you should have "mmap_disable = yes" in dovecot.conf. This won't help with your current problem though.
I would recommend that you try Dovecot 1.0-test72, it includes lots of fixes over 1.0-stable and I'd say that it has gone through a quite extensive testing on Linux platform during last couple weeks.
-- Tomi Hakala
Le 05/29/2005 08:23 PM, Tomi Hakala a écrit :
OK.. What configure options did you use while compiling Dovecot?
I've used these: ./configure --with-ldap --with-ssl=openssl --with-pgsql --with-mysql --without-cyrus-sasl2 --host=x86_64-linux --build=x86_64-linux --prefix=/usr --sysconfdir=/etc/dovecot --libexecdir=\${prefix}/lib --localstatedir=/var --mandir=\${prefix}/share/man --infodir=\${prefix}/share/info
(In fact I've built my own Debian package for Dovecot1.0 ; that's what I've done for all other machines where I installed Dovecot1.0-stable and it always worked).
Any difference if you set "login_dir = /var/run/dovecot/login" in dovecot.conf?
No, /usr/sbin/dovecot behaves exactly the same.
Regards,
Nico J'embrasse mon rival, mais c'est pour l'étouffer. -+- Jean Racine, Britannicus -+-
Hello Nicolas,
Saturday, May 28, 2005, 4:23:11 PM, you [NS] wrote:
NS> I'm having problems setting up a dovecot1.0 stable on a Debian-amd64 NS> server. The process dies with the following message:
NS> May 28 15:13:47 rouge dovecot: pop3-login: fd_send(-1) failed: Socket NS> operation on non-socket NS> May 28 15:13:47 rouge dovecot: pop3-login: fd_send(-1) failed: Socket NS> operation on non-socket NS> May 28 15:13:47 rouge dovecot: auth(default): accept() failed: Socket NS> operation on non-socket
NS> The config file is like this:
NS> protocol imap { NS> } NS> protocol pop3 { NS> }
I think the problem is here. You should not leave these two blocks empty as they are used to override ports dovecot listens to and you have nothing there e.g.
protocol imap { listen = 127.0.0.1:14300 }
I'd suggest that you comment them out.
Thanks, Tero
-- Tero Ripattila
Le 05/29/2005 07:12 PM, Tero Ripattila a écrit :
I think the problem is here. You should not leave these two blocks empty as they are used to override ports dovecot listens to and you have nothing there e.g.
protocol imap { listen = 127.0.0.1:14300 }
I'd suggest that you comment them out.
Thank's for this suggestion, but it doesn't solve my problem... In fact I also have the same configuration on other servers, with protocol imap { } protocol pop3 { } and it works well.
Again, dovecot can work if I keep it in the foreground... which is very surprising ! :)
-- Nico Dijkstra me hait probablement. -+- Linus Torvalds, kernel/sched.c -+-
Hello Nicolas,
Sunday, May 29, 2005, 8:18:28 PM, you [NS] wrote:
NS> Thank's for this suggestion, but it doesn't solve my problem...
Okay. Just to be sure, do you file or inet sockets to serve these IMAP[S] and POP[S] services?
There are some lines in the trace files that got my attention e.g.:
Does these belong to auth, login or imap/pop process?
L76: connect(3, {sa_family=AF_FILE, path="/var/run/.nscd_socket"}, 110) = -1 ENOENT (No such file or directory)
L232: connect(3, {sa_family=AF_FILE, path="/var/run/.nscd_socket"}, 110) = -1 ENOENT (No such file or directory)
L380: connect(5, {sa_family=AF_FILE, path="/var/run/.nscd_socket"}, 110) = -1 ENOENT (No such file or directory)
Is this a DNS query or what
L346: connect(3, {sa_family=AF_INET, sin_port=htons(53), sin_addr=inet_addr("138.231.136.6")}, 28) = 0
IMAP seems to be up and running:
L530: bind(6, {sa_family=AF_INET, sin_port=htons(143), sin_addr=inet_addr("0.0.0.0")}, 16) = 0 L532: listen(6, 8) = 0
IMAPS also:
L540: bind(7, {sa_family=AF_INET, sin_port=htons(993), sin_addr=inet_addr("0.0.0.0")}, 16) = 0 L542: listen(7, 8) = 0
POP also:
L550: bind(8, {sa_family=AF_INET, sin_port=htons(110), sin_addr=inet_addr("0.0.0.0")}, 16) = 0 L552: listen(8, 8) = 0
POPS also:
L560: bind(9, {sa_family=AF_INET, sin_port=htons(995), sin_addr=inet_addr("0.0.0.0")}, 16) = 0 L562: listen(9, 8) = 0
NS> Again, dovecot can work if I keep it in the foreground... which is very NS> surprising ! :)
Yep, very surprising.
Thanks, Tero
-- Tero Ripattila
TR> Okay. Just to be sure, do you file or inet sockets to serve these TR> IMAP[S] and POP[S] services?
I meant do you use file or inet sockets to provide these IMAP[S] and POP[S] services :-)
-- Tero Ripattila
Le 29.05.2005 20:03, Tero Ripattila a écrit :
There are some lines in the trace files that got my attention e.g.:
Does these belong to auth, login or imap/pop process?
L76: connect(3, {sa_family=AF_FILE, path="/var/run/.nscd_socket"}, 110) = -1 ENOENT (No such file or directory)
Thank's for the heads up, I think I've found the particular problem that prevented the background dovecot from working: nscd was in a bad state and restarting it was of no use, I've had to kill it manually. Then it would create properly the /var/run/.nscd_socket. I still wonder why only the dovecot -F was working though.
-- Nico Notre repentir n'est pas tant un regret du mal que nous avons fait, qu'une crainte de celui qui nous en peut arriver. -+- François de La Rochefoucauld (1613-1680), Maximes 180 -+-
On 28.5.2005, at 16:23, Nicolas STRANSKY wrote:
I'm having problems setting up a dovecot1.0 stable on a Debian-amd64 server. The process dies with the following message:
May 28 15:13:47 rouge dovecot: pop3-login: fd_send(-1) failed: Socket operation on non-socket May 28 15:13:47 rouge dovecot: pop3-login: fd_send(-1) failed: Socket operation on non-socket May 28 15:13:47 rouge dovecot: auth(default): accept() failed: Socket operation on non-socket
Looks like Dovecot's master process gives wrong file descriptors to auth/login processes. I can't really think of why.. Unless libc or something does something strange in the middle.
The strace you sent doesn't help much because Dovecot forks and the strace ends there. Give -f option to it and send it again?
Le 05/29/2005 08:52 PM, Timo Sirainen a écrit :
Looks like Dovecot's master process gives wrong file descriptors to auth/login processes. I can't really think of why.. Unless libc or something does something strange in the middle.
The strace you sent doesn't help much because Dovecot forks and the strace ends there. Give -f option to it and send it again?
Here it is. There is one with -f option (strace-dovecot-full.bz2) and the other with -ff option so that there is one file per pid (strace-dovecot.tar.bz2). I don't know which one is more convenient to you.
-- Nico Le travail est l'opium du peuple et je ne veux pas mourir drogué. -+- Boris Vian -+-
participants (4)
-
Nicolas STRANSKY
-
Tero Ripattila
-
Timo Sirainen
-
Tomi Hakala