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
