mmap in CNFSinit_disks

John Newman jnn at jump.net
Wed Feb 2 03:25:51 UTC 2000


   if ((cycbuff->bitfield =
         mmap((caddr_t) 0, cycbuff->minartoffset, SMopenmode ? (PROT_READ | PROT
_WRITE) : PROT_READ,
              MAP_SHARED, fd, (off_t) 0)) == (MMAP_PTR) -1 || errno != 0) {
        syslog(L_ERROR,
               "%s: CNFSinitdisks: mmap for %s offset %d len %d failed: %m",
               LocalLogName, cycbuff->path, 0, cycbuff->minartoffset);
        return FALSE;
    }

That code always fails on my Solaris 7 setup.  I've got 11 gigs of
swap, 748 megs of total RAM.  Here's what syslog says:

Feb  1 21:23:52 news2.jump.net makehistory[18851]: CNFS-sm: CNFSinitdisks: mmap for /News/spool/Disk01/A7 offset 0 len 0 failed: Not enough space
Feb  1 21:23:52 news2.jump.net makehistory[18851]: SM storage method 'cnfs' failed initialization
Feb  1 21:23:52 news2.jump.net makehistory[18851]: SM one or more storage methods failed initialization

My buffers are exactly two gigs:
-rw-r--r--   1 root     other    2147483648 Feb  1 20:45 /News/spool/Disk01/A7

Is this not working because I don't have enough physical ram to cover
the mmap?  Can anyone give me some pointers on this problem?  This is
with the latest snapshot of inn, egcs 2.95.2, Solaris 7 11/99.

-
John



More information about the inn-workers mailing list