[Date Prev][Date Next]
[Chronological]
[Thread]
[Top]
Re: SyncRepl stops after a few entries [auf Viren ÃberprÃft]
--On Monday, September 12, 2005 3:34 PM +0200 Hans Moser
<hans.moser@ofd-sth.niedersachsen.de> wrote:
Hello!
I installed two 2.3.4 server. In the first I added 33 MB of test data
under ou=admindepot,ou=foo,o=bar (slapadd) and added the
syncprovider-overlay conf in slapd.conf.
In the second server I just add the initial ou=admindepot,ou=foo,o=bar
entries und configured syncconsumer in slapd.conf.
SyncRep evertime ends after the same 6 -partially with not all the
attributes- entries of a few thousand.
I cannot see any specific error.
Is this one of the in latter releases fixed SyncRepl issues?
[When I fill the first server by ldapadd, while SyncRepl is currently
established, the entries get replicated.]
You need to update to OpenLDAP 2.3.7, and then apply the attached patch.
--Quanah
--
Quanah Gibson-Mount
Principal Software Developer
ITSS/Shared Services
Stanford University
GnuPG Public Key: http://www.stanford.edu/~quanah/pgp.html
"These censorship operations against schools and libraries are stronger
than ever in the present religio-political climate. They often focus on
fantasy and sf books, which foster that deadly enemy to bigotry and blind
faith, the imagination." -- Ursula K. Le Guin
--- openldap-2.3.7/servers/slapd/overlays/syncprov.c.orig 2005-08-29 11:26:11.000000000 -0700+++ openldap-2.3.7/servers/slapd/overlays/syncprov.c 2005-09-09 09:59:20.263806000 -0700@@ -408,26 +408,29 @@ SlapReply frs = { REP_RESULT }; int rc; - fop = *op;+ /* Use basic parameters from syncrepl search, but use+ * current op's threadctx / tmpmemctx+ */+ fop = *fc->fss->s_op;++ fop.o_hdr = op->o_hdr;+ fop.o_bd = op->o_bd;+ fop.o_time = op->o_time;+ fop.o_tincr = op->o_tincr; cb.sc_response = findbase_cb; cb.sc_private = fc; - fop.o_sync_mode &= SLAP_CONTROL_MASK; /* turn off sync mode */+ fop.o_sync_mode = 0; /* turn off sync mode */ fop.o_managedsait = SLAP_CONTROL_CRITICAL; fop.o_callback = &cb; fop.o_tag = LDAP_REQ_SEARCH; fop.ors_scope = LDAP_SCOPE_BASE;- fop.ors_deref = fc->fss->s_op->ors_deref; fop.ors_limit = NULL; fop.ors_slimit = 1; fop.ors_tlimit = SLAP_NO_LIMIT; fop.ors_attrs = slap_anlist_no_attrs; fop.ors_attrsonly = 1;- fop.ors_filter = fc->fss->s_op->ors_filter;- fop.ors_filterstr = fc->fss->s_op->ors_filterstr;-- fop.o_req_ndn = fc->fss->s_op->o_req_ndn; fop.o_bd->bd_info = on->on_info->oi_orig; rc = fop.o_bd->be_search( &fop, &frs );@@ -780,6 +783,7 @@ sop.o_bd = op->o_bd; sop.o_controls = op->o_controls; sop.o_private = op->o_private;+ sop.o_callback = NULL; /* If queueing is allowed */ if ( queue ) {@@ -1046,6 +1050,7 @@ "search base has changed" ); sprev->s_next = snext; syncprov_drop_psearch( ss, 1 );+ ss = sprev; continue; } @@ -1693,6 +1698,8 @@ g2->ga_next = op2->o_groups; op2->o_groups = g2; }+ /* Don't allow any further group caching */+ op2->o_do_not_cache = 1; /* Add op2 to conn so abandon will find us */ ldap_pvt_thread_mutex_lock( &op->o_conn->c_mutex );