Releases: icing/mod_h2
Releases · icing/mod_h2
mod_h2 v2.0.2
- When reaching server limits, such as MaxRequestsPerChild, the HTTP/2 connection
send a GOAWAY frame much too early on new connections, leading to invalid
protocol state and a client failing the request. See PR65731 at
https://bz.apache.org/bugzilla/show_bug.cgi?id=65731.
The module now initializes the HTTP/2 protocol correctly and allows the
client to submit one request before the shutdown via a GOAWAY frame
is being announced.
mod_h2 v1.15.27
- When reaching server limits, such as MaxRequestsPerChild, the HTTP/2 connection
send a GOAWAY frame much too early on new connections, leading to invalid
protocol state and a client failing the request. See PR65731 at
https://bz.apache.org/bugzilla/show_bug.cgi?id=65731.
The module now initializes the HTTP/2 protocol correctly and allows the
client to submit one request before the shutdown via a GOAWAY frame
is being announced.
mod_h2 v2.0.1
- Improved information displayed in 'server-status' for H2 connections when
Extended Status is enabled. Now one can see the last request that IO
operations happened on and transferred IO stats are updated as well. - Fixed a bug that let to an infinite loop in v2.0.0 when the client closed
the connection. - Fixing NULL dereference if server variable SSL_PROTOCOL is unset.
- Setting DefaultRuntimeDir and PidFile in test configuration to override
any platform defaults. - Disabling pollset use when compiling with APR version < 1.6.0
mod_h2 v2.0.0
- HTTP/2 connections now use pollsets to monitor the status of the
ongoing streams and their main connection. - Fixed a bug where, without 'H2SerializeHeaders' some errors, such
as a input timeout, did not produce the correct response. - Added directove 'H2StreamTimeout' to configure a separate value for HTTP/2
streams, overriding server's 'Timeout' configuration. [rpluem] - The HTTP/2 connection state handler, based on an experiment and draft
at the IETF http working group (abandoned for some time), has been removed. - H2SerializeHeaders no longer has an effect. A warning is logged when it is
set to "on". The switch enabled the internal writing of requests to be parsed
by the internal HTTP/1.1 protocol handler and was introduced to avoid
potential incompatibilities during the introduction of HTTP/2. - Removed the abort/redo of tasks when mood swings lower the active
limit. This probably hurts the server more than it helps. Some
setup, like proxied connections, can be slow to respond to the
abort of a connection. - Fixed input handling for requests without body that nevertheless try
to read one (e.g. mod_cgid handling) to deliver at least an EOS bucket
before signalling an EOF. - A regression in v1.15.24 was fixed that could lead to httpd child
processes not being terminated on a graceful reload or when reaching
MaxConnectionsPerChild. When unprocessed h2 requests were queued at
the time, these could stall. See #212. - Fixed an issue since 1.15.24 that "Server" headers in proxied requests
were overwritten instead of preserved. [PR by @daum3ns]
mod_h2 v2.0.0-rc4
- fixing an uninitialized status code when pollsets are not used for streams.
mod_h2 v2.0.0-rc3
- Added an alternate implementation when polling of file descriptors is
not supported by the OS. This is automatically detected via the APR
header files, but can be enforces by adding '--disable-poll-streams'
to the './configure' when building the module.
This should allow the module to work on Windows again.
mod_h2 v2.0.0-rc2
- Switching from a thread-safe apr pollset (not supported under Windows) to
a wakeable pollset implementation. - Adding a clear error in the logs if the pollset could not be created.
mod_h2 v2.0.0-rc1
This is a rewrite of the HTTP/2 main connection handling to use APR
pollsets for dispatching requests and collecting responses. This
allows mod_h2 to be more responsive at less cpu cost and simplifies
connection state handling.
However, as a new implementation, this brings the risk of new bugs
and incompatibilities. It survives test suite and load tests. If you can
give it a run on your machine, feedback is appreciated!
- HTTP/2 connections now use pollsets to monitor the status of the
ongoing streams and their main connection. - Fixed a bug where, without 'H2SerializeHeaders' some errors, such
as a input timeout, did not produce the correct response. - Added directive 'H2StreamTimeout' to configure a separate value for HTTP/2
streams, overriding server's 'Timeout' configuration. [rpluem] - Removed work-arounds for older versions of libnghttp2 and checking
during configure that at least version 1.15.0 is present. Which, due
to its age, should not make a difference to anyone. - The HTTP/2 connection state handler, based on an experiment and draft
at the IETF http working group (abandoned for some time), has been removed. - H2SerializeHeaders no longer has an effect. A warning is logged when it is
set to "on". The switch enabled the internal writing of requests to be parsed
by the internal HTTP/1.1 protocol handler and was introduced to avoid
potential incompatibilities during the introduction of HTTP/2. - Removed the abort/redo of tasks when mood swings lower the active
limit. This probably did hurt the server more than it helped. Some
setup, like proxied connections, can be slow to respond to the
abort of a connection.
mod_h2 v1.15.24
- With Apache httpd 2.4.49 or newer, h2 idle workers are terminated on a graceful
restar/shutdown immediately. This happens independant of any h2 connections being
processed or not. - Switch to using OpenSSL EVP_* API to avoid deprecation warnings with
OpenSSL 3.0. [@notroj]
mod_h2 v1.15.23
- H2MinWorker is reduced automatically to 1 during graceful shutdown
of a child process (e.g. server reload). This lets all ongoing requests
continue, but shuts down unused threads early.
The H2MaxWorkerIdleSeconds is also reduced to 1, so that any workers
for ongoing tasks will close down fast.