Closed maskit closed 4 months ago
I took a stab at reproducing this via an autest with the following patch:
The interesting portion of the patch being the following new TestRun:
tr = Test.AddTestRun("Test a POST request with an Expect: 100-continue header")
content_file = os.path.join(Test.RunDirectory, '8k')
with open(content_file, 'wb') as f:
f.write(os.urandom(8192))
tr.Processes.Default.StartBefore(httpbin)
tr.Processes.Default.Command = (
f'curl -kv -d @{content_file} --http2 -H "Expect: 100-Continue" '
f'https://127.0.0.1:{ts.Variables.ssl_port}/httpbin/post')
tr.Processes.Default.ReturnCode = 0
Our local autests use go-httpbin because httpbin is deprecated and no longer supported. Masakazu confirmed that when he switched his remap from map /httpbin/ http://httpbin.org/
to map /httpbin/ http://httpbingo.org/
, the crash no longer reproduced. So it seems the crash relies upon some behavior in httpbin that go-httpbin does not quite replicate.
I'm going to try to reproduce the crash using Proxy Verifier. I think I saw a crash with that in an earlier attempt, but Proxy Verifier could use some Expect: 100-continue
updates.
This issue has been automatically marked as stale because it has not had recent activity. Marking it stale to flag it for further consideration by the community.
This is still a valid issue. The crash is reproducible.
ATS master crashes while handling this request below.
Removing these 2 lines works for the crash, but I'm not sure if we can really remove those. The lines were added by the PR for H2-to-Origin. https://github.com/apache/trafficserver/blob/9909da8b5621ac85f0a474527cf7fd58a03b1ff0/proxy/http/HttpTunnel.cc#L995-L996