]> git.ipfire.org Git - thirdparty/squid.git/commit
Bug 3480: StoreEntry::kickProducer() segfaults in store_client::copy()
authorAlex Rousskov <rousskov@measurement-factory.com>
Thu, 24 Oct 2013 15:27:49 +0000 (09:27 -0600)
committerAmos Jeffries <squid3@treenet.co.nz>
Thu, 24 Oct 2013 15:27:49 +0000 (09:27 -0600)
commit0987957340db0b9a79a7781e363f395e741e2821
tree27d6058d6ca4c2845c9b7506405e6625ff0d6e1d
parentf24746bf2086e02aea010977576b4152895eb3cc
Bug 3480: StoreEntry::kickProducer() segfaults in store_client::copy()
context

Short-term fix: Lock StoreEntry object so that it is not freed by
storeClientCopy2() callbacks. Also lock StoreEntry in storeUnregister()
context because an aborting entry may be deleted there unless it is
double-locked.

See bug 3480 comment #27 for detailed call stack analysis. Additional
cases
include rejected copied HIT due to Var mismatch and hits blocked by
reply_from_cache directive (under development; see bug 3937).

Long-term, we need to make store copying asynchronous and revise
StoreEntry
locking approach.
src/store_client.cc