mirror of
https://git.openldap.org/openldap/openldap.git
synced 2025-01-06 10:46:21 +08: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
@ -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 New Issue
Block a user