The client continues to block despite the receiving server having closed the connection already.
Reproduced on Spring Boot version 3.4.4
Works with 3.3.10, likely because that doesn't use io.projectreactor.netty:reactor-netty-http
.
Sample application reproducing the bug: https://github.com/mspiess/http-client-bug-reproduction
Find the necessary steps in that repository's README.md
.
Excuse the convoluted setup, but I have been unable to reproduce it outside of docker.
The deprecated exchangeTimeout
on ReactorClientHttpRequestFactory
can be used to force a timeout, but the connection is still leaked.
The other timeout options seem to have no effect.
Comment From: mspiess
Possibly related to https://github.com/spring-projects/spring-framework/issues/34178
Comment From: mspiess
The issue remains on Spring Boot version 3.5.0.
Setting spring.http.reactiveclient.connector=jdk
does not fix it.