Skip to content

mod_http3: Do not wait for stream data to be acknowledged on stop - #941

Open
mbeijen wants to merge 1 commit into
apache:trunkfrom
mbeijen:h3-stop-no-stream-flush
Open

mbeijen wants to merge 1 commit into
apache:trunkfrom
mbeijen:h3-stop-no-stream-flush

Conversation

@mbeijen

@mbeijen mbeijen commented Nov 4, 2026

Copy link
Copy Markdown
Contributor

When a child stops, connections still open after the GOAWAY grace period are shut down with SSL_SHUTDOWN_FLAG_RAPID, but OpenSSL still waits for all stream data to be acknowledged first. A client that has already gone away never acknowledges the GOAWAY, so the child lingered until the idle timeout and was killed with SIGKILL (AH00046).

This adds SSL_SHUTDOWN_FLAG_NO_STREAM_FLUSH to the rapid shutdown.

  • This PR does not report or address a security vulnerability (see SECURITY.md and https://www.apache.org/security/#reporting-a-vulnerability).
  • Code follows the httpd style guide.
  • New log messages (level debug or higher) use an empty APLOGNO() tag; numbers are assigned by a committer at merge time (see docs/log-message-tags/README).
  • If the change is user-visible, a changes-entries/*.txt file is included, following the template in README.CHANGES (not needed otherwise).
  • Test cases based on pyhttpd are included where appropriate, in the test/modules/xxx directory matching the modules/xxx module source, or test/modules/core for core server changes. On Unix, verify these pass locally with e.g. make check-pytest PYTEST_DIRS=test/modules/xxx.

When a child stops, connections still open after the GOAWAY grace
period are shut down with SSL_SHUTDOWN_FLAG_RAPID. That flag skips the
terminating period, but OpenSSL still waits for all stream data to be
acknowledged first. The GOAWAY just sent to a client that has already
gone away never is, so the event thread waited for the idle timeout and
the parent killed the child with SIGKILL (AH00046).

Add SSL_SHUTDOWN_FLAG_NO_STREAM_FLUSH to the rapid shutdown.

Generated-by: Claude Code (Claude Opus 5.5)
@mbeijen mbeijen mentioned this pull request Nov 4, 2026
5 tasks done
@jfclere

jfclere commented Nov 6, 2026

Copy link
Copy Markdown
Contributor

I have reproduced the problem but the fix doesn't help. I am investigating.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants