Description of problem:
When dovecot daemonizes it does not assign stderr to /dev/null like it does for stdin and stdout, or like other daemons do. This causes tools which monitor stderr for output to hang when starting dovecot.
Version-Release number of selected component (if applicable):
Steps to Reproduce:
# service dovecot status
dovecot is stopped
# lsof -p $$ | grep 2u
bash 30156 root 2u CHR 136,0 0t0 3 /dev/pts/0
# service dovecot start
Starting Dovecot Imap: [ OK ]
# lsof -p `pidof dovecot` | grep '/dev/pts/0'
dovecot 1646 root 2u CHR 136,0 0t0 3 /dev/pts/0
dovecot does not dup stderr to /dev/null
dovecot does dup stderr to /dev/null
I found a patch submitted in the dovecot mailing list which should fix this issue.
This request was evaluated by Red Hat Product Management for
inclusion in the current release of Red Hat Enterprise Linux.
Because the affected component is not scheduled to be updated
in the current release, Red Hat is unfortunately unable to
address this request at this time. Red Hat invites you to
ask your support representative to propose this request, if
appropriate and relevant, in the next release of Red Hat
Enterprise Linux. If you would like it considered as an
exception in the current release, please ask your support
A we have been hit by this same bug (running a custom HA script which starts the required services and writes the stderr log at the same time) I'll write here instead of opening a new report.
We have patched our dovecot with the official hg-patch found here: http://hg.dovecot.org/dovecot-2.0/rev/08e4280e5bfd and it works well. The patch that OP posted has a followup post (IIRC) that states that it is not entirely correct.
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.
For information on the advisory, and where to find the updated
files, follow the link below.
If the solution does not work for you, open a new bug report.