Ndsrepair cores ndsd when running a local or unattended repair.

  • 3676881
  • 25-Oct-2007
  • 27-Apr-2012

Environment

Novell eDirectory 8.7.3 for Linux
100 thousand + files in the dib directory

Situation

Ndsrepair cores ndsd when running a local repair.
Ndsrepair cores ndsd when running an unattended repair.

Resolution

There is an issue with glibc where ndsrepair will core ndsd when there are thousands of files in the dib directory. These files are usually eDirectory stream files.
For a 64 bit machine the fix is two-fold since there is both a 32 bit and 64 bit glibc installed.
Each can be downloaded with the following two links.
The 32 bit fix for 64 bit architecture can be downloaded here:

Again, each of the above need to be installed on a 64 bit machine.

For a 32 bit machine the fix is available in glibc-2.3.3-98.61.PTF.190458.1.i686.rpm and can be downloaded here:
https://you.novell.com/update/i386/update/SUSE-SLES/9/PTF/1d15019f5f19f1a3d4323e8e985526dd/20060823/glibc-2.3.3-98.61.PTF.190458.1.i686.rpm

You will need to reboot the box once these patches have been applied.

Additional Information

Core in gdb looks like the following:
#0 0x5578a55f in internal_fnwmatch () from /lib/tls/libc.so.6
#1 0x5578e17d in fnmatch@GLIBC_2.0 () from /lib/tls/libc.so.6
#2 0x5578840f in __old_glob_in_dir () from /lib/tls/libc.so.6
#3 0x557ee26e in glob64@GLIBC_2.1 () from /lib/tls/libc.so.6
#4 0x5c6ca43b in Find1 () from /usr/lib//nds-modules/../libflaim.so.1
#5 0x5c6ca013 in f_fileFindFirst () from /usr/lib//nds-modules/../libflaim.so.1
#6 0x5c6c9de6 in F_DirHdlImp::Next () from /usr/lib//nds-modules/../libflaim.so.1
#7 0x5c56a1fd in SMDIBHandle::ndbGetDiskUsage () from /usr/lib//nds-modules/libnds.so
#8 0x5c44374a in CIASMDIB_ndbGetDiskUsage () from /usr/lib//nds-modules/libnds.so
#9 0xa0b85473 in DHModuleExit () from /usr/lib//nds-modules/libdsr.so
#10 0xa0b28427 in ?? () from /usr/lib//nds-modules/libdsr.so
#11 0xa0b2772e in ?? () from /usr/lib//nds-modules/libdsr.so
#12 0xa0b69938 in ?? () from /usr/lib//nds-modules/libdsr.so
#13 0xa0b74a75 in ?? () from /usr/lib//nds-modules/libdsr.so
#14 0xa0b8149a in DHModuleInit () from /usr/lib//nds-modules/libdsr.so
#15 0x080574aa in PoolWorker ()
#16 0x556c5cb7 in start_thread () from /lib/tls/libpthread.so.0
#17 0x557b521e in clone () from /lib/tls/libc.so.6
#18 0xa06f8bb0 in ?? ()