Re: [PATCH] Prevent external_acl.cc "inBackground" assertion on queue overloads

From: Alex Rousskov <rousskov_at_measurement-factory.com>
Date: Wed, 24 Apr 2013 15:25:33 -0600

On 02/18/2013 12:38 PM, Alex Rousskov wrote:
> On 01/11/2013 05:39 PM, Alex Rousskov wrote:
>> I think there is an off-by-one error in the external_acl.cc code
>> that kills Squid:
>>
>>> 2013/01/11 15:13:18.037| external_acl.cc(843) aclMatchExternal: "http://example-3.com/req=debug,uniq4,abort_at=AfterReqHs/resp=debug/": queueing a call.
>>> 2013/01/11 15:13:18.037| external_acl.cc(845) aclMatchExternal: "http://example-3.com/req=debug,uniq4,abort_at=AfterReqHs/resp=debug/": return -1.
>>> 2013/01/11 15:13:18.037| Acl.cc(321) checklistMatches: ACL::ChecklistMatches: result for 'dummyfilter' is -1
>>> 2013/01/11 15:13:18.037| Acl.cc(339) matches: ACLList::matches: result is false
>>> 2013/01/11 15:13:18.037| Checklist.cc(275) matchNode: 0x99fe8a8 matched=0 async=1 finished=0
>>> 2013/01/11 15:13:18.037| Checklist.cc(312) matchNode: 0x99fe8a8 going async
>>> 2013/01/11 15:13:18.037| Acl.cc(61) FindByName: ACL::FindByName 'dummyfilter'
>>> 2013/01/11 15:13:18.037| Checklist.cc(131) asyncInProgress: ACLChecklist::asyncInProgress: 0x99fe8a8 async set to 1
>>> 2013/01/11 15:13:18.037| external_acl.cc(1407) Start: fg lookup in 'dummyfilter' for 'http://example-3.com/req=debug,uniq4,abort_at=AfterReqHs/resp=debug/'
>>> 2013/01/11 15:13:18.037| external_acl.cc(1450) Start: 'dummyfilter' queue is too long
>>> 2013/01/11 15:13:18.037| assertion failed: external_acl.cc:1451: "inBackground"
>>
>>
>> The enqueue check for external ACL lookups is inconsistent with the
>> final queue length check in ExternalACLLookup::Start(). The former
>> allows adding to the already full (but not yet overflowing) queue while
>> the latter rightfully(?) asserts that the queue should not overflow.

> We discussed future steps to remove the whole queuing mess, and it
> looks like we were in agreement on what needs to be done there.
> Meanwhile, any objections to committing this specific bug fixing patch?

I committed the specific bug fix to trunk as r12775.

BTW, we have started making good progress on addressing the bigger
issues discussed on this thread. I hope to post first patches for review
in a week or so.

Thank you,

Alex.
Received on Wed Apr 24 2013 - 21:25:37 MDT

This archive was generated by hypermail 2.2.0 : Thu Apr 25 2013 - 12:00:14 MDT