Monday, September 12, 2011

vxdiskadm, vxassist fails: Replacement of disk app01 in group app_dg with device c0t1d0 failed. ld.so.1: vxdg: fatal: relocation error: file /etc/vx/slib/libnsl.so.1: symbol_libc_register_forkhandler: referenced symbol not found .killed

Issue
Replacement of disk app01 in group app_dg with device c0t1d0 failed. ld.so.1: vxdg: fatal: relocation error: file /etc/vx/slib/libnsl.so.1: symbol_libc_register_forkhandler: referenced symbol not found .killed

Solution:
# ldd /usr/sbin/vxassist
libarray.so => /usr/lib/libarray.so
libsocket.so.1 => /etc/vx/slib/libsocket.so.1
libnsl.so.1 => /etc/vx/slib/libnsl.so.1
libdl.so.1 => /usr/lib/libdl.so.1
libvxdiscovery.so => /etc/vx/slib/libvxdiscovery.so
libdevinfo.so.1 => /etc/vx/slib/libdevinfo.so.1
libc.so.1 => /etc/vx/slib/libc.so.1
libmp.so.2 => /usr/lib/libmp.so.2
liba5k.so.2 => /etc/vx/slib/liba5k.so.2
libg_fc.so.2 => /etc/vx/slib/libg_fc.so.2
libdevice.so.1 => /etc/vx/slib/libdevice.so.1
libnvpair.so.1 => /usr/lib/libnvpair.so.1
/usr/platform/SUNW,Ultra-5_10/lib/libc_psr.so.1

When the above error is seen, it is usually because /etc/vx/slib/libnsl.so.1 has been overwritten. The workaround is to simply re-copy the library as follows:

Checked the sum:
#sum /usr/lib/libnsl.so.1
30572 1798 /usr/lib/libnsl.so.1

#sum /etc/vx/slib/libnsl.so.1
27966 1737 /etc/vx/slib/libnsl.so.1

#cp /etc/vx/slib/libnsl.so.1 /etc/vx/slib/libnsl.so.1.backup

#cp /usr/lib/libnsl.so.1 /etc/vx/slib/libnsl.so.1 --Copied the library as the sum was different.

THE ISSUE got fixed by copying the library /usr/lib/libnsl.so.1 and then Everything worked fine.