[Date Prev][Date Next] [Chronological] [Thread] [Top]

Re: SASL causes segmentation fault (ITS#3172)




--On Tuesday, June 08, 2004 11:05 PM -0700 "Kurt D. Zeilenga" 
<Kurt@OpenLDAP.org> wrote:

> At 10:17 PM 6/8/2004, quanah@stanford.edu wrote:
>> So I'd say having an 8MB thread stack doesn't help the situation at
>> all...
>
> Well, at least now we have what appears to be a complete
> stack backtrace.  It is certainly down deep in Kerberos...
> not sure what to suggest except to make sure running
> against the latest... and build the libraries with
> debugging symbols so that precise failure point can
> be determined.   As it stands now, I cannot see anything
> in OpenLDAP Software that would cause this.

Today's segfaults brought to you by the letter Q...

There are two segfaults in this email.  What segfault I get, and where, 
depends entirely on the order in which I start the replica's.  Whee!

This segfault caused by:

Start master (ldap-dev0)
Start replica1 (ldap-dev2)
Start replica2 (ldap-dev3)


 Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 5 (LWP 1)]
0xff2ffb80 in sb_debug_write (sbiod=0x342390, buf=0x10c2d58, len=4657)
    at sockbuf.c:846
846     sockbuf.c: No such file or directory.
        in sockbuf.c
(gdb) bt
#0  0xff2ffb80 in sb_debug_write (sbiod=0x342390, buf=0x10c2d58, len=4657)
    at sockbuf.c:846
#1  0xff2fea3c in ber_int_sb_write (sb=0x1d33d0, buf=0x10c2d58, len=4657)
    at sockbuf.c:433
#2  0xff2f8a7c in ber_flush (sb=0x1d33d0, ber=0x7c3410d8, freeit=0) at 
io.c:243
#3  0x0003e0e4 in send_ldap_ber (conn=0x1de500, ber=0x7c3410d8) at 
result.c:176
#4  0x0003ec98 in send_ldap_response (op=0xb56618, rs=0x7c401ad0)
    at result.c:438
#5  0x0003fffc in slap_send_ldap_intermediate (op=0xb56618, rs=0x7c401ad0)
    at result.c:720
#6  0x0009a310 in slap_send_syncinfo (op=0xb56618, rs=0x7c401ad0, type=163,
    cookie=0x0, refreshDone=0, syncUUIDs=0xc56758, refreshDeletes=0)
    at ldapsync.c:


 (gdb) info threads
  8 Thread 4 (LWP 3)  0xfee1d394 in _poll () from /usr/lib/libc.so.1
  7 Thread 3          0xfed4d9b8 in _reap_wait () from 
/usr/lib/libthread.so.1
  6 Thread 2 (LWP 2)  0xfee1eb58 in _signotifywait () from 
/usr/lib/libc.so.1
  5 LWP    2          0xfee1eb58 in _signotifywait () from 
/usr/lib/libc.so.1
  4 LWP    3          0xfee1d394 in _poll () from /usr/lib/libc.so.1
* 3 Thread 5 (LWP 1)  0xff2ffb80 in sb_debug_write (sbiod=0x342390,
    buf=0x10c2d58, len=4657) at sockbuf.c:846
  2 Thread 1          0xfed4da10 in _reap_wait_cancel ()
   from /usr/lib/libthread.so.1
  1 LWP    1          0xff2ffb80 in sb_debug_write (sbiod=0x342390,
    buf=0x10c2d58, len=4657) at sockbuf.c:846


(gdb) thr apply all bt

Thread 8 (Thread 4 (LWP 3)):
#0  0xfee1d394 in _poll () from /usr/lib/libc.so.1
#1  0xfedcd2d0 in select () from /usr/lib/libc.so.1
#2  0xfed5aa30 in select () from /usr/lib/libthread.so.1
#3  0xfed5aa30 in select () from /usr/lib/libthread.so.1
Previous frame identical to this frame (corrupt stack?)
0xff2ffb80      846     in sockbuf.c
(gdb)

--------------------------------------------------------------------------------------------------


