Author: icing
Date: Tue May 26 07:42:30 2026
New Revision: 1934628
Log:
*) mod_http2: update to version 2.0.40
Fix error handling on upload requests when server runs out of file
handles that left beam bucket callbacks in place, potentially using
no longer valid references. Only applies on platforms with pipes
and file descriptor limits not healthy for a network server.
Added:
httpd/httpd/trunk/changes-entries/h2_v2.0.40.txt
Modified:
httpd/httpd/trunk/modules/http2/h2_mplx.c
httpd/httpd/trunk/modules/http2/h2_version.h
Added: httpd/httpd/trunk/changes-entries/h2_v2.0.40.txt
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ httpd/httpd/trunk/changes-entries/h2_v2.0.40.txt Tue May 26 07:42:30 2026 (r1934628)
@@ -0,0 +1,6 @@
+ *) mod_http2: update to version 2.0.40
+ Fix error handling on upload requests when server runs out of file
+ handles that left beam bucket callbacks in place, potentially using
+ no longer valid references. Only applies on platforms with pipes
+ and file descriptor limits not healthy for a network server.
+ [Stefan Eissing]
Modified: httpd/httpd/trunk/modules/http2/h2_mplx.c
==============================================================================
--- httpd/httpd/trunk/modules/http2/h2_mplx.c Tue May 26 04:20:06 2026 (r1934627)
+++ httpd/httpd/trunk/modules/http2/h2_mplx.c Tue May 26 07:42:30 2026 (r1934628)
@@ -880,9 +880,6 @@ static apr_status_t c2_setup_io(h2_mplx
memset(&conn_ctx->pipe_in, 0, sizeof(conn_ctx->pipe_in));
if (stream->input) {
conn_ctx->beam_in = stream->input;
- h2_beam_on_send(stream->input, c2_beam_input_write_notify, c2);
- h2_beam_on_received(stream->input, c2_beam_input_read_notify, c2);
- h2_beam_on_consumed(stream->input, c1_input_consumed, stream);
#if H2_USE_PIPES
action = "create input write pipe";
rv = apr_file_pipe_create_pools(&conn_ctx->pipe_in[H2_PIPE_OUT],
@@ -891,6 +888,9 @@ static apr_status_t c2_setup_io(h2_mplx
c2->pool, c2->pool);
if (APR_SUCCESS != rv) goto cleanup;
#endif
+ h2_beam_on_send(stream->input, c2_beam_input_write_notify, c2);
+ h2_beam_on_received(stream->input, c2_beam_input_read_notify, c2);
+ h2_beam_on_consumed(stream->input, c1_input_consumed, stream);
h2_beam_on_eagain(stream->input, c2_beam_input_read_eagain, c2);
if (!h2_beam_empty(stream->input))
c2_beam_input_write_notify(c2, stream->input);
Modified: httpd/httpd/trunk/modules/http2/h2_version.h
==============================================================================
--- httpd/httpd/trunk/modules/http2/h2_version.h Tue May 26 04:20:06 2026 (r1934627)
+++ httpd/httpd/trunk/modules/http2/h2_version.h Tue May 26 07:42:30 2026 (r1934628)
@@ -27,7 +27,7 @@
* @macro
* Version number of the http2 module as c string
*/
-#define MOD_HTTP2_VERSION "2.0.39"
+#define MOD_HTTP2_VERSION "2.0.40"
/**
* @macro
@@ -35,7 +35,7 @@
* release. This is a 24 bit number with 8 bits for major number, 8 bits
* for minor and 8 bits for patch. Version 1.2.3 becomes 0x010203.
*/
-#define MOD_HTTP2_VERSION_NUM 0x020027
+#define MOD_HTTP2_VERSION_NUM 0x020028
#endif /* mod_h2_h2_version_h */
lmpx.com only provides a reader for public news (NNTP) servers. It is not
affiliated with the servers or forums shown here and is not responsible for
the content of articles, which is written by their respective authors.