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

Re: (ITS#6074) SEGV in pthread_mutex_lock()



Aaron Richton wrote:
> On Sat, 2 May 2009, Howard Chu wrote:
>
>> Fixed in HEAD. You should probably sync up with cache.c too; the tests Quanah
>> and I have been running seem to like this better.
>
> 2.4.16 + synced back-bdb from head. NULL strncmp:

There's no strncmp in this trace. This is a different symptom than before.
>
> t@14 (l@14) terminated by signal SEGV (no mapping at the fault address)
> Current function is avl_insert
>     125                   cmp = fcmp( data, p->avl_data )>  0;
> (dbx) where
> current thread: t@14
> =>[1] avl_insert(root = 0x12c9e52c0, data = 0x12cd3e0f0, fcmp = 0x1001a1e90 =&`slapd`cache.c`bdb_rdn_cmp(const void *v_e1, const void *v_e2), fdup = 0x100273f00 =&avl_dup_error(void *left, void *right)), line 125 in "avl.c"
>     [2] hdb_cache_find_parent(op = 0x131b07390, txn = 0x132f36090, id = 12937U, res = 0xffffffff45e7e848), line 595 in "cache.c"
>     [3] hdb_cache_find_id(op = 0x131b07390, tid = 0x132f36090, id = 12937U, eip = 0xffffffff45e7e848, flag = 0, lock = 0xffffffff45e7e7f8), line 906 in "cache.c"
>     [4] hdb_search(op = 0x131b07390, rs = 0xffffffff45fff998), line 706 in "search.c"
>     [5] glue_sub_search(op = 0x131b07390, rs = 0xffffffff45fff998, b0 = 0xffffffff45ffeda8, on = 0x1106e0dd0), line 342 in "backglue.c"
>     [6] glue_op_search(op = 0x131b07390, rs = 0xffffffff45fff998), line 465 in "backglue.c"
>     [7] overlay_op_walk(op = 0x131b07390, rs = 0xffffffff45fff998, which = op_search, oi = 0x1106e1010, on = 0x1106e0dd0), line 659 in "backover.c"
>     [8] over_op_func(op = 0x131b07390, rs = 0xffffffff45fff998, which = op_search), line 721 in "backover.c"
>     [9] over_op_search(op = 0x131b07390, rs = 0xffffffff45fff998), line 743 in "backover.c"
>     [10] fe_op_search(op = 0x131b07390, rs = 0xffffffff45fff998), line 366 in "search.c"
>     [11] overlay_op_walk(op = 0x131b07390, rs = 0xffffffff45fff998, which = op_search, oi = 0x1106e16d0, on = (nil)), line 669 in "backover.c"
>     [12] over_op_func(op = 0x131b07390, rs = 0xffffffff45fff998, which = op_search), line 721 in "backover.c"
>     [13] over_op_search(op = 0x131b07390, rs = 0xffffffff45fff998), line 743 in "backover.c"
>     [14] do_search(op = 0x131b07390, rs = 0xffffffff45fff998), line 217 in "search.c"
>     [15] connection_operation(ctx = 0xffffffff45fffc20, arg_v = 0x131b07390), line 1097 in "connection.c"
>     [16] connection_read_thread(ctx = 0xffffffff45fffc20, argv = 0xbf), line 1223 in "connection.c"
>     [17] ldap_int_thread_pool_wrapper(xpool = 0x11062b6a0), line 663 in "tpool.c"
>
> data is null, p is null.

And the trace shows data = 0x12cd3e0f0. What are you looking at?
-- 
   -- Howard Chu
   CTO, Symas Corp.           http://www.symas.com
   Director, Highland Sun     http://highlandsun.com/hyc/
   Chief Architect, OpenLDAP  http://www.openldap.org/project/