Disable read from client when HttpTunnelConsumer for client is set up#7605
Disable read from client when HttpTunnelConsumer for client is set up#7605masaori335 wants to merge 1 commit intoapache:masterfrom
Conversation
|
Is there a reason we don't handle the EOS appropriately? Do we also disable reads from the client in the HTTP/2 case? If so, then how does that work for bidirectional communication with HTTP/2? |
The HttpSM is in the trafficserver/proxy/http/HttpSM.cc Lines 975 to 993 in 42db8bb
With HTTP/2, this change disables the read of Http2Stream (just resets |
|
We tried this patch (on top of 8.1.2) and observed
The 3. might be a side effect of disabling read. I'll try another approach. |
|
It turns out #7641 is a better approach because of fewer side effects. |
Fix #7603.
The read from the client is enabled to watch the client abort, but this makes ATS signals EOS event to the HttpSM and goes
HttpSM::state_watch_for_client_abort()handler.trafficserver/proxy/http/HttpSM.cc
Lines 899 to 900 in 7af385f
When HttpSM sets up a HttpTunnelConsumer for a client, we can disable read to avoid the issue because there is nothing to read from the client. The EOS is handled by write op and signaled to HttpTunnel correctly.