Skip to content

Connection prematurely closed DURING response  #2944

@Aliaksie

Description

@Aliaksie

Possible similar to link or link

-> client send large multipart RQ
-> server receive
-> check size and throw 413
-> we catch it in our error handler and return 413 with json RS
-> server send completed
-> server on TERMINATED check if it consume full RQ
-> send new IOException("unconsumed input") and close connection

-> if the client has not yet completed processing, then it will receive an error and crash, otherwise it can complete the request smoothly (for example turn on DEBUG logs for jetty server).

Expected Behavior

the client will complete without error. I got 413 with json body.

Actual Behavior

the client does not complete consistently. I often get an error:

reactor.netty.http.client.PrematureCloseException: Connection prematurely closed DURING response
reactor.core.Exceptions$ReactiveException: reactor.netty.http.client.PrematureCloseException: Connection prematurely closed DURING response

Steps to Reproduce

check the demo-repo

Possible Solution

add .header( "Connection", "close" ) for file upload than here _generator.isPersistent() will always false

Your Environment

  • org.springframework.boot -> 3.1.5
  • jetty.version -> 11.0.16
  • reactor-netty -> 1.1.11
  • spring-boot-starter-jetty -> 3.1.4

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions