You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@trafficserver.apache.org by bn...@apache.org on 2026/09/01 19:01:45 UTC
(trafficserver) branch master updated: Accept either abort shape in slice_stale_generation (#13596)
This is an automated email from the ASF dual-hosted git repository.
bneradt 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 74ce217e43 Accept either abort shape in slice_stale_generation (#13596)
74ce217e43 is described below
commit 74ce217e436af661a578826f677597075ddafd94
Author: Brian Neradt <br...@gmail.com>
AuthorDate: Tue Sep 1 14:01:37 2026 -0500
Accept either abort shape in slice_stale_generation (#13596)
The test pinned one Proxy Verifier parse state, PARSE_INCOMPLETE, for a
transaction that slice aborts. How far slice got before aborting decides
what the client sees, so under load the client instead reads a complete
response header whose body never arrives, and Proxy Verifier reports a
Content-Length body underrun.
This patch accepts either shape, since both mean the client received no
complete response, which is what the test checks. The sibling cold child
run already asserts only that the transaction failed.
Co-authored-by: Claude Opus 5 <no...@anthropic.com>
---
.../pluginTest/slice/slice_stale_generation.test.py | 11 +++++++----
1 file changed, 7 insertions(+), 4 deletions(-)
diff --git a/tests/gold_tests/pluginTest/slice/slice_stale_generation.test.py b/tests/gold_tests/pluginTest/slice/slice_stale_generation.test.py
index 0538127939..93aee9abf1 100644
--- a/tests/gold_tests/pluginTest/slice/slice_stale_generation.test.py
+++ b/tests/gold_tests/pluginTest/slice/slice_stale_generation.test.py
@@ -293,12 +293,15 @@ class SliceMixedGenerationTest(SliceHierarchyTest):
client = self._replay_phase(tr, 'mixed')
# Let the reference block go stale so that only it is revalidated.
tr.Processes.Default.Command = f'sleep {self._expiry_wait}; ' + tr.Processes.Default.Command
- # Slice aborts the transaction, so the client never reads a response at
- # all: not a short body, no response header. verifier-client exits 1.
+ # Slice aborts the transaction, so the client never reads a complete
+ # response. How far slice got before aborting decides what the client
+ # sees: either a response header it cannot parse, or a complete header
+ # whose body never arrives. Both are the same failure, and which one
+ # shows up is timing, so accept either. verifier-client exits 1 for both.
client.ReturnCode = 1
client.Streams.stdout += Testers.ContainsExpression(
- 'Failed to find a well-formed, completed HTTP response: PARSE_INCOMPLETE',
- 'The client should not receive a parsable response.')
+ 'Failed to find a well-formed, completed HTTP response: PARSE_INCOMPLETE'
+ '|Content-Length body underrun for key mixed', 'The client should not receive a complete response.')
client.Streams.stdout += Testers.ContainsExpression(
'Failed HTTP/1 transaction with key: mixed', 'The transaction should fail.')
self._still_running(tr)