Re: [PATCH] Fix detection of concurrent ACLChecklist checks, avoiding !accessList asserts

From: Alex Rousskov <rousskov_at_measurement-factory.com>
Date: Sat, 08 Jun 2013 17:22:49 -0600

On 06/08/2013 05:11 AM, Amos Jeffries wrote:
> On 8/06/2013 5:02 a.m., Alex Rousskov wrote:
>> The attached patch prevents asserts when Squid reuses the same
>> Checklist object for multiple ACL checks. I missed one use case when
>> adding Checklist reuse controls for trunk r12859 (Boolean ACLs). The bug
>> can be triggered by a combination of log_access and access_log ACLs, for
>> example.
>>
>> Concurrent checks are not supported, but it is possible for the same
>> ACLChecklist to be used for a sequence of checks, alternating
>> fastCheck(void) and fastCheck(list) calls. We needed a
>> different/dedicated mechanism to detect check concurrency (added
>> ACLChecklist::occupied_), and we needed to preserve (and then restore)
>> pre-set accessList during fastCheck(list) checks.

> +1.

Committed to trunk as r12901.

Thank you,

Alex.
Received on Sat Jun 08 2013 - 23:23:02 MDT

This archive was generated by hypermail 2.2.0 : Sun Jun 09 2013 - 12:00:12 MDT