[Dovecot] ?? Error: child 1064 (imap) killed with signal 4
After noticing a commit to the HG repository,
http://hg.dovecot.org/dovecot-1.0/rev/f88b1e225be5
about,
" We didn't update last_output timestamp with long fetches, causing Dovecot to idle-disconnect the client."
I chekced out the latest from the DOVECOT-1.0 repo, and built again.
Unfortunately, this problem still exists. Login simply disconnects.
Any help, anyone?
-- Ben
On Sun, 2007-06-17 at 17:15 -0700, Benton Haynes wrote:
Unfortunately, this problem still exists. Login simply disconnects.
Like Gunter said, signal 4 is SIGILL. It happens only if the CPU executes invalid instructions. The problem isn't with Dovecot, it's with your compiler, libraries or something else.
You could try running imap manually with gdb:
gdb /usr/local/libexec/dovecot/imap r
Does it crash immediately? If not, give it "1 select inbox" command and I suppose then it at least should.
On Mon, 2007-06-18 at 11:54 +0300, Timo Sirainen wrote:
On Sun, 2007-06-17 at 17:15 -0700, Benton Haynes wrote:
Unfortunately, this problem still exists. Login simply disconnects.
Like Gunter said, signal 4 is SIGILL. It happens only if the CPU executes invalid instructions. The problem isn't with Dovecot, it's with your compiler, libraries or something else.
You could try running imap manually with gdb:
gdb /usr/local/libexec/dovecot/imap r
Does it crash immediately? If not, give it "1 select inbox" command and I suppose then it at least should.
Oh, and the reason why you ran it with gdb: Once it does crash, give "bt" command to see where it crashed.
Hi Timo,
Thanks for the instruction as to how to debug this.
You could try running imap manually with gdb:
gdb /usr/local/libexec/dovecot/imap r
I've not used gdb before. Reading MAN page, and some instructions online, I tried to launch as you had instructed, but it died off.
gdb --quiet /usr/local/libexec/dovecot/imap Reading symbols for shared libraries ..... done (gdb) r Starting program: /usr/local/libexec/dovecot/imap Reading symbols for shared libraries .++ done imap(root): Error: Ambiguous mail location setting, don't know what to do with it: /var/mail/root (try prefixing it with mbox: or maildir:) imap(root): Fatal: Failed to create storage with data: /var/mail/root
Program exited with code 0131. (gdb) q
Next, I instead tried to launch imap manually from the command line, with the goal of then 'attach'-ing the PID in gdb, but it also fails.
/usr/local/libexec/dovecot/imap imap(root): Error: Ambiguous mail location setting, don't know what to do with it: /var/mail/root (try prefixing it with mbox: or maildir:) imap(root): Fatal: Failed to create storage with data: /var/mail/root
Since dovecot starts ok when I do
/usr/local/sbin/dovecot -c /etc/dovecot/dovecot.conf
I thought it might need the configuration file, too.
But, the same error happens.
/usr/local/libexec/dovecot/imap -c /etc/dovecot/dovecot.conf imap(root): Error: Ambiguous mail location setting, don't know what to do with it: /var/mail/root (try prefixing it with mbox: or maildir:) imap(root): Fatal: Failed to create storage with data: /var/mail/root
Any further pointers? Thanks for being patient.
-- Ben
On Mon, 2007-06-18 at 06:58 -0700, Benton Haynes wrote:
imap(root): Error: Ambiguous mail location setting, don't know what to do with it: /var/mail/root (try prefixing it with mbox: or maildir:) imap(root): Fatal: Failed to create storage with data: /var/mail/root
So it's not dying at least at startup. Maybe an easier way would be to make the process dump core and gdb the core file. See http://dovecot.org/bugreport.html#coredumps
So it's not dying at least at startup. Maybe an easier way would be to
make the process dump core and gdb the core file. See http://dovecot.org/bugreport.html#coredumps
I'm still not clear how one gets gdb to exec 'imap' WITH the config file.
Instead, by selectively disabling items in my dovecot.conf, I've managed to find the source of the problem.
In dovecot.conf, I have
protocol imap { ... mail_plugins = quota imap_quota acl ... plugin { ... acl = vfile:/etc/dovecot/acl_files }
With that setup, when I telnet+login as I described earlier, the connection is dropped with just this in the log.
dovecot: Jun 19 08:38:09 Error: child 9323 (imap) killed with signal 4
If I disable the acl plugin,
protocol imap { ...
- mail_plugins = quota imap_quota
- mail_plugins = quota imap_quota acl ... plugin { ...
- acl = vfile:/etc/dovecot/acl_files
- # acl = vfile:/etc/dovecot/acl_files }
and try again, the connection is no longer dropped, and I can keep testing further.
I'll see if I can figure out from the wiki what the acl problem is. But, even if my acl usage is configured wrong, some sort of error other than the 'SIGILL' would be helpful.
Thanks for the help.
-- Ben
Benton Haynes wrote:
I'm still not clear how one gets gdb to exec 'imap' WITH the config file.
The usual method is 'man gdb' and read the documentation. ;-)
I'll save you the effort and extract the appropriate section:
run [arglist] Start your program (with arglist, if specified).
meaning you start gdb
$ gdb /usr/local/sbin/dovecot $ run -c /path/to/your/dovecot.conf
HTH
John
-- John Peacock Director of Information Research and Technology Rowman & Littlefield Publishing Group 4501 Forbes Boulevard Suite H Lanham, MD 20706 301-459-3366 x.5010 fax 301-429-5748
On Tue, 2007-06-19 at 10:05 -0700, Benton Haynes wrote:
So it's not dying at least at startup. Maybe an easier way would be to
make the process dump core and gdb the core file. See http://dovecot.org/bugreport.html#coredumps
I'm still not clear how one gets gdb to exec 'imap' WITH the config file.
If imap process dies at startup, it's a bit difficult to gdb because you can't attach to it and as far as I know it's not possible to make gdb follow execs.
I'll see if I can figure out from the wiki what the acl problem is. But, even if my acl usage is configured wrong, some sort of error other than the 'SIGILL' would be helpful.
Well, you should be able to do:
ACL=vfile:/etc/dovecot/acl_files MAIL_PLUGINS=acl MAIL=~/Maildir gdb /usr/local/libexec/dovecot/imap run bt
participants (3)
-
Benton Haynes
-
John Peacock
-
Timo Sirainen