This round was caused by a few missing unlocks causing objects to be
incorrectly identified as in-use during garbage collection.
Future cleanups really need to make these objects true RefCounted.
ti = match(checklist->auth_user_request, checklist->src_addr);
- checklist->auth_user_request = NULL;
+ AUTHUSERREQUESTUNLOCK(checklist->auth_user_request, "ACLChecklist via ACLMaxUserIP");
return ti;
}
/* check to see if we have matched the user-acl before */
int result = cacheMatchAcl(&checklist->auth_user_request->user()->
proxy_match_cache, checklist);
- checklist->auth_user_request = NULL;
+ AUTHUSERREQUESTUNLOCK(checklist->auth_user_request, "ACLChecklist via ACLProxyAuth");
return result;
}
key = makeExternalAclKey(ch, acl);
if (acl->def->require_auth)
- ch->auth_user_request = NULL;
+ AUTHUSERREQUESTUNLOCK(ch->auth_user_request, "ACLChecklist via aclMatchExternal");
if (!key) {
/* Not sufficient data to process */