TS-4044: The server_vc should be established (writeable) before request transform start.#2184
Conversation
…st transform start. The request transform would be applied to POST and/or PUT request. The server_vc should be established (writeable) before request transform start. The CheckConnect is created by connect_s, It will callback NET_EVENT_OPEN to HttpSM if server_vc is WRITE_READY, Otherwise NET_EVENT_OPEN_FAILED is callbacked.
|
This PR revert some code changed by commit 35d492a. |
|
@zwoop This is a 7.1.0 candidate. |
|
What is the issue if the transform begins before the origin is writeable? Does it cause the buffer to fill up, or is content discarded on a retry? Is the computation expense of the transform too much when requests fail frequently? |
|
The request transform starts after If the connection is not ready and the server request header sent out:
If ATS receives these above events, it will trigger the retry mechanism and With the With the When ATS receives |
|
According to the email send from @keesspoelstra , if the the server connection retry mechanism enabled on POST and/or PUT request, ATS may crash on assert. The retry will obviously decrease by this PR for POST and/or PUT request. |
|
Overall it seems reasonable. The question I have is, why use |
shinrich
left a comment
There was a problem hiding this comment.
Looks reasonable to me. The previous commit I made because it appeared that post/put would never make it to the else case. But if you explicitly push them to the else, then the extra timeout logic makes sense.
|
Should we land this? |
|
Looks good. 👍 |
|
Because different from |
|
Cherry-picked to 7.1.x |
The request transform would be applied to POST and/or PUT request.
The server_vc should be established (writeable) before request transform start.
The CheckConnect is created by connect_s,
It will callback NET_EVENT_OPEN to HttpSM if server_vc is WRITE_READY,
Otherwise NET_EVENT_OPEN_FAILED is callbacked.