[squid-dev] [PATCH] Uninitialised errors during Squid startup
Eduard Bagdasaryan
eduard.bagdasaryan at measurement-factory.com
Thu Jun 9 13:32:05 UTC 2016
Hello Amos,
> How does this interact with objects that begin their life as private
> then get converted to public keys?
I think that it is a typical situation: a request that is a miss
firstly gets a private key(so that other requests to the same URL still
got misses).
It is converted to a public key when Squid gets headers of a [cachable]
response. As I wrote
the private key is required to be unique, but I see no correlation
between the private and
the public keys in such scenario.
> the comment about kidID and PID in the new private key blob as being
> just an optimization I dont think is correct. Without them I think we
> could have ID collisions in collapsed_forwarding, shared cacheh_mem, or
> rock across workers. That would make them required for proper operations
> in SMP.
AFAIK, private store entries are not cachable: see KEY_PRIVATE check in
StoreEntry::checkCachable(); this check is performed before entry is written
to shared memory or disk cache. So private entries are not shared among
workers and
a unique per-process counter should be sufficient.
> How much testing has this had?
I tested with Valgrind and ran test-builds.sh.
Eduard.
More information about the squid-dev
mailing list