-
Notifications
You must be signed in to change notification settings - Fork 845
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Memory & connection leak in reactor-netty instrumentation #4862
Labels
bug
Something isn't working
Comments
Hi, this is quite a critical issue in current release. I wonder when will we be able to release the fix? |
1.10.0 is targeted for end of next week. This issue does meet our patch release policy if you need it sooner. |
Hi @trask, thanks a lot! We indeed need it urgently. We really appreciate if we could have a patch for it. |
@sh777 1.9.2 is released with this fix |
3 tasks
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Describe the bug
When using
WebClient
in Spring WebFlux, aSimpleDequePool
is created on every HTTP request and never gets disposed.Steps to reproduce
spring-boot-starter-webflux
as a dependencyorg.springframework.web.reactive.function.client.WebClient
What did you expect to see?
What did you see instead?
SimpleDequePool
live in heap and lots of TCP connections are established. None of these will get disposed after GC.What version are you using?
1.9.1
Environment
Compiler: openjdk 1.8.0_312
OS: macOS 12.0.1
Additional context
PooledConnectionProvider
usePooledConnectionProvider.PoolKey
as key for its internal channelPools (ConcurrentHashMap).PooledConnectionProvider.PoolKey
is computed withpipelineKey
and other fields.pipelineKey
is assigned withTransportConfig.channelHash()
channelHash()
is computed withobserver
and other fields.observer
is a different instance ofHttpResponseReceiverInstrumenter.EndOperation
on each HTTP request and it may causePooledConnectionProvider
to create a new pool every timeThe text was updated successfully, but these errors were encountered: