Closed sdeleuze closed 12 months ago
I'll check that
@sdeleuze @wilkinsona We need to dispose ReactorResourceFactory
on checkpoint and then to recreate it on restore.
I will do some related test for the HTTP client and provide a feedback since ReactorResourceFactory
seems to be used on both client and server.
So I was able to have WebClient
with Reactor Netty working with checkpoint/restore after the following modification visible on this branch:
ReactorResourceFactory
lifecycle aware to invoke destroy()
when stopping the application context and set loopResources
and connectionProvider
fields to null
after invoking `destroy().ReactorClientHttpConnector
lifecycle aware the recreate the HttpClient
when re-starting the application context.Looks like modifications would be needed on both Framework and Boot sides to support Reactor Netty, so let's discuss it in an upcoming meeting.
I think I have been able to fix that purely on Spring Framework side, will push related changes after most test and polish.
With https://github.com/spring-projects/spring-framework/commit/125b8e741805cc678c427abb248859bd084f0989, ReactorResourceFactory
is now lifecycle-aware, but unlike what I initially thought, some refinements are likely going to be needed on Spring Boot side, I have created https://github.com/spring-projects/spring-boot/issues/37209 related issue.
The related smoke test is now green, thanks @wilkinsona!
When @violetagg is back, let see what can be made on Netty side to fix current failure.
Notice on Linux aarch64 running on a Mac M2, it seems to work as expected, so the failure may be architecture specific.