I was digging through some of the archives and ran into someone who was having the same problem, but for completely different reasons....i think.
dovecot: Nov 02 07:58:51 Info: Dovecot starting up dovecot: Nov 02 07:58:52 Error: Auth process died too early - shutting down dovecot: Nov 02 07:58:52 Error: child 27673 (login) killed with signal 11 dovecot: Nov 02 07:58:52 Error: child 27672 (login) killed with signal 11 dovecot: Nov 02 07:58:52 Error: child 27671 (login) killed with signal 11 dovecot: Nov 02 07:58:52 Error: child 27670 (auth) killed with signal 11
So I took the advice posted and ran 'strace dovecot' and this is what I got. Unfortunately I'm not exactly good enough with this to even know what I'm looking at.
But I suspect the notation about "/dev/null" might have something to do with it. my user, dovecot as a shell of /bin/bash and a $HOME of /usr/local/lib/dovecot By all rights, he's almost a regular user, except that his UID is <100 (I built user:dovecot as a system uid under SuSE 8.2)
open("/var/run/dovecot/", O_RDONLY|O_LARGEFILE) = 3 fstat64(3, {st_mode=S_IFDIR|0700, st_size=4096, ...}) = 0 close(3) = 0 lstat64("/var/run/dovecot/", {st_mode=S_IFDIR|0700, st_size=4096, ...}) = 0 open(".", O_RDONLY|O_LARGEFILE) = 3 open("/var/run/dovecot//login", O_RDONLY|O_LARGEFILE|O_NOFOLLOW) = 4 fchdir(4) = 0 open("/dev/null", O_RDONLY|O_NONBLOCK|O_DIRECTORY) = -1 ENOTDIR (Not a directory) open(".", O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY) = 6 fstat64(6, {st_mode=S_IFDIR|0750, st_size=4096, ...}) = 0 fcntl64(6, F_SETFD, FD_CLOEXEC) = 0 brk(0) = 0x8061000 brk(0x8062000) = 0x8062000 getdents64(6, /* 2 entries */, 4096) = 48 getdents64(6, /* 0 entries */, 4096) = 0 close(4) = 0 close(6) = 0 fchdir(3) = 0 close(3) = 0 geteuid32() = 0 lstat64("/var/run/dovecot//login", {st_mode=S_IFDIR|0750, st_size=4096, ...}) = 0 open("/var/run/dovecot//login", O_RDONLY|O_LARGEFILE) = 3 fstat64(3, {st_mode=S_IFDIR|0750, st_size=4096, ...}) = 0 close(3) = 0 lstat64("/var/run/dovecot//login", {st_mode=S_IFDIR|0750, st_size=4096, ...}) = 0 access("/usr/local/libexec/dovecot/dovecot-auth", X_OK) = 0 open("/dev/null", O_RDONLY|O_LARGEFILE) = 3 fcntl64(3, F_GETFD) = 0 fcntl64(3, F_SETFD, FD_CLOEXEC) = 0 dup(3) = 4 fcntl64(4, F_GETFD) = 0 fcntl64(4, F_SETFD, FD_CLOEXEC) = 0 socket(PF_INET, SOCK_STREAM, IPPROTO_IP) = 6 setsockopt(6, SOL_SOCKET, SO_REUSEADDR, [1], 4) = 0 setsockopt(6, SOL_SOCKET, SO_KEEPALIVE, [1], 4) = 0 bind(6, {sa_family=AF_INET, sin_port=htons(143), sin_addr=inet_addr("0.0.0.0")}, 16) = 0 getsockname(6, {sa_family=AF_INET, sin_port=htons(143), sin_addr=inet_addr("0.0.0.0")}, [16]) = 0 listen(6, 8) = 0 fcntl64(6, F_SETFL, O_RDONLY|O_NONBLOCK) = 0 fcntl64(6, F_GETFD) = 0 fcntl64(6, F_SETFD, FD_CLOEXEC) = 0 dup(4) = 7 fcntl64(7, F_GETFD) = 0 fcntl64(7, F_SETFD, FD_CLOEXEC) = 0 dup(4) = 8 fcntl64(8, F_GETFD) = 0 fcntl64(8, F_SETFD, FD_CLOEXEC) = 0 dup(4) = 9 fcntl64(9, F_GETFD) = 0 fcntl64(9, F_SETFD, FD_CLOEXEC) = 0 dup2(4, 0) = 0 dup2(4, 1) = 1 dup2(4, 2) = 2 fork() = 27706 exit_group(0) = ?