]> git.ipfire.org Git - thirdparty/squid.git/commit - src/Transients.cc
Do not populate StoreEntry basics from Transients (#1343)
authorAlex Rousskov <rousskov@measurement-factory.com>
Sat, 13 May 2023 00:30:52 +0000 (00:30 +0000)
committerSquid Anubis <squid-anubis@squid-cache.org>
Wed, 17 May 2023 14:38:35 +0000 (14:38 +0000)
commitdbedb5b909bbd9bad7af040d73e64f5ca43ce0c8
tree01deb887b8e391f537c92ee90a697b9f91ccd2c4
parent27a1c6de519dc8a5af0cb0ad080ee4b962a03d3f
Do not populate StoreEntry basics from Transients (#1343)

    client_side_reply.cc:1078: "http->storeEntry()->objectLen() >= 0"
    inside clientReplyContext::storeOKTransferDone()

Since commit 24c9378, Transients are not supposed to maintain "basic"
cache entry information (i.e. StoreMapAnchor::Basics a.k.a. StoreEntry
STORE_META_STD fields). Using often-at-their-defaults Transient basics
may unexpectedly erase valuable StoreEntry information obtained from one
of the caches (e.g., swap_file_sz) and lead to assertions.

Consequently, do not populate unused Transients entry basics either.

Eventually, we may find a good way to parameterize StoreMapAnchor to
avoid keeping those unused fields in Transients StoreMap.
src/MemObject.h
src/Transients.cc
src/Transients.h
src/ipc/StoreMap.cc
src/ipc/StoreMap.h