The goal of this project is to develop the official European solution for the interoperability between national backend servers of decentralised contact tracing applications to combat COVID-19.
We experienced that the CallbackTaskExecuter can cause some log messages that some ByteBuffers are not read before they are collected by GC.
This bug is a infrequent bug.
LEAK: ByteBuf.release() was not called before it's garbage-collected. See https://netty.io/wiki/reference-counted-objects.html for more information., Recent access records: , Created at:,
io.netty.buffer.PooledByteBufAllocator.newDirectBuffer(PooledByteBufAllocator.java:385),
io.netty.buffer.AbstractByteBufAllocator.directBuffer(AbstractByteBufAllocator.java:187),
io.netty.buffer.AbstractByteBufAllocator.directBuffer(AbstractByteBufAllocator.java:178),
io.netty.buffer.AbstractByteBufAllocator.buffer(AbstractByteBufAllocator.java:115),
io.netty.handler.ssl.SslHandler.allocate(SslHandler.java:2198), io.netty.handler.ssl.SslHandler.unwrap(SslHandler.java:1375),
io.netty.handler.ssl.SslHandler.decodeJdkCompatible(SslHandler.java:1275),
io.netty.handler.ssl.SslHandler.decode(SslHandler.java:1322),
io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:501),
io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:440),
io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:276),
...
Expected behaviour
CallbackRequests should be sent without any error messages.
Steps to reproduce the issue
Subscribe for Callback
Upload Keys
Wait for Batching
Wait for Callback processing
Possible Fix
A possible fix could be to replace the .exchange() call with .retrieve() at WebClient. Because the exchange-call will nopt read the data buffer and this could cause that the data buffers getting overloaded.
Additional context
As long as this bug cannot be reliably reproduced we cannot verify that it is finally fixed.
Describe the bug
We experienced that the CallbackTaskExecuter can cause some log messages that some ByteBuffers are not read before they are collected by GC. This bug is a infrequent bug.
Expected behaviour
CallbackRequests should be sent without any error messages.
Steps to reproduce the issue
Possible Fix
A possible fix could be to replace the
.exchange()
call with.retrieve()
at WebClient. Because the exchange-call will nopt read the data buffer and this could cause that the data buffers getting overloaded.Additional context
As long as this bug cannot be reliably reproduced we cannot verify that it is finally fixed.