yandex-cloud / ydb-java-sdk

Yandex Database Java SDK
Other
32 stars 9 forks source link

Утечка ресурсов при закрытии транспорта #2

Closed mad closed 4 years ago

mad commented 4 years ago

Создание

transport = GrpcTransport.forEndpoint(this.hostnames[0], configuration.get(DATABASE) + "/")
                                      .withCallExecutor(executor)
                                      .withAuthProvider(new TokenAuthProvider(ydbToken))
                                      .withSecureConnection(bytes)
                                      .build();

После вызова transport.closeиногда возникают исключения

дек. 17, 2019 12:09:05 ДП io.grpc.internal.ManagedChannelOrphanWrapper$ManagedChannelReference cleanQueue
SEVERE: *~*~*~ Channel ManagedChannelImpl{logId=52, target=directaddress:///YDB_URL} was not shutdown properly!!! ~*~*~*
    Make sure to call shutdown()/shutdownNow() and wait until awaitTermination() returns true.
java.lang.RuntimeException: ManagedChannel allocation site
    at io.grpc.internal.ManagedChannelOrphanWrapper$ManagedChannelReference.<init>(ManagedChannelOrphanWrapper.java:94)
    at io.grpc.internal.ManagedChannelOrphanWrapper.<init>(ManagedChannelOrphanWrapper.java:52)
    at io.grpc.internal.ManagedChannelOrphanWrapper.<init>(ManagedChannelOrphanWrapper.java:43)
    at io.grpc.internal.AbstractManagedChannelImplBuilder.build(AbstractManagedChannelImplBuilder.java:527)
    at com.yandex.ydb.core.grpc.GrpcTransport.createChannel(GrpcTransport.java:252)
    at com.yandex.ydb.core.grpc.GrpcTransport.<init>(GrpcTransport.java:69)
    at com.yandex.ydb.core.grpc.GrpcTransport.<init>(GrpcTransport.java:56)
    at com.yandex.ydb.core.grpc.GrpcTransport$Builder.build(GrpcTransport.java:346)
    at com.yandex.ydb.core.grpc.YdbNameResolver.<init>(YdbNameResolver.java:52)
    at com.yandex.ydb.core.grpc.YdbNameResolver.<init>(YdbNameResolver.java:33)
    at com.yandex.ydb.core.grpc.YdbNameResolver$1.newNameResolver(YdbNameResolver.java:178)
    at io.grpc.internal.ManagedChannelImpl.getNameResolver(ManagedChannelImpl.java:676)
    at io.grpc.internal.ManagedChannelImpl.<init>(ManagedChannelImpl.java:575)
    at io.grpc.internal.AbstractManagedChannelImplBuilder.build(AbstractManagedChannelImplBuilder.java:527)
    at com.yandex.ydb.core.grpc.GrpcTransport.createChannel(GrpcTransport.java:252)
    at com.yandex.ydb.core.grpc.GrpcTransport.<init>(GrpcTransport.java:69)
    at com.yandex.ydb.core.grpc.GrpcTransport.<init>(GrpcTransport.java:56)
    at com.yandex.ydb.core.grpc.GrpcTransport$Builder.build(GrpcTransport.java:346)
2019-12-17 00:10:57.899 [main] ERROR util.ResourceLeakDetector: LEAK: HashedWheelTimer.release() was not called before it's garbage-collected. See http://netty.io/wiki/reference-counted-objects.html for more information.
Recent access records: 
Created at:
    io.netty.util.HashedWheelTimer.<init>(HashedWheelTimer.java:284)
    io.netty.util.HashedWheelTimer.<init>(HashedWheelTimer.java:217)
    io.netty.util.HashedWheelTimer.<init>(HashedWheelTimer.java:196)
    io.netty.util.HashedWheelTimer.<init>(HashedWheelTimer.java:178)
    com.yandex.ydb.core.grpc.GrpcOperationTray.<init>(GrpcOperationTray.java:37)
    com.yandex.ydb.core.grpc.GrpcTransport.<init>(GrpcTransport.java:73)
    com.yandex.ydb.core.grpc.GrpcTransport.<init>(GrpcTransport.java:56)
    com.yandex.ydb.core.grpc.GrpcTransport$Builder.build(GrpcTransport.java:346)
    com.yandex.ydb.core.grpc.YdbNameResolver.<init>(YdbNameResolver.java:52)
    com.yandex.ydb.core.grpc.YdbNameResolver.<init>(YdbNameResolver.java:33)
    com.yandex.ydb.core.grpc.YdbNameResolver$1.newNameResolver(YdbNameResolver.java:178)
    io.grpc.internal.ManagedChannelImpl.getNameResolver(ManagedChannelImpl.java:676)
    io.grpc.internal.ManagedChannelImpl.<init>(ManagedChannelImpl.java:575)
    io.grpc.internal.AbstractManagedChannelImplBuilder.build(AbstractManagedChannelImplBuilder.java:527)
    com.yandex.ydb.core.grpc.GrpcTransport.createChannel(GrpcTransport.java:252)
    com.yandex.ydb.core.grpc.GrpcTransport.<init>(GrpcTransport.java:69)
    com.yandex.ydb.core.grpc.GrpcTransport.<init>(GrpcTransport.java:56)
    com.yandex.ydb.core.grpc.GrpcTransport$Builder.build(GrpcTransport.java:346)
oleshiy commented 4 years ago

@mad Пофиксили.

mad commented 4 years ago

@oleshiy Спасибо! А где брать SNAPSHOT версию?

oleshiy commented 4 years ago

@mad Выложили 1.6.0