[Date Prev][Date Next]
[Chronological]
[Thread]
[Top]
Re: syncrepl w/ 2.3 and bdb 4.3 working great
--On Monday, September 12, 2005 10:00 AM -0400 Dusty Doris
<openldap@mail.doris.cc> wrote:
I was wondering if BerkeleyDB 4.3.28 was suitable for production use
with OL 2.3.7.
There were some continuing issues with syncprov in 2.3.7 that are now
fixed in HEAD.
--Quanah
Hmm, I haven't been seeing issues, but I'm interested in what those are.
I was planning on moving 2.3.7 to production in the next week or two.
I'll check the ITS system and look reports on syncprov issues. Perhaps
I'm not generating the amount of adds/modifies I need to run into those
problems.
If you happen to know any ITS numbers I should check out, let me know.
ITS #3989. There were issues with the consumers taking on the identity of
the writer. If the writer had fewer permissions than were necessary by the
reader, this caused a number of issues (plus the fact that connections were
taking on other identities is problematic in itself). Again, I'd get
syncprov.c from HEAD where this is all fixed (it compiles cleanly into
2.3.7), or you can use 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 );