diff --git a/changes-entries/h2-rst-access-500-fix.txt b/changes-entries/h2-rst-access-500-fix.txt new file mode 100644 index 0000000000..d165fa3bc8 --- /dev/null +++ b/changes-entries/h2-rst-access-500-fix.txt @@ -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] diff --git a/modules/http2/h2_c2_filter.c b/modules/http2/h2_c2_filter.c index f537a19f07..37254fc1d7 100644 --- a/modules/http2/h2_c2_filter.c +++ b/modules/http2/h2_c2_filter.c @@ -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);