mirror of
https://git.openldap.org/openldap/openldap.git
synced 2026-01-21 22:34:08 -05:00
ITS#9043 tweak syncprov play_sessionlog logging
Don't log cookiecsn at top, it was already logged on receipt. Only log the "control csn" and "too old" message once for each sid.
This commit is contained in:
parent
e02b1d94ca
commit
bf40306581
1 changed files with 28 additions and 16 deletions
|
|
@ -1953,7 +1953,7 @@ syncprov_play_sessionlog( Operation *op, SlapReply *rs, sync_control *srs,
|
|||
slap_overinst *on = (slap_overinst *)op->o_bd->bd_info;
|
||||
syncprov_info_t *si = (syncprov_info_t *)on->on_bi.bi_private;
|
||||
sessionlog *sl = si->si_logs;
|
||||
int i, j, ndel, num, nmods, mmods, do_play = 0, rc = -1;
|
||||
int i, j, ndel, num, nmods, mmods, do_play = 0, rc = -1, *sidchks;
|
||||
BerVarray uuids, csns;
|
||||
struct berval uuid[2] = {}, csn[2] = {};
|
||||
slog_entry *se;
|
||||
|
|
@ -1998,6 +1998,8 @@ syncprov_play_sessionlog( Operation *op, SlapReply *rs, sync_control *srs,
|
|||
sl->sl_playing++;
|
||||
ldap_pvt_thread_mutex_unlock( &sl->sl_mutex );
|
||||
|
||||
sidchks = op->o_tmpcalloc( srs->sr_state.numcsns + 1, sizeof( int ),
|
||||
op->o_tmpmemctx );
|
||||
uuids = op->o_tmpalloc( (num) * sizeof( struct berval ) +
|
||||
num * UUID_LEN, op->o_tmpmemctx );
|
||||
uuids[0].bv_val = (char *)(uuids + num);
|
||||
|
|
@ -2009,36 +2011,44 @@ syncprov_play_sessionlog( Operation *op, SlapReply *rs, sync_control *srs,
|
|||
* and everything else at the end. Do this first so we can
|
||||
* unlock the list mutex.
|
||||
*/
|
||||
Debug( LDAP_DEBUG_SYNC, "%s syncprov_play_sessionlog: "
|
||||
"sync control csn %s\n",
|
||||
op->o_log_prefix, srs->sr_state.ctxcsn[0].bv_val );
|
||||
for ( se=sl->sl_head; se; se=se->se_next ) {
|
||||
char uuidstr[40] = {};
|
||||
int k;
|
||||
|
||||
if ( LogTest( LDAP_DEBUG_SYNC ) ) {
|
||||
if ( !BER_BVISEMPTY( &se->se_uuid ) ) {
|
||||
lutil_uuidstr_from_normalized( se->se_uuid.bv_val, se->se_uuid.bv_len,
|
||||
uuidstr, 40 );
|
||||
}
|
||||
Debug( LDAP_DEBUG_SYNC, "%s syncprov_play_sessionlog: "
|
||||
"log entry tag=%lu uuid=%s cookie=%s\n",
|
||||
op->o_log_prefix, se->se_tag, uuidstr, se->se_csn.bv_val );
|
||||
}
|
||||
|
||||
ndel = 1;
|
||||
for ( k=0; k<srs->sr_state.numcsns; k++ ) {
|
||||
if ( se->se_sid == srs->sr_state.sids[k] ) {
|
||||
ndel = ber_bvcmp( &se->se_csn, &srs->sr_state.ctxcsn[k] );
|
||||
if ( !sidchks[k] || ndel > 0 ) {
|
||||
if ( LogTest( LDAP_DEBUG_SYNC ) ) {
|
||||
if ( !sidchks[k] ) {
|
||||
Debug( LDAP_DEBUG_SYNC, "%s syncprov_play_sessionlog: "
|
||||
"sync control csn %s\n",
|
||||
op->o_log_prefix, srs->sr_state.ctxcsn[k].bv_val );
|
||||
}
|
||||
if ( !BER_BVISEMPTY( &se->se_uuid ) ) {
|
||||
lutil_uuidstr_from_normalized( se->se_uuid.bv_val, se->se_uuid.bv_len,
|
||||
uuidstr, 40 );
|
||||
}
|
||||
Debug( LDAP_DEBUG_SYNC, "%s syncprov_play_sessionlog: "
|
||||
"log entry tag=%lu uuid=%s cookie=%s\n",
|
||||
op->o_log_prefix, se->se_tag, uuidstr, se->se_csn.bv_val );
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
if ( ndel <= 0 ) {
|
||||
Debug( LDAP_DEBUG_SYNC, "%s syncprov_play_sessionlog: "
|
||||
"cmp %d, csn %s too old, skipping\n",
|
||||
op->o_log_prefix, ndel, se->se_csn.bv_val );
|
||||
if ( !sidchks[k] ) {
|
||||
Debug( LDAP_DEBUG_SYNC, "%s syncprov_play_sessionlog: "
|
||||
"cmp %d, csn %s too old, skipping\n",
|
||||
op->o_log_prefix, ndel, se->se_csn.bv_val );
|
||||
sidchks[k] = 1;
|
||||
}
|
||||
continue;
|
||||
}
|
||||
sidchks[k] = 1;
|
||||
ndel = 0;
|
||||
for ( k=0; k<numcsns; k++ ) {
|
||||
if ( se->se_sid == sids[k] ) {
|
||||
|
|
@ -2080,6 +2090,8 @@ syncprov_play_sessionlog( Operation *op, SlapReply *rs, sync_control *srs,
|
|||
sl->sl_playing--;
|
||||
ldap_pvt_thread_mutex_unlock( &sl->sl_mutex );
|
||||
|
||||
op->o_tmpfree( sidchks, op->o_tmpmemctx );
|
||||
|
||||
ndel = i;
|
||||
|
||||
/* Zero out unused slots */
|
||||
|
|
|
|||
Loading…
Reference in a new issue