]> git.ipfire.org Git - thirdparty/squid.git/commit
Bug 4190: assertion 'hash_remove_link' from Auth::User::cacheCleanup
authorFrancesco Chemolli <kinkie@squid-cache.org>
Thu, 1 Oct 2015 01:20:20 +0000 (18:20 -0700)
committerAmos Jeffries <squid3@treenet.co.nz>
Thu, 1 Oct 2015 01:20:20 +0000 (18:20 -0700)
commitd1c95ddadcd9ee36e53af7edd6099a8c078ba2cf
treec22dd13c8615a0ab276dede2596ba1d034db6a76
parent554b3d00ab5aa985657b9e4678d793322f5cf378
parent8c9fcdf42dd3d0a6a35d4a067cbf12eab99fd82b
Bug 4190: assertion 'hash_remove_link' from Auth::User::cacheCleanup

The hash_link based cache depends on raw-ptr key comparisons to store
hash entries. This does not work at all well with SBuf as the key,
since the backing MemBlob behind SBuf can change its memory location.

* replace the implementation of User credentials caching with an STL
  based container class that can handle SBuf.

* revert the global Auth::User cache design to per-scheme caches
  which get combined only when reporting statistics.

* add a RunnersRegistry helper class to control Squid startup,
  reconfigure, and shutdown events activity in regards to the caches.

* suppress useless cache garbage collection events when auth has no
  credentials to cleanup.

* make the cache key dynamic at the caller codes discretion.
src/auth/digest/Config.cc
src/auth/digest/User.cc