This segfault caused by:

Start master (ldap-dev0)
Start replica1 (ldap-dev3)
Start replica2 (ldap-dev2)
(gdb) continue
Continuing.
[New LWP    2        ]
[New LWP    4        ]
[New Thread 6 (LWP 4)]

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 6 (LWP 4)]
0xfec55aa8 in vget_next (context=0x33ea40, b=0x10, pointer=0x7b800f54, 
type=0,
    name=0xfec8ab18 "libdefaults", args=0x7b801120)
    at ../../../lib/krb5/config_file.c:349
349             if(strcmp(b->name, name) == 0) {



(gdb) bt
#0  0xfec55aa8 in vget_next (context=0x33ea40, b=0x10, pointer=0x7b800f54,
    type=0, name=0xfec8ab18 "libdefaults", args=0x7b801120)
    at ../../../lib/krb5/config_file.c:349
#1  0xfec55c40 in krb5_config_vget_next (context=0x33ea40, c=0x10,
    pointer=0x7b800f54, type=0, args=0x7b80111c)
    at ../../../lib/krb5/config_file.c:384
#2  0xfec55d8c in krb5_config_vget (context=0x33ea40, c=0x0, type=0,
    args=0x7b801118) at ../../../lib/krb5/config_file.c:421
#3  0xfec55e9c in krb5_config_vget_string (context=0x33ea40, c=0x0,
    args=0x7b801118) at ../../../lib/krb5/config_file.c:465
#4  0xfec562e4 in krb5_config_vget_bool_default (context=0x33ea40, c=0x0,
    def_value=1, args=0x7b801118) at ../../../lib/krb5/config_file.c:575
#5  0xfec5641c in krb5_config_get_bool_default (context=0x33ea40, c=0x0,
    def_value=1) at ../../../lib/krb5/config_file.c:601
#6  0xfec68058 in krb5_get_host_realm_int (context=0x33ea40,
    host=0xbfb040 "ldap-dev0.stanford.edu", use_dns=1, realms=0x7b8013d4)
    at ../../../lib/krb5/get_host_realm.c:161
#7  0xfec683bc in krb5_get_host_realm (context=0x33ea40,
    host=0xbfb040 "ldap-dev0.stanford.edu", realms=0x7b8013d4)
    at ../../../lib/krb5/get_host_realm.c:219
#8  0xfec6192c in krb5_expand_hostname_realms (context=0x33ea40,
    orig_hostname=0xb5d7fd "ldap-dev0.stanford.edu", 
new_hostname=0x7b8013d0,
    realms=0x7b8013d4) at ../../../lib/krb5/expand_hostname.c:143
#9  0xfec7b7fc in krb5_sname_to_principal (context=0x33ea40,
    hostname=0xb5d7fd "ldap-dev0.stanford.edu", sname=0xb5d7f8 "ldap", 
type=3,
    ret_princ=0xf1e224) at ../../../lib/krb5/principal.c:1069
#10 0xfecbbef0 in import_hostbased_name (minor_status=0x7b801774,
    input_name_buffer=0x7b801790, output_name=0xf1e224)
    at ../../../lib/gssapi/import_name.c:120
#11 0xfecbc414 in gss_import_name (minor_status=0x7b801774,
    input_name_buffer=0x7b801790, input_name_type=0xfecd4154,
    output_name=0xf1e224) at ../../../lib/gssapi/import_name.c:211
#12 0xfece20d4 in gssapi_server_mech_step ()
   from /usr/local/lib/sasl2/libgssapiv2.so.2
#13 0xff1df4ac in sasl_server_step () from /usr/local/lib/libsasl2.so.2
#14 0xff1df190 in sasl_server_start () from /usr/local/lib/libsasl2.so.2
#15 0x00088554 in slap_sasl_bind (op=0x11a70e8, rs=0x7b801ad0) at 
sasl.c:1492
#16 0x0004ec70 in do_bind (op=0x11a70e8, rs=0x7b801ad0) at bind.c:301
#17 0x0002a120 in connection_operation (ctx=0x7b801ba0, arg_v=0x11a70e8)
    at connection.c:1007
