Skip to content

Fix multipart decoder cleanup on abnormal termination#6088

Open
shblue21 wants to merge 4 commits into
eclipse-vertx:masterfrom
shblue21:fix/issue-6014-multipart-decoder-cleanup
Open

Fix multipart decoder cleanup on abnormal termination#6088
shblue21 wants to merge 4 commits into
eclipse-vertx:masterfrom
shblue21:fix/issue-6014-multipart-decoder-cleanup

Conversation

@shblue21
Copy link
Copy Markdown
Contributor

@shblue21 shblue21 commented Apr 28, 2026

Motivation:

Multipart decoding should release the Netty multipart decoder when a request terminates abnormally. The normal completion path already cleans it up, but abort/reset/close paths could leave decoder state attached longer than intended.

This updates the abnormal termination paths to clean up the multipart decoder for HTTP/1 and the shared HTTP/2/HTTP/3 request implementation. It also adds regression coverage for incomplete multipart uploads aborted by the client.

Fixes #6014

Conformance:

Confirmed.

Comment thread vertx-core/src/main/java/io/vertx/core/http/impl/http1/Http1ServerRequest.java Outdated
@vietj
Copy link
Copy Markdown
Member

vietj commented Apr 28, 2026

I think overall for HTTP/1.x we should try to have a single method guaranteed to be called to centralize the cleanup logic of the request before doing this

@shblue21
Copy link
Copy Markdown
Contributor Author

shblue21 commented Apr 30, 2026

I kept this focused on the multipart decoder cleanup paths. A broader HTTP/1.x request cleanup refactor can be handled separately.

@shblue21 shblue21 force-pushed the fix/issue-6014-multipart-decoder-cleanup branch 2 times, most recently from d9c3366 to b5acfe5 Compare May 4, 2026 16:17
@shblue21 shblue21 force-pushed the fix/issue-6014-multipart-decoder-cleanup branch from b5acfe5 to 11dde21 Compare May 7, 2026 06:46
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.

Multipart decoder retention on abort/reset/exception paths

2 participants