[Dovecot] Fatal: write() failed to info log: Interrupted system call
Last night Dovecot stopped, and the last message in the log was:
Fatal: write() failed to info log: Interrupted system call
Would you please advise?
# dovecot -n # 1.1.6: /usr/local/etc/dovecot.conf Warning: mail_extra_groups setting was often used insecurely so it is now deprecated, use mail_access_groups or mail_privileged_group instead # OS: FreeBSD 6.4-PRERELEASE i386 log_path: /var/log/dovecot.log info_log_path: /var/log/dovecot.log protocols: imap pop3 imaps ssl_key_file: /etc/ssl/private/dovecot.key login_dir: /var/run/dovecot/login login_executable(default): /usr/local/libexec/dovecot/imap-login login_executable(imap): /usr/local/libexec/dovecot/imap-login login_executable(pop3): /usr/local/libexec/dovecot/pop3-login verbose_proctitle: yes first_valid_gid: 0 mail_extra_groups: mail mail_access_groups: mail mail_location: maildir:~/Maildir mail_debug: yes mail_executable(default): /usr/local/libexec/dovecot/imap mail_executable(imap): /usr/local/libexec/dovecot/imap mail_executable(pop3): /usr/local/libexec/dovecot/pop3 mail_plugin_dir(default): /usr/local/lib/dovecot/imap mail_plugin_dir(imap): /usr/local/lib/dovecot/imap mail_plugin_dir(pop3): /usr/local/lib/dovecot/pop3 imap_client_workarounds(default): delay-newmail outlook-idle netscape-eoh tb-extra-mailbox-sep imap_client_workarounds(imap): delay-newmail outlook-idle netscape-eoh tb-extra-mailbox-sep imap_client_workarounds(pop3): pop3_client_workarounds(default): pop3_client_workarounds(imap): pop3_client_workarounds(pop3): outlook-no-nuls oe-ns-eoh auth default: verbose: yes debug: yes debug_passwords: yes passdb: driver: passwd-file args: /usr/local/etc/passwd.dovecot userdb: driver: passwd
-- Janos Dohanics
On Mar 17, 2009, at 11:06 AM, Janos Dohanics wrote:
Last night Dovecot stopped, and the last message in the log was:
Fatal: write() failed to info log: Interrupted system call
Would you please advise?
A signal got sent to dovecot process while it was writing to a log
file. But why exactly that happened, I don't know. Perhaps something
outside Dovecot was sending it a signal. It would be simple to just
make it ignore the EINTR error and retry, but I'm not really sure if
it's a good idea to do it..
On Tuesday 17 March 2009 09:34:29 pm Timo Sirainen wrote:
On Mar 17, 2009, at 11:06 AM, Janos Dohanics wrote:
Last night Dovecot stopped, and the last message in the log was:
Fatal: write() failed to info log: Interrupted system call
Would you please advise?
A signal got sent to dovecot process while it was writing to a log file. But why exactly that happened, I don't know. Perhaps something outside Dovecot was sending it a signal. It would be simple to just make it ignore the EINTR error and retry, but I'm not really sure if it's a good idea to do it..
Thank you - Dovecot did mysteriously stop may be 2 other times over the past 2 years or so. Never anything I noticed in /var/log/messages...
Would it help if I set mail_executable = /usr/local/libexec/dovecot/gdbhelper /usr/local/libexec/dovecot/imap, should this happen again? I suppose I could expect a lot of spece needed for /tmp/gdbhelper.* files if this doesn't happen for another 6 months...
-- Janos Dohanics
On Wed, 2009-03-18 at 03:32 -0400, Janos Dohanics wrote:
Fatal: write() failed to info log: Interrupted system call .. Thank you - Dovecot did mysteriously stop may be 2 other times over the past 2 years or so.
Well, that's not horribly often. :) I guess you don't know if it gave this same error previously also?
Would it help if I set mail_executable = /usr/local/libexec/dovecot/gdbhelper /usr/local/libexec/dovecot/imap, should this happen again? I suppose I could expect a lot of spece needed for /tmp/gdbhelper.* files if this doesn't happen for another 6 months...
No. But after thinking about it, I guess it's better not to die if the signal happens. This should fix it:
http://hg.dovecot.org/dovecot-1.1/rev/12230cb6931b
And that also gives me an idea: Looks like it's possible to find out what process sent a signal. Dovecot should be logging the PID and UID of the sender whenever receiving a signal.
On Wednesday 18 March 2009 01:50:40 pm you wrote:
On Wed, 2009-03-18 at 03:32 -0400, Janos Dohanics wrote:
Fatal: write() failed to info log: Interrupted system call
..
Thank you - Dovecot did mysteriously stop may be 2 other times over the past 2 years or so.
Well, that's not horribly often. :)
Not at all - Dovecot has been serving us well...
I guess you don't know if it gave this same error previously also?
I don't - I turned on detailed logging only after Dovecot stopped before this last time.
Would it help if I set mail_executable = /usr/local/libexec/dovecot/gdbhelper /usr/local/libexec/dovecot/imap, should this happen again? I suppose I could expect a lot of spece needed for /tmp/gdbhelper.* files if this doesn't happen for another 6 months...
No. But after thinking about it, I guess it's better not to die if the signal happens. This should fix it:
http://hg.dovecot.org/dovecot-1.1/rev/12230cb6931b
And that also gives me an idea: Looks like it's possible to find out what process sent a signal. Dovecot should be logging the PID and UID of the sender whenever receiving a signal.
Thank you!
-- Janos Dohanics
participants (2)
-
Janos Dohanics
-
Timo Sirainen