fatal error: failed to mmap new message file

Dave McMurtrie dave64 at andrew.cmu.edu
Sun Nov 27 13:59:25 EST 2011


> On Sun, 2011-11-27 at 13:26 -0500, Dave McMurtrie wrote:
>> > On Sun, 2011-11-27 at 12:37 -0500, Adam Tauno Williams wrote:
>> >> On Sun, 2011-11-27 at 12:14 -0500, Adam Tauno Williams wrote:
>> >> > I updated one of my production boxes to Cyrus IMAPd 2.4.12 [using
>> >> > Simon's excellent packages]
>> >> > On my test box / replica I was able to reconstruct all the
>> mailboxes
>> >> > But [of course] on the production box I have a few mailboxes
>> >> [important
>> >> > ones, of course] that fail a reconstruc
>> >> > $ /usr/lib/cyrus-imapd/reconstruct -r user.steve
>> >> > fatal error: failed to mmap new message file
>> >> > $ /usr/lib/cyrus-imapd/reconstruct -r user.barnosky
>> >> > fatal error: failed to mmap new message file
>> >> > Reconstructing other mailboxes is working.  Hints / Tips?
>> reconstruct
>> >> > doesn't seem top have a verbose / debug switch.
>> >> In the log file I see -
>> >> Nov 27 12:36:23 sardine reconstruct[9524]: seen_db: user barnosky
>> >> opened /var/lib/imap/user/b/barnosky.seen
>> >> Nov 27 12:36:23 sardine reconstruct[9524]: IOERROR: mapping new
>> message
>> >> file: No such device
>> > If I trace the reconstruct it fails at -
>> > connect(9, {sa_family=AF_FILE, path="/dev/log"...}, 110) = 0
>> > send(9, "<23>Nov 27 12:50:42 reconstruct["..., 103, MSG_NOSIGNAL) =
>> 103
>> > fcntl64(8, F_SETLKW, {type=F_RDLCK, whence=SEEK_SET, start=0, len=0})
>> =
>> > 0
>> > fstat64(8, {st_mode=S_IFREG|0600, st_size=7924, ...}) = 0
>> > stat64("/var/lib/imap/user/b/barnosky.seen", {st_mode=S_IFREG|0600,
>> > st_size=7924, ...}) = 0
>> > fcntl64(8, F_SETLKW, {type=F_UNLCK, whence=SEEK_SET, start=0, len=0})
>> =
>> > 0
>> > munmap(0xb7eb7000, 16384)               = 0
>> > close(8)                                = 0
>> > open("/var/spool/imap/b/user/barnosky/cyrus.expunge", O_RDWR) = 8
>> > fstat64(8, {st_mode=S_IFREG|0600, st_size=1200504, ...}) = 0
>> > mmap2(NULL, 1200504, PROT_READ, MAP_SHARED, 8, 0) = 0xb7d95000
>> > brk(0x908b000)                          = 0x908b000
>> > open("/proc/meminfo", O_RDONLY)         = 10
>> > fstat64(10, {st_mode=S_IFREG|0444, st_size=0, ...}) = 0
>> > mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1,
>> > 0) = 0xb7d94000
>> > read(10, "MemTotal:       775008 kB\nMemFre"..., 4096) = 771
>> > close(10)                               = 0
>> > munmap(0xb7d94000, 4096)                = 0
>> > open("/var/spool/imap/b/user/barnosky/cyrus.index.NEW",
>> O_RDWR|O_CREAT|
>> > O_TRUNC, 0666) = 10
>> > open("/var/spool/imap/b/user/barnosky/cyrus.cache.NEW",
>> O_RDWR|O_CREAT|
>> > O_TRUNC, 0666) = 11
>> > write(11, "\236\0w\233", 4)             = 4
>> > write(10, "\236\0w\233\0\0\0\0\0\0\0\f\0\0\0\200\0\0\0`\0\0\0\0N\321\5
>> > \227\0\0018\313"..., 128) = 128
>> > open("/var/spool/imap/b/user/barnosky", O_RDONLY) = 12
>> > fstat64(12, {st_mode=S_IFDIR|0700, st_size=282624, ...}) = 0
>> > mmap2(NULL, 282624, PROT_READ, MAP_SHARED, 12, 0) = -1 ENODEV (No such
>> > device)
>> mmap() is supposed to fail with ENODEV if the underlying filesystem
>> doesn't support mmap.  What filesystem is
>> /var/spool/imap/b/user/barnosky
>> on?
>
> The same filesystem all the other mailboxes are on.  It is one logical
> volume.

Indeed, and I can see that an earlier mmap for a file in the same
directory succeeded.  I'm sorry, but I have no idea why mmap is failing in
this manner.



More information about the Info-cyrus mailing list