Hello,
I get the error "IOERROR: mapping index file for user.XXX: Not enough space"
when a client selects a mailbox. I've traced the process and it seems to be
a HPUX mmap problem when the imapd mmap's twice the index file of the
mailbox. How can I fix or workaround this problem ????
Thanks and sorry for my bad english,
Carlos.
My configuration:
HP-UX 11.0 (with PHCO_22923 last libc cumulative patch)
Berkeley-db-3.2
cyrus-sasl-1.5.24
cyrus-imapd-2.0.12
Syslog entries:
Mar 8 14:24:18 maia syslog: unable to change limit of file descriptors available
Mar 8 14:24:18 maia master[9390]: process started
Mar 8 14:24:18 maia ctl_mboxlist[9391]: running mboxlist recovery
Mar 8 14:24:58 maia ctl_mboxlist[9391]: done running mboxlist recovery
Mar 8 14:25:00 maia master[9390]: ready for work
Mar 8 14:25:00 maia ctl_mboxlist[9396]: checkpointing mboxlist
Mar 8 14:26:41 maia imapd[9399]: login: clarra.cc.upv.es[158.42.252.7] clarra
plaintext
Mar 8 14:26:42 maia imapd[9399]: IOERROR: mapping index file for user.clarra: Not
enough
space
Process trace:
[9399] write(15, "1 O K U s e r l o g g e d "..,
21)................................
= 21
[9399] write(1, "1 O K U s e r l o g g e d "..,
21).................................
= 21
[9399]
time(NULL).........................................................................
= 984058001
[9399] select(1, 0x7f7f1090, NULL, NULL,
0x7f7f1088)......................................
= 1
[9399]
time(NULL).........................................................................
= 984058001
[9399] read(0, "2 n e t s c a p e \r\n",
4096)..........................................
= 12
[9399] write(15, "2 n e t s c a p e \r\n",
12)..........................................
= 12
[9399] open("/u/imap/msg/shutdown", O_RDONLY,
0)..........................................
ERR#2 ENOENT
[9399] select(1, 0x7f7f1090, NULL, NULL,
0x7f7f1088)......................................
= 0
[9399] write(15, "* O K [ N E T S C A P E ] "..,
156)...............................
= 156
[9399] write(1, "* O K [ N E T S C A P E ] "..,
156)................................
= 156
[9399]
time(NULL).........................................................................
= 984058001
[9399] select(1, 0x7f7f1090, NULL, NULL,
0x7f7f1088)......................................
= 1
[9399]
time(NULL).........................................................................
= 984058002
[9399] read(0, "3 s e l e c t " I N B O X " "..,
4096)................................
= 18
[9399] write(15, "3 s e l e c t " I N B O X " "..,
18)................................
= 18
[9399]
getpid()...........................................................................
= 9399 (9390)
[9399]
getpid()...........................................................................
= 9399 (9390)
[9399] msem_init(0xc1144bd0,
MSEM_UNLOCKED)...............................................
= 0xc1144bd0
[9399] pstat(PSTAT_DYNAMIC, 0x7f7f1d50, 2904, 1,
0).......................................
= 1
[9399]
getpid()...........................................................................
= 9399 (9390)
[9399] lseek64(10, 8192,
SEEK_SET)........................................................
= 8192
[9399] read(10, "\0\0\001\0\0p 1 \0\0\001\0\0\0\0"..,
8192)...............................
= 8192
[9399]
getpid()...........................................................................
= 9399 (9390)
[9399]
getpid()...........................................................................
= 9399 (9390)
[9399]
getpid()...........................................................................
= 9399 (9390)
[9399] open("/u/default/c/user/clarra/cyrus.header", O_RDWR,
0)...........................
= 16
[9399] fstat(16,
0x7f7f2588)..............................................................
= 0
[9399] mmap(NULL, 152, PROT_READ, MAP_SHARED|MAP_VARIABLE|MAP_FILE, 16,
NULL).............
= 0xc022b000
[9399] open("/u/default/c/user/clarra/cyrus.index", O_RDWR,
0)............................
= 17
[9399] fstat(17,
0x7f7f2588)..............................................................
= 0
[9399] mmap(NULL, 160, PROT_READ, MAP_SHARED|MAP_VARIABLE|MAP_FILE, 17,
NULL).............
= 0xc0233000
[9399] open("/u/default/c/user/clarra/cyrus.cache", O_RDWR,
0)............................
= 18
[9399] fstat(18,
0x7f7f2588)..............................................................
= 0
[9399] mmap(NULL, 1836, PROT_READ, MAP_SHARED|MAP_VARIABLE|MAP_FILE, 18,
NULL)............
= 0xc023b000
[9399] fstat(17,
0x7f7f2588)..............................................................
= 0
[9399]
chdir("/u/default/c/user/clarra")..................................................
= 0
[9399] mmap(NULL, 160, PROT_READ, MAP_SHARED|MAP_VARIABLE|MAP_FILE, 17,
NULL).............
ERR#12 ENOMEM
Found in http://devresource.hp.com/STKL/impacts/i18.html :
HP-UX mmap() has several semantic differences from Linux mmap().
HP-UX mmap() does not currently allow:
-overlapping pages in any mmap() calls
-two threads calling mmap() on the same page
-an mmap() of /dev/zero to access anonymous memory regions.
-the mmap() of a page as MAP_SHARED more than once. In a multithreaded
program, or a function where the calling function may have mmap()ed,
MAP_PRIVATE must be used.
This functionality will become available in the core HP-UX after 11i.
--
________________________________________________________________________
Carlos Larrañaga Cámara Mail: [EMAIL PROTECTED]
Centro de Cálculo (Area Sistemas) Tel.: (96) 387 70 76 Ext: 78712
Universidad Politécnica de Valencia Fax.: (96) 387 70 79
________________________________________________________________________