]> git.ipfire.org Git - thirdparty/apache/httpd.git/commitdiff
*) mod_http2: client resets of HTTP/2 streams led to unwanted 500 errors
authorStefan Eissing <icing@apache.org>
Wed, 18 Jan 2023 20:02:25 +0000 (20:02 +0000)
committerStefan Eissing <icing@apache.org>
Wed, 18 Jan 2023 20:02:25 +0000 (20:02 +0000)
     reported in access logs and error documents. The processing of the
     reset was correct, only unneccesary reporting was caused.

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1906775 13f79535-47bb-0310-9956-ffa450edef68

changes-entries/h2-rst-access-500-fix.txt [new file with mode: 0644]
modules/http2/h2_c2_filter.c

diff --git a/changes-entries/h2-rst-access-500-fix.txt b/changes-entries/h2-rst-access-500-fix.txt
new file mode 100644 (file)
index 0000000..d165fa3
--- /dev/null
@@ -0,0 +1,4 @@
+  *) mod_http2: client resets of HTTP/2 streams led to unwanted 500 errors
+     reported in access logs and error documents. The processing of the
+     reset was correct, only unneccesary reporting was caused.
+     [Stefan Eissing]
index f537a19f0717363f4facfc3f37597492654818bd..37254fc1d7b3499adeaf55cfaf589388c35972b4 100644 (file)
@@ -615,7 +615,7 @@ apr_status_t h2_c2_filter_catch_h1_out(ap_filter_t* f, apr_bucket_brigade* bb)
     ap_assert(conn_ctx);
     H2_FILTER_LOG("c2_catch_h1_out", f->c, APLOG_TRACE2, 0, "check", bb);
 
-    if (!conn_ctx->has_final_response) {
+    if (!f->c->aborted && !conn_ctx->has_final_response) {
         if (!parser) {
             parser = apr_pcalloc(f->c->pool, sizeof(*parser));
             parser->id = apr_psprintf(f->c->pool, "%s-%d", conn_ctx->id, conn_ctx->stream_id);