NDSD cores after patching the server

  • 7005752
  • 15-Apr-2010
  • 28-Dec-2017

Environment

Novell eDirectory 8.8 for Linux

Situation

After patching Linux eDirectory box, ndsd cores and won't come up.

Resolution

Steps to start the troubleshooting on this issue:


  1. Look at the /var/opt/novell/eDirectory/log/ndsd.log file to see if it gives an indication as to why ndsd failed to come up.

  1. Remark out the additional services in the /etc/opt/novell/eDirectory/conf/ndsmodules.conf file with a pound sign (#) and start up ndsd to see if it is one of the services causing ndsd to fail to load.

  2. Look at the core file, make sure to first set the MALLOC_CHECK_=3 in the /etc/init.d/ndsd startup script. This uses our own memory management rather than TC MALLOC. For steps on how to perform this step, search the Novell Knowledge base for MALLOC_CHECK_=3.

NOTE: eDirectory on SLES 12 or RHEL 7:  You must add all environment variables required for the eDirectory service in the env file located in the /etc/opt/novell/eDirectory/conf directory.

         4. Once the core has been gathered, load gdb with the following syntax: gdb <path to ndsd binary> <path to current core file>. Example: gdb /opt/novell/eDirectory/sbin/ndsd /var/opt/novell/eDirectory/data/dib/core.7777

         5. Once you get to the gdb prompt, type the command “where” and look at the stack. Below is an example of a  core with bad symbolic links.


(gdb) where

Undefined command: "". Try "help".

(gdb) #0 0x00002b2442d98f45 in raise () from /lib64/libc.so.6

(gdb) #1 0x00002b2442d9a340 in abort () from /lib64/libc.so.6

(gdb) #2 0x00002b2442dd4700 in malloc_printerr () from /lib64/libc.so.6

(gdb) #3 0x00002b244249e4f1 in free_key_mem () from /lib64/libdl.so.2

(gdb) #4 0x00002b2442b00e49 in __nptl_deallocate_tsd () from /lib64/libpthread.so.0

(gdb) #5 0x00002b2442b011a1 in start_thread () from /lib64/libpthread.so.0

(gdb) #6 0x00002b2442e29dfd in clone () from /lib64/libc.so.6


If you have the same stack as above from the command, where it is calling the libdl.so.2 library, this may be a known issue of the box coring when the symbolic links to the libraries are at fault. This issue can more than likely be resolved by running the “ldconfig” command on the linux box. However, before you do so, please look at the /opt/novell/eDirectory/lib64/nds-modules directory and look at the libnds* files. You will note that the libnds.so and the libnds.so.1 symbolic link files are not pointing to the same file. Assuming this is the case, then running the ldconfig command or fixing the symbolic links to point to the right binary will address the issue. See below as an example of a the correct configuration for the libnds library. Note to make sure you make copies of your original files and that you document each step.


server8:/opt/novell/eDirectory/lib64/nds-modules # ll libnds*

lrwxrwxrwx 1 root root 15 Apr 15 11:13 libnds.so -> libnds.so.1.0.0

lrwxrwxrwx 1 root root 15 Apr 15 12:26 libnds.so.1 -> libnds.so.1.0.0

-rwxr-xr-x 1 root root 0 Apr 15 12:26 libnds.so.1.0.0

lrwxrwxrwx 1 root root 20 Feb 10 09:31 libndsclone.so -> libndsclone.so.1.0.0

lrwxrwxrwx 1 root root 20 Feb 10 09:31 libndsclone.so.1 -> libndsclone.so.1.0.0

-rwxr-xr-x 1 root root 0 Apr 15 12:26 libndsclone.so.1.0.0

lrwxrwxrwx 1 root root 19 Feb 10 09:31 libndsinfo.so -> libndsinfo.so.1.0.0

lrwxrwxrwx 1 root root 19 Feb 10 09:31 libndsinfo.so.1 -> libndsinfo.so.1.0.0

-rwxr-xr-x 1 root root 0 Apr 15 12:26 libndsinfo.so.1.0.0


If it appears that the symptoms are different than above, capture the core file and send it into novell support after opening a serverice request. A search on novell-getcore to find how to capture a valid core to send to Novell.