krpc version: 0.10.1
I found that kotlinx.rpc.krpc.server.internal.KrpcServerService creates a unique logger for each instance:
private val logger = RpcInternalCommonLogger.logger(rpcInternalObjectId(descriptor.fqName))
Since KrpcServerService is created on each service registration (basically, on each new connection) over time this leads to a huge number of loggers created and kept in memory by logging framework implementations (e.g. Logback).
A simple example reproducing the issue: https://github.com/akowal/krpc-log-memleak
Here's a couple of heap charts:
And some picks from the heapdump after JVM OOM (can be found in the example repo):
