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

From: Amos Jeffries <squid3_at_treenet.co.nz>
Date: Sat, 08 Jun 2013 23:11:31 +1200

On 8/06/2013 5:02 a.m., Alex Rousskov wrote:
> Hello,
>
> 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.

Amos
Received on Sat Jun 08 2013 - 11:11:55 MDT

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