This is an automated email from the ASF dual-hosted git repository.
zwoop pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/trafficserver.git
The following commit(s) were added to refs/heads/master by this push:
new 7ed14f5 Don't allow the old body to be used when refreshing
7ed14f5 is described below
commit 7ed14f5b3b956ae0dd8b8fd43311c51d500b4401
Author: Leif Hedstrom <[email protected]>
AuthorDate: Wed Jan 9 16:53:59 2019 -0700
Don't allow the old body to be used when refreshing
This fixes #4753.
The problem happens because the previous body (with CL: > 0) is "moved",
which
then is served even though the body is now empty (CL: 0).
---
iocore/cache/CacheWrite.cc | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/iocore/cache/CacheWrite.cc b/iocore/cache/CacheWrite.cc
index cd873ef..f81cf8d 100644
--- a/iocore/cache/CacheWrite.cc
+++ b/iocore/cache/CacheWrite.cc
@@ -90,7 +90,7 @@ CacheVC::updateVector(int /* event ATS_UNUSED */, Event * /*
e ATS_UNUSED */)
return openWriteCloseDir(EVENT_IMMEDIATE, nullptr);
}
}
- if (update_key == od->single_doc_key && (total_len || !vec)) {
+ if (update_key == od->single_doc_key && (total_len || f.allow_empty_doc
|| !vec)) {
od->move_resident_alt = false;
}
}
@@ -1113,11 +1113,11 @@ CacheVC::openWriteCloseDir(int /* event ATS_UNUSED */,
Event * /* e ATS_UNUSED *
}
if (is_debug_tag_set("cache_update")) {
if (f.update && closed > 0) {
- if (!total_len && alternate_index != CACHE_ALT_REMOVED) {
+ if (!total_len && !f.allow_empty_doc && alternate_index !=
CACHE_ALT_REMOVED) {
Debug("cache_update", "header only %d (%" PRIu64 ", %" PRIu64 ")",
DIR_MASK_TAG(first_key.slice32(2)), update_key.b[0],
update_key.b[1]);
- } else if (total_len && alternate_index != CACHE_ALT_REMOVED) {
+ } else if ((total_len || f.allow_empty_doc) && alternate_index !=
CACHE_ALT_REMOVED) {
Debug("cache_update", "header body, %d, (%" PRIu64 ", %" PRIu64 "),
(%" PRIu64 ", %" PRIu64 ")",
DIR_MASK_TAG(first_key.slice32(2)), update_key.b[0],
update_key.b[1], earliest_key.b[0], earliest_key.b[1]);
} else if (!total_len && alternate_index == CACHE_ALT_REMOVED) {