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
________________________________________________________________________

Reply via email to