Copilot commented on code in PR #13780:
URL: https://github.com/apache/trafficserver/pull/13780#discussion_r4160483629


##########
src/proxy/http2/Http2ConnectionState.cc:
##########
@@ -184,9 +184,7 @@ Http2ConnectionState::rcv_data_frame(const Http2Frame 
&frame)
         return Http2Error(Http2ErrorClass::HTTP2_ERROR_CLASS_NONE);
       }
 
-      if (stream->is_read_enabled()) {
-        stream->signal_read_event(VC_EVENT_READ_COMPLETE);
-      }
+      stream->signal_read_complete();

Review Comment:
   A deferred pure END_STREAM is still lost here. Unlike the data-bearing path, 
this branch does not call `set_read_done()`, so an unknown-length tunnel 
retains `read_vio.nbytes == INT64_MAX`; on re-enable, 
`update_read_request(false)` therefore schedules `VC_EVENT_READ_READY` rather 
than `VC_EVENT_READ_COMPLETE`. Mark the read done before deferring/signaling so 
an empty terminal DATA frame cannot leave the transaction stalled.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to