From 583c0115b3933afd8e82c4ac90cdfc87901128ef Mon Sep 17 00:00:00 2001 From: Alex Rousskov Date: Thu, 25 Apr 2013 09:47:40 -0600 Subject: [PATCH] Prevent external_acl.cc "inBackground" assertion on queue overloads. The enqueue check for external ACL lookups was inconsistent with the final queue length check in ExternalACLLookup::Start(). The former allowed adding to the already full (but not yet overflowing) queue while the latter rightfully(?) asserted that the queue should not overflow. --- src/external_acl.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/external_acl.cc b/src/external_acl.cc index b9cb7d19d8..55f2ddf17a 100644 --- a/src/external_acl.cc +++ b/src/external_acl.cc @@ -839,7 +839,7 @@ aclMatchExternal(external_acl_data *acl, ACLFilledChecklist *ch) debugs(82, 2, HERE << "\"" << key << "\": entry=@" << entry << ", age=" << (entry ? (long int) squid_curtime - entry->date : 0)); - if (acl->def->theHelper->stats.queue_size <= (int)acl->def->theHelper->childs.n_active) { + if (acl->def->theHelper->stats.queue_size < (int)acl->def->theHelper->childs.n_active) { debugs(82, 2, HERE << "\"" << key << "\": queueing a call."); ch->changeState(ExternalACLLookup::Instance()); debugs(82, 2, HERE << "\"" << key << "\": return -1."); -- 2.47.2