#18 0xff33d6b8 in ldap_int_thread_pool_wrapper (xpool=0x16ad70) at 
tpool.c:467
#19 0xfed5b024 in _thread_start () from /usr/lib/libthread.so.1
#20 0xfed5b024 in _thread_start () from /usr/lib/libthread.so.1
Previous frame identical to this frame (corrupt stack?)

 thr apply all bt

Thread 10 (Thread 5 (LWP 1)):
#0  0xfee718bc in memset () from 
/usr/platform/SUNW,Ultra-80/lib/libc_psr.so.1
#1  0x00075d28 in slap_bv2ad (bv=0x7c341240, ad=0x7c341250, text=0x7c341254)
    at ad.c:174
#2  0x00039188 in entry_decode (bv=0x7c3412f0, e=0x7c3413f0) at entry.c:706
#3  0x000d8d98 in bdb_id2entry (be=0x17a710, tid=0x0, id=22187, 
e=0x7c3413f0)
    at id2entry.c:119
#4  0x000cddcc in bdb_cache_find_id (op=0x1f23e0, tid=0x0, id=22187,
    eip=0x7c3416a0, islocked=0, locker=6, lock=0x7c341510) at cache.c:627
#5  0x000aba1c in bdb_do_search (op=0x1f23e0, rs=0x7c401ad0, sop=0x1f23e0,
    ps_e=0x0, ps_type=0) at search.c:888
#6  0x000a90ec in bdb_search (op=0x1f23e0, rs=0x7c401ad0) at search.c:361
#7  0x0002dbe0 in do_search (op=0x1f23e0, rs=0x7c401ad0) at search.c:400
#8  0x0002a3c0 in connection_operation (ctx=0x7c401ba0, arg_v=0x1f23e0)
    at connection.c:1042
#9  0xff33d6b8 in ldap_int_thread_pool_wrapper (xpool=0x16ad70) at 
tpool.c:467
#10 0xfed5b024 in _thread_start () from /usr/lib/libthread.so.1
#11 0xfed5b024 in _thread_start () from /usr/lib/libthread.so.1
Previous frame identical to this frame (corrupt stack?)
0xfec55aa8      349             if(strcmp(b->name, name) == 0) {


(gdb) info threads
  10 Thread 5 (LWP 1)  0xfee718bc in memset ()
   from /usr/platform/SUNW,Ultra-80/lib/libc_psr.so.1
  9 Thread 4 (LWP 3)  0xfee1d394 in _poll () from /usr/lib/libc.so.1
  8 Thread 3          0xfed4d9b8 in _reap_wait () from 
/usr/lib/libthread.so.1
  7 Thread 2 (LWP 2)  0xfee1eb58 in _signotifywait () from 
/usr/lib/libc.so.1
  6 LWP    3          0xfee1d394 in _poll () from /usr/lib/libc.so.1
* 5 Thread 6 (LWP 4)  0xfec55aa8 in vget_next (context=0x33ea40, b=0x10,
    pointer=0x7b800f54, type=0, name=0xfec8ab18 "libdefaults", 
args=0x7b801120)
    at ../../../lib/krb5/config_file.c:349
  4 LWP    4          0xfec55aa8 in vget_next (context=0x33ea40, b=0x10,
    pointer=0x7b800f54, type=0, name=0xfec8ab18 "libdefaults", 
args=0x7b801120)
    at ../../../lib/krb5/config_file.c:349
  3 LWP    2          0xfee1eb58 in _signotifywait () from 
/usr/lib/libc.so.1
  2 Thread 1          0xfed4da10 in _reap_wait_cancel ()
   from /usr/lib/libthread.so.1
  1 LWP    1          0xfee718bc in memset ()
   from /usr/platform/SUNW,Ultra-80/lib/libc_psr.so.1

--Quanah

--
Quanah Gibson-Mount
Principal Software Developer
ITSS/Shared Services
Stanford University
GnuPG Public Key: http://www.stanford.edu/~quanah/pgp.html