[Dovecot] (mail_index_sync_update_index): assertion failed
Anyone run into this one? I'm using test53...
Dec 3 13:08:17 aurora dovecot: IMAP(doug): file mail-index-sync-update.c: line 1160 (mail_index_sync_update_index): assertion failed: (map->records_count == map->hdr.messages_count) Dec 3 13:08:17 aurora dovecot: child 65942 (imap) killed with signal 6
It doesn't seem to correlate with any particular action. The only change I make to the compilation is to comment out #define HAVE_FREEBSD_SENDFILE
Thanks,
Doug
Anyone have a hint as to how I might successfully debug this problem?
Dec 6 11:19:38 aurora dovecot: IMAP(doug): Corrupted index cache file /home/doug/Maildir/dovecot.index.cache: record list is circular
Dec 6 11:20:02 aurora dovecot: IMAP(doug): msync() failed with index file /home/doug/Maildir/dovecot.index: Invalid argument
(w/test56)
Thanks,
Doug
From /var/log/maillog:
Dec 8 01:51:46 aurora dovecot: IMAP(doug): msync() failed with index file /home /doug/Maildir/dovecot.index: Invalid argument
From the ktrace that was running on that process:
22124 imap NAMI "/home/doug/Maildir/dovecot.index" 22124 imap RET stat 0 22124 imap CALL fcntl(0x4,0x8,0x11ffe7b8) 22124 imap RET fcntl 0 22124 imap CALL msync(0x130960000,0x1aff4,0) 22124 imap RET msync -1 errno 22 Invalid argument
From man msync:
ERRORS The msync() system call will fail if:
...
[EINVAL] The addr argument is not a multiple of the hardware
page size.
From the command line:
% pagesize 8192
Calculating:
0x1AFF4 = 110580 = 13*8192+4084
Not sure if this is relevant...
Doug
Hi Doug,
I think this might be because there is a space between /home and /doug/Maildir/dovecot.index It would then see the /doug/Maildir/dovecot.index as a second argument.
Regards Andrew
On Wed, 2004-12-08 at 05:12 -0500, Doug Luce wrote:
From /var/log/maillog:
Dec 8 01:51:46 aurora dovecot: IMAP(doug): msync() failed with index file /home /doug/Maildir/dovecot.index: Invalid argument
From the ktrace that was running on that process:
22124 imap NAMI "/home/doug/Maildir/dovecot.index" 22124 imap RET stat 0 22124 imap CALL fcntl(0x4,0x8,0x11ffe7b8) 22124 imap RET fcntl 0 22124 imap CALL msync(0x130960000,0x1aff4,0) 22124 imap RET msync -1 errno 22 Invalid argument
From man msync:
ERRORS The msync() system call will fail if:
... [EINVAL] The addr argument is not a multiple of the hardware page size.
From the command line:
% pagesize 8192
Calculating:
0x1AFF4 = 110580 = 13*8192+4084
Not sure if this is relevant...
Doug
-- Andrew Hutchings Systems Operator / Developer / Linux Guru Netserve Consultants Ltd. http://www.domaincity.co.uk/
Andrew,
Thanks for taking a shot at diagnosing this. That space is actually an artifact of me pasting log entries into the email. It doesn't exist in the config file or anywhere else.
Dioug
On Wed, 8 Dec 2004, Andrew Hutchings wrote:
Date: Wed, 08 Dec 2004 14:05:30 +0000 From: Andrew Hutchings <mail@a-wing.co.uk> To: Doug Luce <doug@dovecot.con.com> Cc: dovecot@dovecot.org Subject: Re: [Dovecot] More msync issues...
Hi Doug,
I think this might be because there is a space between /home and /doug/Maildir/dovecot.index It would then see the /doug/Maildir/dovecot.index as a second argument.
Regards Andrew
On Wed, 2004-12-08 at 05:12 -0500, Doug Luce wrote:
From /var/log/maillog:
Dec 8 01:51:46 aurora dovecot: IMAP(doug): msync() failed with index file /home /doug/Maildir/dovecot.index: Invalid argument
From the ktrace that was running on that process:
22124 imap NAMI "/home/doug/Maildir/dovecot.index" 22124 imap RET stat 0 22124 imap CALL fcntl(0x4,0x8,0x11ffe7b8) 22124 imap RET fcntl 0 22124 imap CALL msync(0x130960000,0x1aff4,0) 22124 imap RET msync -1 errno 22 Invalid argument
From man msync:
ERRORS The msync() system call will fail if:
... [EINVAL] The addr argument is not a multiple of the hardware page size.
From the command line:
% pagesize 8192
Calculating:
0x1AFF4 = 110580 = 13*8192+4084
Not sure if this is relevant...
Doug
-- Andrew Hutchings Systems Operator / Developer / Linux Guru Netserve Consultants Ltd. http://www.domaincity.co.uk/
Sorry Doug, just tried to investigate a bit (I am not the best programmer in the world). Msync should be called as follows:
int msync(void *addr, size_t len, int flags);
It looks to me in your case the parameter 2 is supposed to parameter 1 and I don't know what the heck got shoved in parameter 1. Maybe parameter 1 was supposed to be parameter 2 without the 0x??
Regards Andrew
On Wed, 2004-12-08 at 13:31 -0500, Doug Luce wrote:
Andrew,
Thanks for taking a shot at diagnosing this. That space is actually an artifact of me pasting log entries into the email. It doesn't exist in the config file or anywhere else.
Dioug
On Wed, 8 Dec 2004, Andrew Hutchings wrote:
Date: Wed, 08 Dec 2004 14:05:30 +0000 From: Andrew Hutchings <mail@a-wing.co.uk> To: Doug Luce <doug@dovecot.con.com> Cc: dovecot@dovecot.org Subject: Re: [Dovecot] More msync issues...
Hi Doug,
I think this might be because there is a space between /home and /doug/Maildir/dovecot.index It would then see the /doug/Maildir/dovecot.index as a second argument.
Regards Andrew
On Wed, 2004-12-08 at 05:12 -0500, Doug Luce wrote:
From /var/log/maillog:
Dec 8 01:51:46 aurora dovecot: IMAP(doug): msync() failed with index file /home /doug/Maildir/dovecot.index: Invalid argument
From the ktrace that was running on that process:
22124 imap NAMI "/home/doug/Maildir/dovecot.index" 22124 imap RET stat 0 22124 imap CALL fcntl(0x4,0x8,0x11ffe7b8) 22124 imap RET fcntl 0 22124 imap CALL msync(0x130960000,0x1aff4,0) 22124 imap RET msync -1 errno 22 Invalid argument
From man msync:
ERRORS The msync() system call will fail if:
... [EINVAL] The addr argument is not a multiple of the hardware page size.
From the command line:
% pagesize 8192
Calculating:
0x1AFF4 = 110580 = 13*8192+4084
Not sure if this is relevant...
Doug
-- Andrew Hutchings Systems Operator / Developer / Linux Guru Netserve Consultants Ltd. http://www.domaincity.co.uk/
-- Andrew Hutchings Systems Operator / Developer / Linux Guru Netserve Consultants Ltd. http://www.domaincity.co.uk/
The ktrace output has "msync(0x130960000,0x1aff4,0)." Ktrace doesn't have access to the information from the original source, so it's not able to resolve the first argument to the void pointer. What ktrace shows looks right for the first argument, though -- a full 32-bit address.
The second looks like it's within a valid range as well, as is the third.
The problem I'm seeing is that the second argument is not a multiple of the machine's pagesize. The man page says that such an issue will result in the error as seen.
Doug
On Wed, 8 Dec 2004, Andrew Hutchings wrote:
Sorry Doug, just tried to investigate a bit (I am not the best programmer in the world). Msync should be called as follows:
int msync(void *addr, size_t len, int flags);
It looks to me in your case the parameter 2 is supposed to parameter 1 and I don't know what the heck got shoved in parameter 1. Maybe parameter 1 was supposed to be parameter 2 without the 0x??
Regards Andrew
On Wed, 2004-12-08 at 13:31 -0500, Doug Luce wrote:
Andrew,
Thanks for taking a shot at diagnosing this. That space is actually an artifact of me pasting log entries into the email. It doesn't exist in the config file or anywhere else.
Dioug
On Wed, 8 Dec 2004, Andrew Hutchings wrote:
Date: Wed, 08 Dec 2004 14:05:30 +0000 From: Andrew Hutchings <mail@a-wing.co.uk> To: Doug Luce <doug@dovecot.con.com> Cc: dovecot@dovecot.org Subject: Re: [Dovecot] More msync issues...
Hi Doug,
I think this might be because there is a space between /home and /doug/Maildir/dovecot.index It would then see the /doug/Maildir/dovecot.index as a second argument.
Regards Andrew
On Wed, 2004-12-08 at 05:12 -0500, Doug Luce wrote:
From /var/log/maillog:
Dec 8 01:51:46 aurora dovecot: IMAP(doug): msync() failed with index file /home /doug/Maildir/dovecot.index: Invalid argument
From the ktrace that was running on that process:
22124 imap NAMI "/home/doug/Maildir/dovecot.index" 22124 imap RET stat 0 22124 imap CALL fcntl(0x4,0x8,0x11ffe7b8) 22124 imap RET fcntl 0 22124 imap CALL msync(0x130960000,0x1aff4,0) 22124 imap RET msync -1 errno 22 Invalid argument
From man msync:
ERRORS The msync() system call will fail if:
... [EINVAL] The addr argument is not a multiple of the hardware page size.
From the command line:
% pagesize 8192
Calculating:
0x1AFF4 = 110580 = 13*8192+4084
Not sure if this is relevant...
Doug
-- Andrew Hutchings Systems Operator / Developer / Linux Guru Netserve Consultants Ltd. http://www.domaincity.co.uk/
-- Andrew Hutchings Systems Operator / Developer / Linux Guru Netserve Consultants Ltd. http://www.domaincity.co.uk/
On 8.12.2004, at 22:42, doug@dovecot.con.com wrote:
The problem I'm seeing is that the second argument is not a multiple of the machine's pagesize. The man page says that such an issue will result in the error as seen.
I don't see any man page saying that length argument must be a multiple of page size and it hasn't been a problem with any other system I've previously used. What CPU is this with?
Yes, I need to learn to read. That's the addr argument in my man page, of course.
Sorry,
Doug
On Wed, 8 Dec 2004, Timo Sirainen wrote:
On 8.12.2004, at 22:42, doug@dovecot.con.com wrote:
The problem I'm seeing is that the second argument is not a multiple of the machine's pagesize. The man page says that such an issue will result in the error as seen.
I don't see any man page saying that length argument must be a multiple of page size and it hasn't been a problem with any other system I've previously used. What CPU is this with?
participants (4)
-
Andrew Hutchings
-
Doug Luce
-
doug@dovecot.con.com
-
Timo Sirainen