Skip to content

Review HttpReceiverOverHTTP network buffer management #12934

@sbordet

Description

@sbordet

Jetty version(s)
12.1.x

Enhancement Description
HttpReceiverOverHTTP should manage the network buffer in a more robust and simple way.

HTTP/1.1 parsing needs to be reluctant (as opposed to HTTP/2 greedy) because of backpressure in case of content and because there can be multiple 1xx responses in the same buffer.

This means that the network buffer must remain around.

However, if the application is not reading, an asynchronous failure must be able to release the network buffer (e.g. from HttpConnectionOverHTTP.close()).

This means that the network buffer could be accessed concurrently from the fill+parse loop and the asynchronous failure.

Explore a solution based on a state machine.

Metadata

Metadata

Assignees

Type

No type

Projects

Status

No status

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions