Rein Tollevik wrote:
> Howard Chu wrote:
>> Rein Tollevik wrote:
>>> [email protected] wrote:
>>>> [email protected] wrote:
>>>
>>>>> I had a couple of seg. faults when resync'ing my servers after
>>>>> upgrading to the
>>>>> upcoming 2.4.16 release. Looks as if a copy of the backend must be
>>>>> used when
>>>>> testing the filter in syncprov_matchops. See the gdb output at the
>>>>> end. Note,
>>>>> some function names are incorrect due to optimization. A fix is
>>>>> coming.
>>>>
>>>> The fix makes no sense, or the problem has not yet been analyzed
>>>> sufficiently.
>>>> Nobody in that call chain should be zeroing out bd_info. And if
>>>> someone *is*,
>>>> then it will happen in *whatever* BackendDB structure is currently
>>>> being used.
>>>>
>>>> Explain the real cause of the problem, and why the fix is correct.
>>>
>>> The problem is not zeroing of bd_info, it is that the entire op2.o_bd
>>> points to garbage, as the gdb output shows. I did forgot to print
>>> ss->s_op->o_bd though. op2 is a copy of *ss->s_op, but op2.o_bd and
>>> ss->s_op->o_bd differ. The content of *ss->s_op->o_bd looks reasonable.
>>>
>>> The copying of *ss->s_op into op2 was introduced in rev 1.233 as a fix
>>> to ITS#5486. It doesn't say why this was the correct fix, but I assume
>>> it was done because something could modify *ss->s_op while the filter
>>> was being tested.
>>
>> Yes of course, particularly op->o_callback.
>>
>>> Btw, the gdb output from ITS#5486 shows a db with
>>> similar garbage, so I suspect that these ITSes are related.
>>
>>> Assuming that something could mess with ss->s_op they might as well mess
>>> with ss->s_op->o_bd. The copying of the op->o_bd that takes place all
>>> around is a nightmare! I have no clue as to who modified *ss->s_op
>>> and/or *ss->s_op->o_bd, and I'm not very satisfied with the fact that
>>> something did. Finding out why this happened may be the correct fix.
>>
>> Yes, that's my point.
>
>> Down the road we need to fix things so that all this copying is
>> unnecessary; it just involves adding an op->o_bd_info field so that we
>> no longer need to change anything in the op->o_bd itself.
>
> YES! Would defining o_bd_info as o_bd->bd_info in the meantime ease the
> transition? That would allow us to fix the code that accesses bd_info
> step by step before actually making the real fix.
This would be a 2.5.x change; I'd rather not start this before we have a new
2.4 Stable release.
>> But in the
>> meantime, we need to find out why an invalid op->o_bd is there. Most
>> likely some lower function temporarily put a stack'd copy in there and
>> didn't restore the original value before returning. And again, if that's
>> the case, then it doesn't matter what value you set higher up, copy or
>> not it will still point to garbage.
>
> I'm more afraid we have a race condition here. I.e, thread A puts a
> pointer to a stack copy of the BackendDB into ss->s_op->o_bd. matchops
> in thread B copies this op into op2 before thread A restores the
> original o_bd. Leaving thread B with a pointer to junk in op2.o_bd.
> Some more gdb output below, thread 2 looks suspicious here. Thread 1
> was the failing one, its ss->s_op is the same as the op argument passed
> as argument in thread 2.
OK, that's the real problem. When a persistent search starts, it's recorded
using the op of the active search (ss->s_op), while it's in refresh phase.
When the refresh phase ends and it goes into persist, then the op is detached
from the connection manager's control, and ss->s_op is replaced by a copy. But
if writes occur while the refresh is still happening, they'll be referencing
ss->s_op which is still the active refresh op.
The fix should be to use the current op's op->o_bd; each of the threads is
executing in the same database so the current thread's o_bd should be
functionally equivalent to the s_op's o_bd. There's no reason to make a new
copy of the db.
> Rein
>
> (gdb) thr app all where
>
> Thread 18 (process 32255):
> #0 0xb7fe97a2 in _dl_sysinfo_int80 () from /lib/ld-linux.so.2
> #1 0xb7c540fd in pthread_join () from /lib/tls/libpthread.so.0
> #2 0xb7fb4460 in ldap_pvt_thread_join (thread=2411723696,
> thread_return=0x0) at thr_posix.c:197
> #3 0x0806e88f in slapd_daemon () at daemon.c:2665
> #4 0x0805ac67 in main (argc=13, argv=0xbffffb44) at main.c:955
>
> Thread 17 (process 32257):
> #0 0xb7fe97a2 in _dl_sysinfo_int80 () from /lib/ld-linux.so.2
> #1 0xb7be3a41 in select () from /lib/tls/libc.so.6
> #2 0x08071aa0 in slapd_daemon_task (ptr=0x0) at daemon.c:2291
> #3 0xb7c53371 in start_thread () from /lib/tls/libpthread.so.0
> #4 0xb7beaffe in clone () from /lib/tls/libc.so.6
>
> Thread 16 (process 32258):
> #0 0x080f8e01 in bdb_search (op=0x8e193ba4, rs=0x8e193b68) at search.c:798
> #1 0x080e13cf in overlay_op_walk (op=0x8e193ba4, rs=0x8e193b68,
> which=op_search, oi=0x8299040, on=0x8299140) at backover.c:669
> #2 0x080e19b5 in over_op_func (op=0x8e193ba4, rs=0x8e193b68,
> which=op_search) at backover.c:721
> #3 0x080e1af5 in over_op_search (op=0x8e193ba4, rs=0x8e193b68) at
> backover.c:743
> #4 0x080df000 in glue_sub_search (op=0x8e193ba4, rs=0x8e193b68,
> b0=0x83f82f4, on=0x8298ed0) at backglue.c:342
> #5 0x080dfc04 in glue_op_search (op=0xae49ec8, rs=0x8e193b68) at
> backglue.c:465
> #6 0x080e1379 in overlay_op_walk (op=0x8e193ba4, rs=0x8e193b68,
> which=op_search, oi=0x82a3098, on=0x82a3298) at backover.c:659
> #7 0x080e19b5 in over_op_func (op=0x8e193ba4, rs=0x8e193b68,
> which=op_search) at backover.c:721
> #8 0x080e1af5 in over_op_search (op=0x8e193ba4, rs=0x8e193b68) at
> backover.c:743
> #9 0xb7a39dbb in syncprov_findcsn (op=0x8c22710, mode=FIND_PRESENT) at
> syncprov.c:707
> #10 0xb7a3af84 in syncprov_op_search (op=0x8c22710, rs=0x8e1951c0) at
> syncprov.c:2484
> #11 0x080e1379 in overlay_op_walk (op=0x8c22710, rs=0x8e1951c0,
> which=op_search, oi=0x82a3098, on=0x82935e8) at backover.c:659
> #12 0x080e19b5 in over_op_func (op=0x8c22710, rs=0x8e1951c0,
> which=op_search) at backover.c:721
> #13 0x080e1af5 in over_op_search (op=0x8c22710, rs=0x8e1951c0) at
> backover.c:743
> #14 0x080771c4 in fe_op_search (op=0x8c22710, rs=0x8e1951c0) at search.c:366
> #15 0x08077d53 in do_search (op=0x8c22710, rs=0x8e1951c0) at search.c:217
> #16 0x08074d3c in connection_operation (ctx=0x8e1952b8, arg_v=0x8c22710)
> at connection.c:1097
> #17 0x08075d48 in connection_read_thread (ctx=0x8e1952b8, argv=0x52) at
> connection.c:1223
> #18 0xb7fb3a20 in ldap_int_thread_pool_wrapper (xpool=0x81f8cf0) at
> tpool.c:663
> #19 0xb7c53371 in start_thread () from /lib/tls/libpthread.so.0
> #20 0xb7beaffe in clone () from /lib/tls/libc.so.6
>
> Thread 15 (process 32259):
> #0 0xb7fe97a2 in _dl_sysinfo_int80 () from /lib/ld-linux.so.2
> #1 0xb7c55b26 in pthread_cond_wait@@GLIBC_2.3.2 () from
> /lib/tls/libpthread.so.0
> #2 0xb7fb435b in ldap_pvt_thread_cond_wait (cond=0x81f8d0c,
> mutex=0x81f8cf4) at thr_posix.c:277
> #3 0xb7fb39e4 in ldap_int_thread_pool_wrapper (xpool=0x81f8cf0) at
> tpool.c:654
> #4 0xb7c53371 in start_thread () from /lib/tls/libpthread.so.0
> #5 0xb7beaffe in clone () from /lib/tls/libc.so.6
>
> Thread 14 (process 32260):
> #0 0xb7fe97a2 in _dl_sysinfo_int80 () from /lib/ld-linux.so.2
> #1 0xb7c55b26 in pthread_cond_wait@@GLIBC_2.3.2 () from
> /lib/tls/libpthread.so.0
> #2 0xb7fb435b in ldap_pvt_thread_cond_wait (cond=0x81f8d0c,
> mutex=0x81f8cf4) at thr_posix.c:277
> #3 0xb7fb39e4 in ldap_int_thread_pool_wrapper (xpool=0x81f8cf0) at
> tpool.c:654
> #4 0xb7c53371 in start_thread () from /lib/tls/libpthread.so.0
> #5 0xb7beaffe in clone () from /lib/tls/libc.so.6
>
> Thread 13 (process 32261):
> #0 0xb7fe97a2 in _dl_sysinfo_int80 () from /lib/ld-linux.so.2
> #1 0xb7c55b26 in pthread_cond_wait@@GLIBC_2.3.2 () from
> /lib/tls/libpthread.so.0
> #2 0xb7fb435b in ldap_pvt_thread_cond_wait (cond=0x81f8d0c,
> mutex=0x81f8cf4) at thr_posix.c:277
> #3 0xb7fb39e4 in ldap_int_thread_pool_wrapper (xpool=0x81f8cf0) at
> tpool.c:654
> #4 0xb7c53371 in start_thread () from /lib/tls/libpthread.so.0
> #5 0xb7beaffe in clone () from /lib/tls/libc.so.6
>
> Thread 12 (process 32262):
> #0 0xb7ef22ce in __lock_get_internal () from /local/lib/libdb-4.7.so
> #1 0xb7ef3758 in __lock_get_pp () from /local/lib/libdb-4.7.so
> #2 0x0810adee in bdb_cache_entry_db_lock (bdb=0x8372848, txn=<value
> optimized out>, ei=0x75788730, rw=1, tryOnly=1, lock=0x8d0cf3ec) at
> cache.c:221
> ---Type<return> to continue, or q<return> to quit---
> #3 0x0810bad7 in bdb_cache_lru_purge (bdb=0x8298bf8) at cache.c:738
> #4 0x0810c6c4 in bdb_cache_find_id (op=0x8d18fba4, tid=0x8bd6bd8,
> id=31294, eip=0x8d0cf614, flag=2, lock=0x8d0cf5f8) at cache.c:1053
> #5 0x080f8b57 in bdb_search (op=0x8d18fba4, rs=0x8d18fb68) at search.c:706
> #6 0x080e13cf in overlay_op_walk (op=0x8d18fba4, rs=0x8d18fb68,
> which=op_search, oi=0x8299040, on=0x8299140) at backover.c:669
> #7 0x080e19b5 in over_op_func (op=0x8d18fba4, rs=0x8d18fb68,
> which=op_search) at backover.c:721
> #8 0x080e1af5 in over_op_search (op=0x8d18fba4, rs=0x8d18fb68) at
> backover.c:743
> #9 0x080df000 in glue_sub_search (op=0x8d18fba4, rs=0x8d18fb68,
> b0=0x8097, on=0x8298ed0) at backglue.c:342
> #10 0x080dfc04 in glue_op_search (op=0x1, rs=0x8d18fb68) at backglue.c:465
> #11 0x080e1379 in overlay_op_walk (op=0x8d18fba4, rs=0x8d18fb68,
> which=op_search, oi=0x82a3098, on=0x82a3298) at backover.c:659
> #12 0x080e19b5 in over_op_func (op=0x8d18fba4, rs=0x8d18fb68,
> which=op_search) at backover.c:721
> #13 0x080e1af5 in over_op_search (op=0x8d18fba4, rs=0x8d18fb68) at
> backover.c:743
> #14 0xb7a39dbb in syncprov_findcsn (op=0x88cef38, mode=FIND_PRESENT) at
> syncprov.c:707
> #15 0xb7a3af84 in syncprov_op_search (op=0x88cef38, rs=0x8d1911c0) at
> syncprov.c:2484
> #16 0x080e1379 in overlay_op_walk (op=0x88cef38, rs=0x8d1911c0,
> which=op_search, oi=0x82a3098, on=0x82935e8) at backover.c:659
> #17 0x080e19b5 in over_op_func (op=0x88cef38, rs=0x8d1911c0,
> which=op_search) at backover.c:721
> #18 0x080e1af5 in over_op_search (op=0x88cef38, rs=0x8d1911c0) at
> backover.c:743
> #19 0x080771c4 in fe_op_search (op=0x88cef38, rs=0x8d1911c0) at search.c:366
> #20 0x08077d53 in do_search (op=0x88cef38, rs=0x8d1911c0) at search.c:217
> #21 0x08074d3c in connection_operation (ctx=0x8d1912b8, arg_v=0x88cef38)
> at connection.c:1097
> #22 0x08075d48 in connection_read_thread (ctx=0x8d1912b8, argv=0x4a) at
> connection.c:1223
> #23 0xb7fb3a20 in ldap_int_thread_pool_wrapper (xpool=0x81f8cf0) at
> tpool.c:663
> #24 0xb7c53371 in start_thread () from /lib/tls/libpthread.so.0
> #25 0xb7beaffe in clone () from /lib/tls/libc.so.6
>
> Thread 11 (process 32263):
> #0 0xb7fe97a2 in _dl_sysinfo_int80 () from /lib/ld-linux.so.2
> #1 0xb7c55b26 in pthread_cond_wait@@GLIBC_2.3.2 () from
> /lib/tls/libpthread.so.0
> #2 0xb7fb435b in ldap_pvt_thread_cond_wait (cond=0xb79b3e74,
> mutex=0xb79b3e5c) at thr_posix.c:277
> #3 0x0808594c in send_ldap_ber (op=<value optimized out>,
> ber=0x8cccea0c) at result.c:218
> #4 0x08087cdc in slap_send_search_entry (op=0x993f938, rs=0x8cd901c0)
> at result.c:1247
> #5 0x080f9433 in bdb_search (op=0x993f938, rs=0x8cd901c0) at search.c:960
> #6 0x080e13cf in overlay_op_walk (op=0x993f938, rs=0x8cd901c0,
> which=op_search, oi=0x8295890, on=0x8295990) at backover.c:669
> #7 0x080e19b5 in over_op_func (op=0x993f938, rs=0x8cd901c0,
> which=op_search) at backover.c:721
> #8 0x080e1af5 in over_op_search (op=0x993f938, rs=0x8cd901c0) at
> backover.c:743
> #9 0x080df000 in glue_sub_search (op=0x993f938, rs=0x8cd901c0, b0=0x0,
> on=0x82956a0) at backglue.c:342
> #10 0x080dfc04 in glue_op_search (op=0xfffffffc, rs=0x8cd901c0) at
> backglue.c:465
> #11 0x080e1379 in overlay_op_walk (op=0x993f938, rs=0x8cd901c0,
> which=op_search, oi=0x82a3098, on=0x82a3298) at backover.c:659
> #12 0x080e19b5 in over_op_func (op=0x993f938, rs=0x8cd901c0,
> which=op_search) at backover.c:721
> #13 0x080e1af5 in over_op_search (op=0x993f938, rs=0x8cd901c0) at
> backover.c:743
> #14 0x080771c4 in fe_op_search (op=0x993f938, rs=0x8cd901c0) at search.c:366
> #15 0x08077d53 in do_search (op=0x993f938, rs=0x8cd901c0) at search.c:217
> #16 0x08074d3c in connection_operation (ctx=0x8cd902b8, arg_v=0x993f938)
> at connection.c:1097
> #17 0x08075d48 in connection_read_thread (ctx=0x8cd902b8, argv=0x53) at
> connection.c:1223
> #18 0xb7fb3a20 in ldap_int_thread_pool_wrapper (xpool=0x81f8cf0) at
> tpool.c:663
> #19 0xb7c53371 in start_thread () from /lib/tls/libpthread.so.0
> #20 0xb7beaffe in clone () from /lib/tls/libc.so.6
>
> Thread 10 (process 32265):
> #0 0xb7fe97a2 in _dl_sysinfo_int80 () from /lib/ld-linux.so.2
> #1 0xb7c55b26 in pthread_cond_wait@@GLIBC_2.3.2 () from
> /lib/tls/libpthread.so.0
> #2 0xb7fb435b in ldap_pvt_thread_cond_wait (cond=0x81f8d0c,
> mutex=0x81f8cf4) at thr_posix.c:277
> #3 0xb7fb39e4 in ldap_int_thread_pool_wrapper (xpool=0x81f8cf0) at
> tpool.c:654
> #4 0xb7c53371 in start_thread () from /lib/tls/libpthread.so.0
> #5 0xb7beaffe in clone () from /lib/tls/libc.so.6
>
> Thread 9 (process 32266):
> #0 0xb7fe97a2 in _dl_sysinfo_int80 () from /lib/ld-linux.so.2
> #1 0xb7c55b26 in pthread_cond_wait@@GLIBC_2.3.2 () from
> /lib/tls/libpthread.so.0
> #2 0xb7fb435b in ldap_pvt_thread_cond_wait (cond=0x81f8d0c,
> mutex=0x81f8cf4) at thr_posix.c:277
> #3 0xb7fb39e4 in ldap_int_thread_pool_wrapper (xpool=0x81f8cf0) at
> tpool.c:654
> #4 0xb7c53371 in start_thread () from /lib/tls/libpthread.so.0
> #5 0xb7beaffe in clone () from /lib/tls/libc.so.6
>
> Thread 8 (process 32267):
> #0 0xb7fe97a2 in _dl_sysinfo_int80 () from /lib/ld-linux.so.2
> #1 0xb7c55b26 in pthread_cond_wait@@GLIBC_2.3.2 () from
> /lib/tls/libpthread.so.0
> ---Type<return> to continue, or q<return> to quit---
> #2 0xb7fb435b in ldap_pvt_thread_cond_wait (cond=0x81f8d0c,
> mutex=0x81f8cf4) at thr_posix.c:277
> #3 0xb7fb39e4 in ldap_int_thread_pool_wrapper (xpool=0x81f8cf0) at
> tpool.c:654
> #4 0xb7c53371 in start_thread () from /lib/tls/libpthread.so.0
> #5 0xb7beaffe in clone () from /lib/tls/libc.so.6
>
> Thread 7 (process 32268):
> #0 0xb7fe97a2 in _dl_sysinfo_int80 () from /lib/ld-linux.so.2
> #1 0xb7c55b26 in pthread_cond_wait@@GLIBC_2.3.2 () from
> /lib/tls/libpthread.so.0
> #2 0xb7fb435b in ldap_pvt_thread_cond_wait (cond=0x81f8d0c,
> mutex=0x81f8cf4) at thr_posix.c:277
> #3 0xb7fb39e4 in ldap_int_thread_pool_wrapper (xpool=0x81f8cf0) at
> tpool.c:654
> #4 0xb7c53371 in start_thread () from /lib/tls/libpthread.so.0
> #5 0xb7beaffe in clone () from /lib/tls/libc.so.6
>
> Thread 6 (process 32269):
> #0 0xb7fe97a2 in _dl_sysinfo_int80 () from /lib/ld-linux.so.2
> #1 0xb7c55b26 in pthread_cond_wait@@GLIBC_2.3.2 () from
> /lib/tls/libpthread.so.0
> #2 0xb7fb435b in ldap_pvt_thread_cond_wait (cond=0x81f8d0c,
> mutex=0x81f8cf4) at thr_posix.c:277
> #3 0xb7fb39e4 in ldap_int_thread_pool_wrapper (xpool=0x81f8cf0) at
> tpool.c:654
> #4 0xb7c53371 in start_thread () from /lib/tls/libpthread.so.0
> #5 0xb7beaffe in clone () from /lib/tls/libc.so.6
>
> Thread 5 (process 32270):
> #0 0xb7fe97a2 in _dl_sysinfo_int80 () from /lib/ld-linux.so.2
> #1 0xb7c55b26 in pthread_cond_wait@@GLIBC_2.3.2 () from
> /lib/tls/libpthread.so.0
> #2 0xb7fb435b in ldap_pvt_thread_cond_wait (cond=0x81f8d0c,
> mutex=0x81f8cf4) at thr_posix.c:277
> #3 0xb7fb39e4 in ldap_int_thread_pool_wrapper (xpool=0x81f8cf0) at
> tpool.c:654
> #4 0xb7c53371 in start_thread () from /lib/tls/libpthread.so.0
> #5 0xb7beaffe in clone () from /lib/tls/libc.so.6
>
> Thread 4 (process 32271):
> #0 0xb7fe97a2 in _dl_sysinfo_int80 () from /lib/ld-linux.so.2
> #1 0xb7c55b26 in pthread_cond_wait@@GLIBC_2.3.2 () from
> /lib/tls/libpthread.so.0
> #2 0xb7fb435b in ldap_pvt_thread_cond_wait (cond=0x81f8d0c,
> mutex=0x81f8cf4) at thr_posix.c:277
> #3 0xb7fb39e4 in ldap_int_thread_pool_wrapper (xpool=0x81f8cf0) at
> tpool.c:654
> #4 0xb7c53371 in start_thread () from /lib/tls/libpthread.so.0
> #5 0xb7beaffe in clone () from /lib/tls/libc.so.6
>
> Thread 3 (process 32272):
> #0 0xb7fe97a2 in _dl_sysinfo_int80 () from /lib/ld-linux.so.2
> #1 0xb7c55b26 in pthread_cond_wait@@GLIBC_2.3.2 () from
> /lib/tls/libpthread.so.0
> #2 0xb7fb435b in ldap_pvt_thread_cond_wait (cond=0x81f8d0c,
> mutex=0x81f8cf4) at thr_posix.c:277
> #3 0xb7fb39e4 in ldap_int_thread_pool_wrapper (xpool=0x81f8cf0) at
> tpool.c:654
> #4 0xb7c53371 in start_thread () from /lib/tls/libpthread.so.0
> #5 0xb7beaffe in clone () from /lib/tls/libc.so.6
>
> Thread 2 (process 32273):
> #0 0xb7b8d481 in memmove () from /lib/tls/libc.so.6
> #1 0xb7f9ec01 in ber_write (ber=0x8a4c4a0c, buf=0x8a4c48b8
> "\004\001�\204\214A��\fJL\212\fJL\212�HL\212?���\001", len=0,
> nosos=0)
> at io.c:116
> #2 0xb7f9c44b in ber_put_tag (ber=0x8a4c4a0c, tag=0, nosos=0) at
> encode.c:100
> #3 0xb7f9c83f in ber_put_ostring (ber=0x8a4c4a0c, str=0x81f24f8
> "modifyTimestamp", len=15, tag=2142916662) at encode.c:354
> #4 0xb7f9c961 in ber_put_berval (ber=0x1, bv=0x7fba5036,
> tag=4294967295) at encode.c:382
> #5 0xb7f9d5ad in ber_printf (ber=0x8a4c4a0c, fmt=0x1 "") at encode.c:804
> #6 0x08086e50 in slap_send_search_entry (op=0x84e726c8, rs=0x8a5861c0)
> at result.c:1019
> #7 0x080f9433 in bdb_search (op=0x84e726c8, rs=0x8a5861c0) at search.c:960
> #8 0x080e13cf in overlay_op_walk (op=0x84e726c8, rs=0x8a5861c0,
> which=op_search, oi=0x82970c0, on=0x82971c0) at backover.c:669
> #9 0x080e19b5 in over_op_func (op=0x84e726c8, rs=0x8a5861c0,
> which=op_search) at backover.c:721
> #10 0x080e1af5 in over_op_search (op=0x84e726c8, rs=0x8a5861c0) at
> backover.c:743
> #11 0x080df000 in glue_sub_search (op=0x84e726c8, rs=0x8a5861c0, b0=0x1,
> on=0x8295c40) at backglue.c:342
> #12 0x080dfc04 in glue_op_search (op=0x7fba5036, rs=0x8a5861c0) at
> backglue.c:465
> #13 0x080e1379 in overlay_op_walk (op=0x84e726c8, rs=0x8a5861c0,
> which=op_search, oi=0x82a3098, on=0x82a3298) at backover.c:659
> #14 0x080e19b5 in over_op_func (op=0x84e726c8, rs=0x8a5861c0,
> which=op_search) at backover.c:721
> #15 0x080e1af5 in over_op_search (op=0x84e726c8, rs=0x8a5861c0) at
> backover.c:743
> #16 0x080771c4 in fe_op_search (op=0x84e726c8, rs=0x8a5861c0) at
> search.c:366
> #17 0x08077d53 in do_search (op=0x84e726c8, rs=0x8a5861c0) at search.c:217
> #18 0x08074d3c in connection_operation (ctx=0x8a5862b8,
> arg_v=0x84e726c8) at connection.c:1097
> #19 0x08075d48 in connection_read_thread (ctx=0x8a5862b8, argv=0x51) at
> connection.c:1223
> ---Type<return> to continue, or q<return> to quit---
> #20 0xb7fb3a20 in ldap_int_thread_pool_wrapper (xpool=0x81f8cf0) at
> tpool.c:663
> #21 0xb7c53371 in start_thread () from /lib/tls/libpthread.so.0
> #22 0xb7beaffe in clone () from /lib/tls/libc.so.6
>
> Thread 1 (process 32264):
> #0 0x080989a1 in access_allowed_mask (op=0x8c98dc54, e=0x83f827c,
> desc=0x81f2008, val=0x0, access=ACL_SEARCH, state=0x0, maskp=0x0) at
> acl.c:454
> #1 0x0809603b in test_filter (op=0x8c98dc54, e=0x83f827c, f=0x82ffb0ac)
> at filterentry.c:821
> #2 0xb7a3d740 in syncprov_matchops (op=0x8c98edc8, opc=0x7ae2d620,
> saveit=0) at syncprov.c:1257
> #3 0xb7a3e5cd in syncprov_op_response (op=0x8c98edc8, rs=0x8c98e890) at
> syncprov.c:1801
> #4 0x08084e5d in slap_response_play (op=0x8c98edc8, rs=0x8c98e890) at
> result.c:350
> #5 0x0808821c in send_ldap_response (op=0x8c98edc8, rs=0x8c98e890) at
> result.c:424
> #6 0x080893b3 in slap_send_ldap_result (op=0x8c98edc8, rs=0x8c98e890)
> at result.c:693
> #7 0x08109928 in bdb_add (op=0x8c98edc8, rs=0x8c98e890) at add.c:494
> #8 0x080e13cf in overlay_op_walk (op=0x8c98edc8, rs=0x8c98e890,
> which=op_add, oi=0x829a000, on=0x829b2b0) at backover.c:669
> #9 0x080e19b5 in over_op_func (op=0x8c98edc8, rs=0x8c98e890,
> which=op_add) at backover.c:721
> #10 0x080e1a95 in over_op_add (op=0x8c98edc8, rs=0x8c98e890) at
> backover.c:767
> #11 0x080df61f in glue_op_func (op=0x8c98edc8, rs=0x8c98e890) at
> backglue.c:238
> #12 0x080e1379 in overlay_op_walk (op=0x8c98edc8, rs=0x8c98e890,
> which=op_add, oi=0x82a3098, on=0x82a3298) at backover.c:659
> #13 0x080e19b5 in over_op_func (op=0x8c98edc8, rs=0x8c98e890,
> which=op_add) at backover.c:721
> #14 0x080e1a95 in over_op_add (op=0x8c98edc8, rs=0x8c98e890) at
> backover.c:767
> #15 0x080d962f in syncrepl_entry (si=0x829b140, op=0x8c98edc8,
> entry=0x83f827c, modlist=0x8c98ebf8, syncstate=1, syncUUID=0x8c98ec50,
> syncCSN=0x0) at syncrepl.c:2187
> #16 0x080dca39 in do_syncrep2 (op=0x8c98edc8, si=0x829b140) at
> syncrepl.c:892
> #17 0x080de907 in do_syncrepl (ctx=0x8c98f2b8, arg=0x829a760) at
> syncrepl.c:1361
> #18 0x08075d59 in connection_read_thread (ctx=0x8c98f2b8, argv=0x4d) at
> connection.c:1225
> #19 0xb7fb3a20 in ldap_int_thread_pool_wrapper (xpool=0x81f8cf0) at
> tpool.c:663
> #20 0xb7c53371 in start_thread () from /lib/tls/libpthread.so.0
> #21 0xb7beaffe in clone () from /lib/tls/libc.so.6
> #0 0xb7b8d481 in memmove () from /lib/tls/libc.so.6
> (gdb) thr 1
> [Switching to thread 1 (process 32264)]#0 0x080989a1 in
> access_allowed_mask (op=0x8c98dc54, e=0x83f827c, desc=0x81f2008,
> val=0x0, access=ACL_SEARCH, state=0x0, maskp=0x0) at acl.c:454
> 454 if ( op->o_bd->bd_info->bi_access_allowed ) {
> (gdb) fram 2
> #2 0xb7a3d740 in syncprov_matchops (op=0x8c98edc8, opc=0x7ae2d620,
> saveit=0) at syncprov.c:1257
> 1257 rc = test_filter(&op2, e, ss->s_op->ors_filter
> );
> (gdb) print ss->s_op
> $7 = (Operation *) 0x84e726c8
>
--
-- Howard Chu
CTO, Symas Corp. http://www.symas.com
Director, Highland Sun http://highlandsun.com/hyc/
Chief Architect, OpenLDAP http://www.openldap.org/project/