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.