Не удалось освободить сообщение: PooledUnsafeDirectByteBuf (освобождено) - PullRequest
0 голосов
/ 24 апреля 2020

Мое приложение выдает эту ошибку:

2020-04-24 14:19:11 - Failed to release a message: PooledUnsafeDirectByteBuf(freed)
io.netty.util.IllegalReferenceCountException: refCnt: 0, decrement: 1
    at io.netty.buffer.AbstractReferenceCountedByteBuf.release0(AbstractReferenceCountedByteBuf.java:124)
    at io.netty.buffer.AbstractReferenceCountedByteBuf.release(AbstractReferenceCountedByteBuf.java:107)
    at io.netty.util.ReferenceCountUtil.release(ReferenceCountUtil.java:88)
    at io.netty.util.ReferenceCountUtil.safeRelease(ReferenceCountUtil.java:113)
    at io.netty.channel.ChannelOutboundBuffer.remove0(ChannelOutboundBuffer.java:292)
    at io.netty.channel.ChannelOutboundBuffer.failFlushed(ChannelOutboundBuffer.java:639)

Для этого кода:

@Override
public Mono<Void> handle(WebSocketSession session) {
    BinaryWebsocketMessageSubscriber subscriber = new BinaryWebsocketMessageSubscriber(binaryEventPublisher);
    return session.receive()
            .map(WebSocketMessage::retain)
            .map(this::toBinaryEvent)
            .doOnNext(subscriber::onNext)
            .doOnError(subscriber::onError)
            .doOnComplete(subscriber::onComplete)
            .zipWith(session.send(binaryOutputEvents.map(dataBuffer -> session.binaryMessage(dataBufferFactory -> dataBuffer))))
            .then();
}

Это простой обработчик, который передает полученный двоичный файл всем сеансам / клиентам. Что может быть не так в моем коде?

...