ERROR: -150 (No alloc space) errors

  • 3656591
  • 30-May-2007
  • 26-Apr-2012

Environment

Novell eDirectory 8.8 for Solaris
Novell eDirectory 8.7.3.7 for Solaris
Novell eDirectory 8.7.3.8 for Solaris
Novell eDirectory 8.7.3.6 for Solaris
FLAIM cache is set to hard limit and "preallocatecache" is set to true.
ulimit for data segment and prctl limits are set to infinite

Situation

eDirectory server randomly returns -150 errors after few days of operation when eDirectory process size is between 1.5-2 GB.

eDirectory server returns -150 errors immediately on startup if a hard cache is set to around 1 GB and preallocate cache is turned on. If the cache is set to a lower value, the server starts OK, but returns -150 errors after a few days.

Resolution

The problem was reported to engineering and has been fixed in Novell eDirectory 88 SP1 and Novell eDirectory 8738 FTF1 or later.

Additional Information

The basic issue here is that eDirectory on Solaris is fragmenting memory because of the use of mmap() system call for allocating FLAIM cache. This fragmentation prevents edirectory's data segment to scale upto to the 3.5-3.7 GB limit. The problem is fixed by using a different API for allocating FLAIM cache memory.
This is not really an eDirectory issue, but an incompatibility between eDirectory's use of a memory allocation API and Solaris's implementation of the same.