Skip to content

Fix server entry cleanup after request tunnel setup#13295

Open
bneradt wants to merge 1 commit into
apache:masterfrom
bneradt:fix-post-tunnel-server-entry-crash
Open

Fix server entry cleanup after request tunnel setup#13295
bneradt wants to merge 1 commit into
apache:masterfrom
bneradt:fix-post-tunnel-server-entry-crash

Conversation

@bneradt

@bneradt bneradt commented Jun 17, 2026

Copy link
Copy Markdown
Contributor

A crash was observed while an HTTP/2 stream finished sending an
origin request header and started the client request body tunnel:

#0 HttpSM::state_send_server_request_header(...)
   at src/proxy/http/HttpSM.cc:2176
#1 HttpSM::main_handler(...)
   at src/proxy/http/HttpSM.cc:2731
#5 Http2Stream::signal_write_event(...)
   at src/proxy/http2/Http2Stream.cc:954

The core had server_entry == nullptr at the vc_type check after the
request-body tunnel setup. The tunnel can synchronously abort the chain
and clean up the server VC before returning.

This checks whether the server entry still exists after setting up the
request body tunnel or transform tunnel. When setup already cleaned it
up, the state handler stops before installing a response-read handler
on a null entry.

A crash was observed while an HTTP/2 stream finished sending an
origin request header and started the client request body tunnel:

    #0 HttpSM::state_send_server_request_header(...)
       at src/proxy/http/HttpSM.cc:2176
    #1 HttpSM::main_handler(...)
       at src/proxy/http/HttpSM.cc:2731
    #5 Http2Stream::signal_write_event(...)
       at src/proxy/http2/Http2Stream.cc:954

The core had server_entry == nullptr at the vc_type check after the
request-body tunnel setup. The tunnel can synchronously abort the chain
and clean up the server VC before returning.

This checks whether the server entry still exists after setting up the
request body tunnel or transform tunnel. When setup already cleaned it
up, the state handler stops before installing a response-read handler
on a null entry.
Copilot AI review requested due to automatic review settings June 17, 2026 23:30
@bneradt bneradt added this to the 11.0.0 milestone Jun 17, 2026
@bneradt bneradt self-assigned this Jun 17, 2026

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 1 out of 1 changed files in this pull request and generated no new comments.

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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants