Github user maskit commented on a diff in the pull request: https://github.com/apache/trafficserver/pull/460#discussion_r53549624 --- Diff: proxy/http2/Http2ConnectionState.cc --- @@ -992,43 +998,50 @@ Http2ConnectionState::send_headers_frame(FetchSM *fetch_sm) DebugHttp2Stream(ua_session, stream->get_id(), "Send HEADERS frame"); - // Write pseudo headers - payload_length += http2_write_psuedo_headers(resp_header, payload_buffer, buf_len, *(this->remote_indexing_table)); - - // If response body is empty, set END_STREAM flag to HEADERS frame - // Must check to ensure content-length is there. Otherwise the value defaults - // to 0 - if (resp_header->presence(MIME_PRESENCE_CONTENT_LENGTH) && resp_header->get_content_length() == 0) { - flags |= HTTP2_FLAGS_HEADERS_END_STREAM; --- End diff -- It's not intended but it seems OK, actually. I've looked into it and I found that current implementation (on master) sends END_STREAM flag twice. The first one is on a HEADERS frame and the second one is on an empty DATA frame. I'll create a jira ticket for it. But this logic should be here for efficient framing. I'm going to restore the logic.
--- If your project is set up for it, you can reply to this email and have your reply appear on GitHub as well. If your project does not have this feature enabled and wishes so, or if the feature is enabled but not working, please contact infrastructure at infrastruct...@apache.org or file a JIRA ticket with INFRA. ---