Rein Tollevik wrote:
Howard Chu wrote:
Rein Tollevik wrote:
hyc@symas.com wrote:
rein@OpenLDAP.org 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