mirror of
https://git.openldap.org/openldap/openldap.git
synced 2025-12-31 20:19:34 -05:00
ITS#6152 restart consistency checker when going back online
reset refcnt when refreshing a query
This commit is contained in:
parent
deb1fb6eb6
commit
cd0681c4e1
1 changed files with 13 additions and 0 deletions
|
|
@ -2809,6 +2809,10 @@ refresh_query( Operation *op, SlapReply *rs, CachedQuery *query,
|
|||
dnlist *dn;
|
||||
int i, rc;
|
||||
|
||||
ldap_pvt_thread_mutex_lock( &query->answerable_cnt_mutex );
|
||||
query->refcnt = 0;
|
||||
ldap_pvt_thread_mutex_unlock( &query->answerable_cnt_mutex );
|
||||
|
||||
cb.sc_response = refresh_merge;
|
||||
cb.sc_private = &ri;
|
||||
|
||||
|
|
@ -3263,6 +3267,15 @@ pc_cf_gen( ConfigArgs *c )
|
|||
break;
|
||||
case PC_OFFLINE:
|
||||
cm->cc_paused &= ~PCACHE_CC_OFFLINE;
|
||||
/* If there were cached queries when we went offline,
|
||||
* restart the checker now.
|
||||
*/
|
||||
if ( cm->num_cached_queries ) {
|
||||
ldap_pvt_thread_mutex_lock( &slapd_rq.rq_mutex );
|
||||
cm->cc_paused = 0;
|
||||
ldap_pvt_runqueue_resched( &slapd_rq, cm->cc_arg, 0 );
|
||||
ldap_pvt_thread_mutex_unlock( &slapd_rq.rq_mutex );
|
||||
}
|
||||
rc = 0;
|
||||
break;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue