Hi Folks,
I'm trying to run samba on Solaris 9. It works OK when I don't compile
in kerberos and ldap, but when with those two compiled in, smbd seems to freeze
(nmbd and winbindd are OK). After a bit of investigation I notice something
strange in truss:
...
/1@1: -> libldap-2.3:ldap_free_urldesc(0x30dfe8, 0x32e048, 0x32dfb8,
0x3
/1@1: -> liblber-2.3:ber_memfree_x(0x32dfd7, 0x0, 0x0, 0x0)
/1@1: -> libc:free(0x32dfd7, 0x0, 0x0, 0x0)
/1@1: -> libc:_free_unlocked(0x32dfd7, 0x0, 0x0, 0xfee3c000)
/1: Incurred fault #5, FLTACCESS %pc = 0xFEDC7D80
/1: siginfo: SIGBUS BUS_ADRALN addr=0x0032DFCF
^^^^^^^
/1: Received signal #10, SIGBUS [caught]
/1: siginfo: SIGBUS BUS_ADRALN addr=0x0032DFCF
/1@1: -> libc:sigaddset(0xffbfd594, 0xa, 0x0, 0x0)
/1@1: -> libc:sigvalid(0xa, 0x0, 0x0, 0x0)
/1@1: <- libc:sigvalid() = 1
/1@1: <- libc:sigaddset() = 0
/1: sigprocmask(SIG_SETMASK, 0xFFBFD594, 0x00000000) = 0
/1@1: -> libc:___errno(0x0, 0x0, 0x0, 0x0)
/1@1: <- libc:___errno() = 0xfee43664
/1@1: -> libc:time(0x0, 0x0, 0x0, 0x0)
...
And the same sort of thing in gdb:
(gdb) run
Starting program: /opt/Samba/samba-3.0.22-with-ADS/sbin/smbd
Program received signal SIGSEGV, Segmentation fault.
0xfedc7d80 in _free_unlocked () from /usr/lib/libc.so.1
(gdb) bt
#0 0xfedc7d80 in _free_unlocked () from /usr/lib/libc.so.1
#1 0xfedc7d38 in free () from /usr/lib/libc.so.1
#2 0xff32d848 in ldap_free_urldesc (ludp=0x30dfc0) at url.c:1481
#3 0xfebe6ed0 in __s_api_addRefInfo () from /usr/lib/libsldap.so.1
#4 0xfebea200 in proc_search_references () from /usr/lib/libsldap.so.1
#5 0xfebeac94 in search_state_machine () from /usr/lib/libsldap.so.1
#6 0xfebeb4bc in __ns_ldap_list () from /usr/lib/libsldap.so.1
#7 0xfec2ad10 in _nss_ldap_nocb_lookup () from /usr/lib/nss_ldap.so.1
#8 0xfec24868 in getbymember () from /usr/lib/nss_ldap.so.1
#9 0xfedce8f0 in nss_search () from /usr/lib/libc.so.1
#10 0xfee18d30 in _getgroupsbymember () from /usr/lib/libc.so.1
#11 0xfedc3264 in initgroups () from /usr/lib/libc.so.1
#12 0x001ab280 in getgrouplist_internals ()
#13 0x001ab528 in sys_getgrouplist ()
#14 0x001ab580 in getgroups_user ()
#15 0x001ab6cc in pdb_default_enum_group_memberships ()
#16 0x0018f22c in context_enum_group_memberships ()
#17 0x0019136c in pdb_enum_group_memberships ()
#18 0x00202d90 in get_user_groups ()
#19 0x0020317c in add_user_groups ()
#20 0x002034b8 in make_server_info_sam ()
#21 0x0020387c in make_new_server_info_guest ()
#22 0x00203a30 in init_guest_info ()
#23 0x0024e0b0 in main ()
Here is my smb.conf (I've removed the ads and kerberos stuff, but it was
broken in the same way when it was included):
[global]
server string = IT151978 Solaris
guest account = eirvine
log level = 3
preferred master = No
local master = No
domain master = No
[homes]
comment = Home Directories
valid users = %S
read only = No
browseable = No
Here is what smbd is linked against:
ldd sbin/smbd
libthread.so.1 => /usr/lib/libthread.so.1
libldap-2.3.so.0 => /opt/OpenLDAP/openldap/lib/libldap-2.3.so.0
liblber-2.3.so.0 => /opt/OpenLDAP/openldap/lib/liblber-2.3.so.0
libgssapi_krb5.so.2 =>
/opt/Kerberos/krb5-1.4.3/lib/libgssapi_krb5.so.
2
libkrb5.so.3 => /opt/Kerberos/krb5-1.4.3/lib/libkrb5.so.3
libk5crypto.so.3 => /opt/Kerberos/krb5-1.4.3/lib/libk5crypto.so.3
libkrb5support.so.0 =>
/opt/Kerberos/krb5-1.4.3/lib/libkrb5support.so.
0
libcom_err.so.3 => /opt/Kerberos/krb5-1.4.3/lib/libcom_err.so.3
libresolv.so.2 => /usr/lib/libresolv.so.2
libsocket.so.1 => /usr/lib/libsocket.so.1
libnsl.so.1 => /usr/lib/libnsl.so.1
libpam.so.1 => /usr/lib/libpam.so.1
libsendfile.so.1 => /usr/lib/libsendfile.so.1
libdl.so.1 => /usr/lib/libdl.so.1
libiconv.so.2 => /usr/local/lib/libiconv.so.2
libc.so.1 => /usr/lib/libc.so.1
libgen.so.1 => /usr/lib/libgen.so.1
libgcc_s.so.1 => /opt/sfw/gcc-3/lib/libgcc_s.so.1
libmp.so.2 => /usr/lib/libmp.so.2
libcmd.so.1 => /usr/lib/libcmd.so.1
/usr/platform/SUNW,Sun-Blade-100/lib/libc_psr.so.1
Any ideas of what to do next would be very much appreciated! Thanks
Eddie