Azure / azure-sdk-for-java

This repository is for active development of the Azure SDK for Java. For consumers of the SDK we recommend visiting our public developer docs at https://docs.microsoft.com/java/azure/ or our versioned developer docs at https://azure.github.io/azure-sdk-for-java.
MIT License
2.32k stars 1.97k forks source link

[BUG] Resource Leak HashedWheelTimer from Rntbd stack #13254

Closed moderakh closed 2 years ago

moderakh commented 4 years ago

Describe the bug resource leak reported on the CI

Exception or Stack Trace

2020-07-16T20:06:24.5933584Z 2020-07-16 20:06:24,570       [TestNG-method=before_UniqueIndexTest-1] ERROR io.netty.util.ResourceLeakDetector - LEAK: HashedWheelTimer.release() was not called before it's garbage-collected. See https://netty.io/wiki/reference-counted-objects.html for more information.
2020-07-16T20:06:24.5940294Z Recent access records: 
2020-07-16T20:06:24.5941243Z Created at:
2020-07-16T20:06:24.5942096Z    io.netty.util.HashedWheelTimer.<init>(HashedWheelTimer.java:275)
2020-07-16T20:06:24.5943064Z    io.netty.util.HashedWheelTimer.<init>(HashedWheelTimer.java:218)
2020-07-16T20:06:24.5944013Z    io.netty.util.HashedWheelTimer.<init>(HashedWheelTimer.java:197)
2020-07-16T20:06:24.5944951Z    io.netty.util.HashedWheelTimer.<init>(HashedWheelTimer.java:179)
2020-07-16T20:06:24.5946071Z    com.azure.cosmos.implementation.directconnectivity.rntbd.RntbdRequestTimer.<init>(RntbdRequestTimer.java:31)
2020-07-16T20:06:24.5947347Z    com.azure.cosmos.implementation.directconnectivity.rntbd.RntbdServiceEndpoint$Provider.<init>(RntbdServiceEndpoint.java:340)
2020-07-16T20:06:24.5948576Z    com.azure.cosmos.implementation.directconnectivity.RntbdTransportClient.<init>(RntbdTransportClient.java:77)
2020-07-16T20:06:24.5949725Z    com.azure.cosmos.implementation.directconnectivity.RntbdTransportClient.<init>(RntbdTransportClient.java:83)
2020-07-16T20:06:24.5950988Z    com.azure.cosmos.implementation.directconnectivity.StoreClientFactory.<init>(StoreClientFactory.java:43)
2020-07-16T20:06:24.5952207Z    com.azure.cosmos.implementation.RxDocumentClientImpl.initializeDirectConnectivity(RxDocumentClientImpl.java:306)
2020-07-16T20:06:24.5953314Z    com.azure.cosmos.implementation.RxDocumentClientImpl.init(RxDocumentClientImpl.java:300)
2020-07-16T20:06:24.5954388Z    com.azure.cosmos.implementation.AsyncDocumentClient$Builder.build(AsyncDocumentClient.java:216)
2020-07-16T20:06:24.5955424Z    com.azure.cosmos.CosmosAsyncClient.<init>(CosmosAsyncClient.java:83)
2020-07-16T20:06:24.5956494Z    com.azure.cosmos.CosmosClientBuilder.buildAsyncClient(CosmosClientBuilder.java:660)
2020-07-16T20:06:24.5957547Z    com.azure.cosmos.ClientUnderTestBuilder.buildAsyncClient(ClientUnderTestBuilder.java:32)
2020-07-16T20:06:24.5958603Z    com.azure.cosmos.rx.BackPressureTest.before_BackPressureTest(BackPressureTest.java:248)
2020-07-16T20:06:24.5959628Z    java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
2020-07-16T20:06:24.5960661Z    java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
2020-07-16T20:06:24.5961773Z    java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
2020-07-16T20:06:24.5962922Z    java.base/java.lang.reflect.Method.invoke(Method.java:566)
2020-07-16T20:06:24.5963919Z    org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:124)
2020-07-16T20:06:24.5964942Z    org.testng.internal.InvokeMethodRunnable.runOne(InvokeMethodRunnable.java:54)
2020-07-16T20:06:24.5965933Z    org.testng.internal.InvokeMethodRunnable.run(InvokeMethodRunnable.java:44)
2020-07-16T20:06:24.5967055Z    java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
2020-07-16T20:06:24.5968013Z    java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
2020-07-16T20:06:24.5969300Z    java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
2020-07-16T20:06:24.5970535Z    java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
2020-07-16T20:06:24.5971625Z    java.base/java.lang.Thread.run(Thread.java:834)

This happens on the CI: log failure: https://dev.azure.com/azure-sdk/590cfd2a-581c-4dcb-a12e-6568ce786175/_apis/build/builds/460310/logs/445

Build CI https://dev.azure.com/azure-sdk/internal/_build/results?buildId=460310&view=logs&jobId=54956a02-ca4c-52bb-f3cc-e6a49c989db9&j=54956a02-ca4c-52bb-f3cc-e6a49c989db9&t=c0a07396-cbbc-5783-ed1f-6044074dfec7

kushagraThapar commented 3 years ago

@xinlian12 - do we still need to fix this issue ?

xinlian12 commented 2 years ago

Issue does not occurred anymore