pgjdbc / r2dbc-postgresql

Postgresql R2DBC Driver
https://r2dbc.io
Apache License 2.0
1.01k stars 177 forks source link

LEAK: ByteBuf.release() was not called before it's garbage-collected #580

Open akoufa opened 1 year ago

akoufa commented 1 year ago

Bug Report

Hello we are using Spring Boot 3.0.2, Spring Data R2DBC and r2dbc-postgresql. Under normal conditions everything works fine. Though when stress testing our service we observe Netty leaks which force our service to restart. I have attached an example stacktrace below.

Stacktrace:

2023-01-27T11:57:32.841Z ERROR 1 --- [or-http-epoll-1] io.netty.util.ResourceLeakDetector : LEAK: ByteBuf.release() was not called before it's garbage-collected. See https://netty.io/wiki/reference-counted-objects.html for more information.    bookstore-springboot
27/01/2023, 13:57:32    557a70965771472db1e734e2cf132246    Recent access records:  bookstore-springboot
27/01/2023, 13:57:32    557a70965771472db1e734e2cf132246    Created at: bookstore-springboot
27/01/2023, 13:57:32    557a70965771472db1e734e2cf132246    io.netty.buffer.PooledByteBufAllocator.newDirectBuffer(PooledByteBufAllocator.java:403) bookstore-springboot
27/01/2023, 13:57:32    557a70965771472db1e734e2cf132246    io.netty.buffer.AbstractByteBufAllocator.directBuffer(AbstractByteBufAllocator.java:188)    bookstore-springboot
27/01/2023, 13:57:32    557a70965771472db1e734e2cf132246    io.netty.buffer.AbstractByteBufAllocator.directBuffer(AbstractByteBufAllocator.java:179)    bookstore-springboot
27/01/2023, 13:57:32    557a70965771472db1e734e2cf132246    io.netty.channel.unix.PreferredDirectByteBufAllocator.ioBuffer(PreferredDirectByteBufAllocator.java:53) bookstore-springboot
27/01/2023, 13:57:32    557a70965771472db1e734e2cf132246    io.netty.channel.DefaultMaxMessagesRecvByteBufAllocator$MaxMessageHandle.allocate(DefaultMaxMessagesRecvByteBufAllocator.java:120)  bookstore-springboot
27/01/2023, 13:57:32    557a70965771472db1e734e2cf132246    io.netty.channel.epoll.EpollRecvByteAllocatorHandle.allocate(EpollRecvByteAllocatorHandle.java:75)  bookstore-springboot
27/01/2023, 13:57:32    557a70965771472db1e734e2cf132246    io.netty.channel.epoll.AbstractEpollStreamChannel$EpollStreamUnsafe.epollInReady(AbstractEpollStreamChannel.java:785)   bookstore-springboot
27/01/2023, 13:57:32    557a70965771472db1e734e2cf132246    io.netty.channel.epoll.EpollEventLoop.processReady(EpollEventLoop.java:499) bookstore-springboot
27/01/2023, 13:57:32    557a70965771472db1e734e2cf132246    io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:397)  bookstore-springboot
27/01/2023, 13:57:32    557a70965771472db1e734e2cf132246    io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997)    bookstore-springboot
27/01/2023, 13:57:32    557a70965771472db1e734e2cf132246    io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)   bookstore-springboot
27/01/2023, 13:57:32    557a70965771472db1e734e2cf132246    io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)   bookstore-springboot
27/01/2023, 13:57:32    557a70965771472db1e734e2cf132246    java.base/java.lang.Thread.run(Thread.java:833) bookstore-springboot
27/01/2023, 13:57:30    557a70965771472db1e734e2cf132246    2023-01-27T11:57:30.835Z ERROR 1 --- [tor-tcp-epoll-1] io.netty.util.ResourceLeakDetector : LEAK: DataRow.release() was not called before it's garbage-collected. See https://netty.io/wiki/reference-counted-objects.html for more information.    bookstore-springboot
27/01/2023, 13:57:30    557a70965771472db1e734e2cf132246    Recent access records:  bookstore-springboot
27/01/2023, 13:57:30    557a70965771472db1e734e2cf132246    Created at: bookstore-springboot
27/01/2023, 13:57:30    557a70965771472db1e734e2cf132246    io.r2dbc.postgresql.message.backend.DataRow.<init>(DataRow.java:37) bookstore-springboot
27/01/2023, 13:57:30    557a70965771472db1e734e2cf132246    io.r2dbc.postgresql.message.backend.DataRow.decode(DataRow.java:141)    bookstore-springboot
27/01/2023, 13:57:30    557a70965771472db1e734e2cf132246    io.r2dbc.postgresql.message.backend.BackendMessageDecoder.decodeBody(BackendMessageDecoder.java:65) bookstore-springboot
27/01/2023, 13:57:30    557a70965771472db1e734e2cf132246    io.r2dbc.postgresql.message.backend.BackendMessageDecoder.decode(BackendMessageDecoder.java:39) bookstore-springboot
27/01/2023, 13:57:30    557a70965771472db1e734e2cf132246    reactor.core.publisher.FluxMap$MapConditionalSubscriber.onNext(FluxMap.java:208)    bookstore-springboot
27/01/2023, 13:57:30    557a70965771472db1e734e2cf132246    reactor.core.publisher.FluxMap$MapConditionalSubscriber.onNext(FluxMap.java:224)    bookstore-springboot
27/01/2023, 13:57:30    557a70965771472db1e734e2cf132246    reactor.netty.channel.FluxReceive.drainReceiver(FluxReceive.java:294)   bookstore-springboot
27/01/2023, 13:57:30    557a70965771472db1e734e2cf132246    reactor.netty.channel.FluxReceive.onInboundNext(FluxReceive.java:403)   bookstore-springboot
27/01/2023, 13:57:30    557a70965771472db1e734e2cf132246    reactor.netty.channel.ChannelOperations.onInboundNext(ChannelOperations.java:411)   bookstore-springboot
27/01/2023, 13:57:30    557a70965771472db1e734e2cf132246    reactor.netty.channel.ChannelOperationsHandler.channelRead(ChannelOperationsHandler.java:113)   bookstore-springboot
27/01/2023, 13:57:30    557a70965771472db1e734e2cf132246    io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444)    bookstore-springboot
27/01/2023, 13:57:30    557a70965771472db1e734e2cf132246    io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)    bookstore-springboot
27/01/2023, 13:57:30    557a70965771472db1e734e2cf132246    io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)  bookstore-springboot
27/01/2023, 13:57:30    557a70965771472db1e734e2cf132246    io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:346)  bookstore-springboot
27/01/2023, 13:57:30    557a70965771472db1e734e2cf132246    io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:333)  bookstore-springboot
27/01/2023, 13:57:30    557a70965771472db1e734e2cf132246    io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:454)   bookstore-springboot
27/01/2023, 13:57:30    557a70965771472db1e734e2cf132246    io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:290)  bookstore-springboot
27/01/2023, 13:57:30    557a70965771472db1e734e2cf132246    io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444)    bookstore-springboot
27/01/2023, 13:57:30    557a70965771472db1e734e2cf132246    io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)    bookstore-springboot
27/01/2023, 13:57:30    557a70965771472db1e734e2cf132246    io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)  bookstore-springboot
27/01/2023, 13:57:30    557a70965771472db1e734e2cf132246    io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410)   bookstore-springboot
27/01/2023, 13:57:30    557a70965771472db1e734e2cf132246    io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:440)    bookstore-springboot
27/01/2023, 13:57:30    557a70965771472db1e734e2cf132246    io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)    bookstore-springboot
27/01/2023, 13:57:30    557a70965771472db1e734e2cf132246    io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919)    bookstore-springboot
27/01/2023, 13:57:30    557a70965771472db1e734e2cf132246    io.netty.channel.epoll.AbstractEpollStreamChannel$EpollStreamUnsafe.epollInReady(AbstractEpollStreamChannel.java:800)   bookstore-springboot
27/01/2023, 13:57:30    557a70965771472db1e734e2cf132246    io.netty.channel.epoll.EpollEventLoop.processReady(EpollEventLoop.java:499) bookstore-springboot
27/01/2023, 13:57:30    557a70965771472db1e734e2cf132246    io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:397)  bookstore-springboot
27/01/2023, 13:57:30    557a70965771472db1e734e2cf132246    io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997)    bookstore-springboot
27/01/2023, 13:57:30    557a70965771472db1e734e2cf132246    io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)   bookstore-springboot
27/01/2023, 13:57:30    557a70965771472db1e734e2cf132246    io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)   bookstore-springboot
27/01/2023, 13:57:30    557a70965771472db1e734e2cf132246    java.base/java.lang.Thread.run(Thread.java:833)

Our code is very simple we are just using Spring Data Repositories:

interface BooksRepository : CoroutineCrudRepository<BookEntity, UUID> {
    fun findBy(pageable: Pageable): Flow<BookEntity>
}

and then just using the above repository like this:

// Method in BooksDataStore
    fun getBooks(limit: Int): Flow<Book> {
        val pageRequest = PageRequest.ofSize(limit)
        return booksRepository.findBy(pageRequest).map { it.toBook() }
    }

@GetMapping
    fun getBooks(
        @RequestParam("limit", required = false, defaultValue = "1000") limit: Int,
    ): Flow<Book> {
        return booksDataStore.getBooks(limit)
    }

Is there anything we did configure wrongly or we have to watchout?

mp911de commented 1 year ago

We keep seeing the issue but we were not able to track it down yet.

akoufa commented 1 year ago

@mp911de You can find the Spring Boot project which has this issue here: https://github.com/arconsis/server_benchmarks/tree/main/bookstore-springboot . The issue pops up only when the service is under load.

mp911de commented 1 year ago

The issue pops up only when the service is under load.

This is part of the problem why we were not able to pin-point the issue because under high load, debugging is impossible.

kressi commented 1 year ago

We have started seeing this issue reliably in an application which is regularly under high load. I hope following logs with ResourceLeakDetector.setLevel(ADVANCED) can help to localize the cause.

2023-02-26T19:13:29.268852707Z - io.netty.util.ResourceLeakDetector ```text 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: #1: io.netty.buffer.AdvancedLeakAwareByteBuf.writeCharSequence(AdvancedLeakAwareByteBuf.java:893) io.r2dbc.postgresql.util.ByteBufUtils.encode(ByteBufUtils.java:58) io.r2dbc.postgresql.codec.StringCodec.lambda$doEncode$0(StringCodec.java:96) reactor.core.publisher.MonoSupplier$MonoSupplierSubscription.request(MonoSupplier.java:126) reactor.core.publisher.Operators$BaseFluxToMonoOperator.request(Operators.java:2041) reactor.core.publisher.Operators$MultiSubscriptionSubscriber.request(Operators.java:2305) reactor.core.publisher.FluxConcatMapNoPrefetch$FluxConcatMapNoPrefetchSubscriber.request(FluxConcatMapNoPrefetch.java:338) reactor.core.publisher.Operators$BaseFluxToMonoOperator.request(Operators.java:2041) reactor.core.publisher.MonoFlatMapMany$FlatMapManyMain.onSubscribe(MonoFlatMapMany.java:141) reactor.core.publisher.Operators$BaseFluxToMonoOperator.onSubscribe(Operators.java:2025) reactor.core.publisher.FluxConcatMapNoPrefetch$FluxConcatMapNoPrefetchSubscriber.onSubscribe(FluxConcatMapNoPrefetch.java:164) reactor.core.publisher.FluxIterable.subscribe(FluxIterable.java:201) reactor.core.publisher.FluxIterable.subscribe(FluxIterable.java:83) reactor.core.publisher.Flux.subscribe(Flux.java:8671) reactor.core.publisher.FluxFlatMap$FlatMapMain.onNext(FluxFlatMap.java:427) reactor.core.publisher.FluxOnAssembly$OnAssemblySubscriber.onNext(FluxOnAssembly.java:539) reactor.core.publisher.FluxMap$MapSubscriber.onNext(FluxMap.java:122) reactor.core.publisher.FluxMap$MapSubscriber.onNext(FluxMap.java:122) reactor.core.publisher.Operators$ScalarSubscription.request(Operators.java:2545) reactor.core.publisher.FluxMap$MapSubscriber.request(FluxMap.java:164) reactor.core.publisher.FluxMap$MapSubscriber.request(FluxMap.java:164) reactor.core.publisher.FluxOnAssembly$OnAssemblySubscriber.request(FluxOnAssembly.java:649) reactor.core.publisher.FluxFlatMap$FlatMapMain.onSubscribe(FluxFlatMap.java:371) reactor.core.publisher.FluxOnAssembly$OnAssemblySubscriber.onSubscribe(FluxOnAssembly.java:633) reactor.core.publisher.FluxMap$MapSubscriber.onSubscribe(FluxMap.java:92) reactor.core.publisher.FluxMap$MapSubscriber.onSubscribe(FluxMap.java:92) reactor.core.publisher.FluxJust.subscribe(FluxJust.java:68) reactor.core.publisher.FluxDefer.subscribe(FluxDefer.java:54) reactor.core.publisher.Flux.subscribe(Flux.java:8671) reactor.core.publisher.FluxUsingWhen$ResourceSubscriber.onNext(FluxUsingWhen.java:195) reactor.core.publisher.FluxMap$MapSubscriber.onNext(FluxMap.java:122) reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onNext(FluxOnErrorResume.java:79) reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onNext(FluxOnErrorResume.java:79) reactor.core.publisher.FluxRetry$RetrySubscriber.onNext(FluxRetry.java:87) reactor.core.publisher.MonoFlatMap$FlatMapMain.secondComplete(MonoFlatMap.java:245) reactor.core.publisher.MonoFlatMap$FlatMapInner.onNext(MonoFlatMap.java:305) io.r2dbc.pool.MonoDiscardOnCancel$MonoDiscardOnCancelSubscriber.onNext(MonoDiscardOnCancel.java:92) reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onNext(FluxOnErrorResume.java:79) reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.complete(MonoIgnoreThen.java:292) reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.onNext(MonoIgnoreThen.java:187) reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:236) reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.onComplete(MonoIgnoreThen.java:203) reactor.core.publisher.MonoIgnoreElements$IgnoreElementsSubscriber.onComplete(MonoIgnoreElements.java:89) reactor.core.publisher.FluxHandleFuseable$HandleFuseableSubscriber.onComplete(FluxHandleFuseable.java:238) reactor.core.publisher.MonoSupplier$MonoSupplierSubscription.request(MonoSupplier.java:148) reactor.core.publisher.FluxHandleFuseable$HandleFuseableSubscriber.request(FluxHandleFuseable.java:259) reactor.core.publisher.MonoIgnoreElements$IgnoreElementsSubscriber.onSubscribe(MonoIgnoreElements.java:72) reactor.core.publisher.FluxHandleFuseable$HandleFuseableSubscriber.onSubscribe(FluxHandleFuseable.java:163) reactor.core.publisher.MonoSupplier.subscribe(MonoSupplier.java:48) reactor.core.publisher.Mono.subscribe(Mono.java:4485) reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:263) reactor.core.publisher.MonoIgnoreThen.subscribe(MonoIgnoreThen.java:51) reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) io.r2dbc.pool.MonoDiscardOnCancel.subscribe(MonoDiscardOnCancel.java:50) reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:165) reactor.pool.AbstractPool$Borrower.deliver(AbstractPool.java:467) reactor.pool.SimpleDequePool.lambda$drainLoop$8(SimpleDequePool.java:368) reactor.core.scheduler.ImmediateScheduler.schedule(ImmediateScheduler.java:52) reactor.pool.SimpleDequePool.drainLoop(SimpleDequePool.java:368) reactor.pool.SimpleDequePool.drain(SimpleDequePool.java:300) reactor.pool.SimpleDequePool.maybeRecycleAndDrain(SimpleDequePool.java:532) reactor.pool.SimpleDequePool$QueuePoolRecyclerInner.onComplete(SimpleDequePool.java:761) reactor.core.publisher.Operators.complete(Operators.java:137) reactor.core.publisher.MonoEmpty.subscribe(MonoEmpty.java:46) reactor.core.publisher.Mono.subscribe(Mono.java:4485) reactor.pool.SimpleDequePool$QueuePoolRecyclerMono.subscribe(SimpleDequePool.java:873) reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:52) reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:240) reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.onComplete(MonoIgnoreThen.java:203) reactor.core.publisher.FluxPeek$PeekSubscriber.onComplete(FluxPeek.java:260) reactor.core.publisher.Operators.complete(Operators.java:137) reactor.core.publisher.MonoEmpty.subscribe(MonoEmpty.java:46) reactor.core.publisher.Mono.subscribe(Mono.java:4485) reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:263) reactor.core.publisher.MonoIgnoreThen.subscribe(MonoIgnoreThen.java:51) reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:52) reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:240) reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.onComplete(MonoIgnoreThen.java:203) reactor.core.publisher.MonoIgnoreElements$IgnoreElementsSubscriber.onComplete(MonoIgnoreElements.java:89) reactor.core.publisher.FluxHandleFuseable$HandleFuseableSubscriber.onComplete(FluxHandleFuseable.java:238) reactor.core.publisher.MonoSupplier$MonoSupplierSubscription.request(MonoSupplier.java:148) reactor.core.publisher.FluxHandleFuseable$HandleFuseableSubscriber.request(FluxHandleFuseable.java:259) reactor.core.publisher.MonoIgnoreElements$IgnoreElementsSubscriber.onSubscribe(MonoIgnoreElements.java:72) reactor.core.publisher.FluxHandleFuseable$HandleFuseableSubscriber.onSubscribe(FluxHandleFuseable.java:163) reactor.core.publisher.MonoSupplier.subscribe(MonoSupplier.java:48) reactor.core.publisher.Mono.subscribe(Mono.java:4485) reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:263) reactor.core.publisher.MonoIgnoreThen.subscribe(MonoIgnoreThen.java:51) reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:52) reactor.core.publisher.Mono.subscribe(Mono.java:4485) reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onError(FluxOnErrorResume.java:103) reactor.core.publisher.MonoIgnoreElements$IgnoreElementsSubscriber.onError(MonoIgnoreElements.java:84) reactor.core.publisher.FluxMap$MapSubscriber.onError(FluxMap.java:134) reactor.core.publisher.FluxFilter$FilterSubscriber.onError(FluxFilter.java:157) reactor.core.publisher.FluxFilter$FilterConditionalSubscriber.onError(FluxFilter.java:291) reactor.core.publisher.FluxMap$MapConditionalSubscriber.onError(FluxMap.java:265) reactor.core.publisher.Operators.error(Operators.java:198) reactor.core.publisher.MonoError.subscribe(MonoError.java:53) reactor.core.publisher.MonoDeferContextual.subscribe(MonoDeferContextual.java:55) reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:52) reactor.core.publisher.FluxFromMonoOperator.subscribe(FluxFromMonoOperator.java:83) reactor.core.publisher.FluxUsingWhen$UsingWhenSubscriber.cancel(FluxUsingWhen.java:330) reactor.core.publisher.Operators$DeferredSubscription.cancel(Operators.java:1670) reactor.core.publisher.FluxUsingWhen$ResourceSubscriber.cancel(FluxUsingWhen.java:248) reactor.core.publisher.Operators$MultiSubscriptionSubscriber.drainLoop(Operators.java:2399) reactor.core.publisher.Operators$MultiSubscriptionSubscriber.drain(Operators.java:2367) reactor.core.publisher.Operators$MultiSubscriptionSubscriber.cancel(Operators.java:2179) reactor.core.publisher.FluxBuffer$BufferExactSubscriber.cancel(FluxBuffer.java:121) reactor.core.publisher.FluxFlatMap$FlatMapMain.cancel(FluxFlatMap.java:359) reactor.core.publisher.MonoNext$NextSubscriber.cancel(MonoNext.java:114) reactor.core.publisher.FluxHandle$HandleSubscriber.cancel(FluxHandle.java:276) reactor.core.publisher.MonoFlatMap$FlatMapMain.cancel(MonoFlatMap.java:199) reactor.core.publisher.Operators.terminate(Operators.java:1277) reactor.core.publisher.MonoFlatMapMany$FlatMapManyMain.cancel(MonoFlatMapMany.java:131) reactor.core.publisher.FluxUsingWhen$UsingWhenSubscriber.cancel(FluxUsingWhen.java:326) reactor.core.publisher.MonoNext$NextSubscriber.cancel(MonoNext.java:114) reactor.core.publisher.Operators.set(Operators.java:1197) reactor.core.publisher.FluxMergeSequential$MergeSequentialInner.cancel(FluxMergeSequential.java:601) reactor.core.publisher.FluxMergeSequential$MergeSequentialMain.cancelAll(FluxMergeSequential.java:290) reactor.core.publisher.FluxMergeSequential$MergeSequentialMain.drain(FluxMergeSequential.java:385) reactor.core.publisher.FluxMergeSequential$MergeSequentialMain.innerNext(FluxMergeSequential.java:304) reactor.core.publisher.FluxMergeSequential$MergeSequentialInner.onNext(FluxMergeSequential.java:571) reactor.core.publisher.MonoNext$NextSubscriber.onNext(MonoNext.java:82) reactor.core.publisher.FluxUsingWhen$UsingWhenSubscriber.onNext(FluxUsingWhen.java:345) reactor.core.publisher.MonoFlatMapMany$FlatMapManyInner.onNext(MonoFlatMapMany.java:250) reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:158) reactor.core.publisher.FluxHandle$HandleSubscriber.onNext(FluxHandle.java:128) reactor.core.publisher.MonoNext$NextSubscriber.onNext(MonoNext.java:82) reactor.core.publisher.FluxFlatMap$FlatMapMain.tryEmitScalar(FluxFlatMap.java:489) reactor.core.publisher.FluxFlatMap$FlatMapMain.onNext(FluxFlatMap.java:422) reactor.core.publisher.FluxBuffer$BufferExactSubscriber.onComplete(FluxBuffer.java:185) reactor.core.publisher.Operators$MultiSubscriptionSubscriber.onComplete(Operators.java:2205) reactor.core.publisher.FluxUsingWhen$UsingWhenSubscriber.deferredComplete(FluxUsingWhen.java:392) reactor.core.publisher.FluxUsingWhen$CommitInner.onComplete(FluxUsingWhen.java:527) reactor.core.publisher.Operators$MultiSubscriptionSubscriber.onComplete(Operators.java:2205) reactor.core.publisher.FluxPeek$PeekSubscriber.onComplete(FluxPeek.java:260) reactor.core.publisher.Operators$MultiSubscriptionSubscriber.onComplete(Operators.java:2205) reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.onComplete(MonoIgnoreThen.java:209) reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.onComplete(MonoIgnoreThen.java:209) reactor.pool.SimpleDequePool.maybeRecycleAndDrain(SimpleDequePool.java:531) reactor.pool.SimpleDequePool$QueuePoolRecyclerInner.onComplete(SimpleDequePool.java:761) reactor.core.publisher.Operators.complete(Operators.java:137) reactor.core.publisher.MonoEmpty.subscribe(MonoEmpty.java:46) reactor.core.publisher.Mono.subscribe(Mono.java:4485) reactor.pool.SimpleDequePool$QueuePoolRecyclerMono.subscribe(SimpleDequePool.java:873) reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:52) reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:240) reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.onComplete(MonoIgnoreThen.java:203) reactor.core.publisher.FluxPeek$PeekSubscriber.onComplete(FluxPeek.java:260) reactor.core.publisher.Operators.complete(Operators.java:137) reactor.core.publisher.MonoEmpty.subscribe(MonoEmpty.java:46) reactor.core.publisher.Mono.subscribe(Mono.java:4485) reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:263) reactor.core.publisher.MonoIgnoreThen.subscribe(MonoIgnoreThen.java:51) reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:52) reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:240) reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.onComplete(MonoIgnoreThen.java:203) reactor.core.publisher.MonoIgnoreElements$IgnoreElementsSubscriber.onComplete(MonoIgnoreElements.java:89) reactor.core.publisher.FluxHandleFuseable$HandleFuseableSubscriber.onComplete(FluxHandleFuseable.java:238) reactor.core.publisher.MonoSupplier$MonoSupplierSubscription.request(MonoSupplier.java:148) reactor.core.publisher.FluxHandleFuseable$HandleFuseableSubscriber.request(FluxHandleFuseable.java:259) reactor.core.publisher.MonoIgnoreElements$IgnoreElementsSubscriber.onSubscribe(MonoIgnoreElements.java:72) reactor.core.publisher.FluxHandleFuseable$HandleFuseableSubscriber.onSubscribe(FluxHandleFuseable.java:163) reactor.core.publisher.MonoSupplier.subscribe(MonoSupplier.java:48) reactor.core.publisher.Mono.subscribe(Mono.java:4485) reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:263) reactor.core.publisher.MonoIgnoreThen.subscribe(MonoIgnoreThen.java:51) reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:52) reactor.core.publisher.Mono.subscribe(Mono.java:4485) reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onError(FluxOnErrorResume.java:103) reactor.core.publisher.MonoIgnoreElements$IgnoreElementsSubscriber.onError(MonoIgnoreElements.java:84) reactor.core.publisher.FluxMap$MapSubscriber.onError(FluxMap.java:134) reactor.core.publisher.FluxFilter$FilterSubscriber.onError(FluxFilter.java:157) reactor.core.publisher.FluxFilter$FilterConditionalSubscriber.onError(FluxFilter.java:291) reactor.core.publisher.FluxMap$MapConditionalSubscriber.onError(FluxMap.java:265) reactor.core.publisher.Operators.error(Operators.java:198) reactor.core.publisher.MonoError.subscribe(MonoError.java:53) reactor.core.publisher.MonoDeferContextual.subscribe(MonoDeferContextual.java:55) reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:52) reactor.core.publisher.Mono.subscribe(Mono.java:4485) reactor.core.publisher.FluxUsingWhen$UsingWhenSubscriber.onComplete(FluxUsingWhen.java:384) reactor.core.publisher.FluxFlatMap$FlatMapMain.checkTerminated(FluxFlatMap.java:847) reactor.core.publisher.FluxFlatMap$FlatMapMain.drainLoop(FluxFlatMap.java:609) reactor.core.publisher.FluxFlatMap$FlatMapMain.innerComplete(FluxFlatMap.java:895) reactor.core.publisher.FluxFlatMap$FlatMapInner.onComplete(FluxFlatMap.java:998) reactor.core.publisher.FluxHandle$HandleSubscriber.onComplete(FluxHandle.java:222) reactor.core.publisher.MonoFlatMapMany$FlatMapManyInner.onComplete(MonoFlatMapMany.java:260) reactor.core.publisher.FluxHandleFuseable$HandleFuseableSubscriber.onComplete(FluxHandleFuseable.java:238) reactor.core.publisher.FluxFilterFuseable$FilterFuseableConditionalSubscriber.onComplete(FluxFilterFuseable.java:391) reactor.core.publisher.FluxContextWrite$ContextWriteSubscriber.onComplete(FluxContextWrite.java:126) reactor.core.publisher.FluxPeekFuseable$PeekConditionalSubscriber.onComplete(FluxPeekFuseable.java:940) reactor.core.publisher.FluxPeekFuseable$PeekConditionalSubscriber.onComplete(FluxPeekFuseable.java:940) io.r2dbc.postgresql.util.FluxDiscardOnCancel$FluxDiscardOnCancelSubscriber.onComplete(FluxDiscardOnCancel.java:104) reactor.core.publisher.FluxDoFinally$DoFinallySubscriber.onComplete(FluxDoFinally.java:128) reactor.core.publisher.FluxHandle$HandleSubscriber.onComplete(FluxHandle.java:222) reactor.core.publisher.FluxCreate$BaseSink.complete(FluxCreate.java:460) reactor.core.publisher.FluxCreate$BufferAsyncSink.drain(FluxCreate.java:805) reactor.core.publisher.FluxCreate$BufferAsyncSink.complete(FluxCreate.java:753) reactor.core.publisher.FluxCreate$SerializedFluxSink.drainLoop(FluxCreate.java:247) reactor.core.publisher.FluxCreate$SerializedFluxSink.drain(FluxCreate.java:213) reactor.core.publisher.FluxCreate$SerializedFluxSink.complete(FluxCreate.java:204) io.r2dbc.postgresql.client.ReactorNettyClient$Conversation.complete(ReactorNettyClient.java:671) io.r2dbc.postgresql.client.ReactorNettyClient$BackendMessageSubscriber.emit(ReactorNettyClient.java:937) io.r2dbc.postgresql.client.ReactorNettyClient$BackendMessageSubscriber.onNext(ReactorNettyClient.java:813) io.r2dbc.postgresql.client.ReactorNettyClient$BackendMessageSubscriber.onNext(ReactorNettyClient.java:719) reactor.core.publisher.FluxHandle$HandleSubscriber.onNext(FluxHandle.java:128) reactor.core.publisher.FluxPeekFuseable$PeekConditionalSubscriber.onNext(FluxPeekFuseable.java:854) reactor.core.publisher.FluxMap$MapConditionalSubscriber.onNext(FluxMap.java:224) reactor.core.publisher.FluxMap$MapConditionalSubscriber.onNext(FluxMap.java:224) reactor.netty.channel.FluxReceive.drainReceiver(FluxReceive.java:294) reactor.netty.channel.FluxReceive.onInboundNext(FluxReceive.java:403) reactor.netty.channel.ChannelOperations.onInboundNext(ChannelOperations.java:411) reactor.netty.channel.ChannelOperationsHandler.channelRead(ChannelOperationsHandler.java:113) io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:346) io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:318) io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) io.netty.handler.ssl.SslHandler.unwrap(SslHandler.java:1382) io.netty.handler.ssl.SslHandler.decodeJdkCompatible(SslHandler.java:1245) io.netty.handler.ssl.SslHandler.decode(SslHandler.java:1294) io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:529) io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:468) io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:290) io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410) io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:440) io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919) io.netty.channel.epoll.AbstractEpollStreamChannel$EpollStreamUnsafe.epollInReady(AbstractEpollStreamChannel.java:800) io.netty.channel.epoll.EpollEventLoop.processReady(EpollEventLoop.java:499) io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:397) io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997) io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) java.base/java.lang.Thread.run(Unknown Source) Created at: io.netty.buffer.PooledByteBufAllocator.newDirectBuffer(PooledByteBufAllocator.java:403) io.netty.buffer.AbstractByteBufAllocator.directBuffer(AbstractByteBufAllocator.java:188) io.netty.buffer.AbstractByteBufAllocator.directBuffer(AbstractByteBufAllocator.java:174) io.netty.buffer.AbstractByteBufAllocator.buffer(AbstractByteBufAllocator.java:108) io.r2dbc.postgresql.util.ByteBufUtils.encode(ByteBufUtils.java:57) io.r2dbc.postgresql.codec.StringCodec.lambda$doEncode$0(StringCodec.java:96) reactor.core.publisher.MonoSupplier$MonoSupplierSubscription.request(MonoSupplier.java:126) reactor.core.publisher.Operators$BaseFluxToMonoOperator.request(Operators.java:2041) reactor.core.publisher.Operators$MultiSubscriptionSubscriber.request(Operators.java:2305) reactor.core.publisher.FluxConcatMapNoPrefetch$FluxConcatMapNoPrefetchSubscriber.request(FluxConcatMapNoPrefetch.java:338) reactor.core.publisher.Operators$BaseFluxToMonoOperator.request(Operators.java:2041) reactor.core.publisher.MonoFlatMapMany$FlatMapManyMain.onSubscribe(MonoFlatMapMany.java:141) reactor.core.publisher.Operators$BaseFluxToMonoOperator.onSubscribe(Operators.java:2025) reactor.core.publisher.FluxConcatMapNoPrefetch$FluxConcatMapNoPrefetchSubscriber.onSubscribe(FluxConcatMapNoPrefetch.java:164) reactor.core.publisher.FluxIterable.subscribe(FluxIterable.java:201) reactor.core.publisher.FluxIterable.subscribe(FluxIterable.java:83) reactor.core.publisher.Flux.subscribe(Flux.java:8671) reactor.core.publisher.FluxFlatMap$FlatMapMain.onNext(FluxFlatMap.java:427) reactor.core.publisher.FluxOnAssembly$OnAssemblySubscriber.onNext(FluxOnAssembly.java:539) reactor.core.publisher.FluxMap$MapSubscriber.onNext(FluxMap.java:122) reactor.core.publisher.FluxMap$MapSubscriber.onNext(FluxMap.java:122) reactor.core.publisher.Operators$ScalarSubscription.request(Operators.java:2545) reactor.core.publisher.FluxMap$MapSubscriber.request(FluxMap.java:164) reactor.core.publisher.FluxMap$MapSubscriber.request(FluxMap.java:164) reactor.core.publisher.FluxOnAssembly$OnAssemblySubscriber.request(FluxOnAssembly.java:649) reactor.core.publisher.FluxFlatMap$FlatMapMain.onSubscribe(FluxFlatMap.java:371) reactor.core.publisher.FluxOnAssembly$OnAssemblySubscriber.onSubscribe(FluxOnAssembly.java:633) reactor.core.publisher.FluxMap$MapSubscriber.onSubscribe(FluxMap.java:92) reactor.core.publisher.FluxMap$MapSubscriber.onSubscribe(FluxMap.java:92) reactor.core.publisher.FluxJust.subscribe(FluxJust.java:68) reactor.core.publisher.FluxDefer.subscribe(FluxDefer.java:54) reactor.core.publisher.Flux.subscribe(Flux.java:8671) reactor.core.publisher.FluxUsingWhen$ResourceSubscriber.onNext(FluxUsingWhen.java:195) reactor.core.publisher.FluxMap$MapSubscriber.onNext(FluxMap.java:122) reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onNext(FluxOnErrorResume.java:79) reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onNext(FluxOnErrorResume.java:79) reactor.core.publisher.FluxRetry$RetrySubscriber.onNext(FluxRetry.java:87) reactor.core.publisher.MonoFlatMap$FlatMapMain.secondComplete(MonoFlatMap.java:245) reactor.core.publisher.MonoFlatMap$FlatMapInner.onNext(MonoFlatMap.java:305) io.r2dbc.pool.MonoDiscardOnCancel$MonoDiscardOnCancelSubscriber.onNext(MonoDiscardOnCancel.java:92) reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onNext(FluxOnErrorResume.java:79) reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.complete(MonoIgnoreThen.java:292) reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.onNext(MonoIgnoreThen.java:187) reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:236) reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.onComplete(MonoIgnoreThen.java:203) reactor.core.publisher.MonoIgnoreElements$IgnoreElementsSubscriber.onComplete(MonoIgnoreElements.java:89) reactor.core.publisher.FluxHandleFuseable$HandleFuseableSubscriber.onComplete(FluxHandleFuseable.java:238) reactor.core.publisher.MonoSupplier$MonoSupplierSubscription.request(MonoSupplier.java:148) reactor.core.publisher.FluxHandleFuseable$HandleFuseableSubscriber.request(FluxHandleFuseable.java:259) reactor.core.publisher.MonoIgnoreElements$IgnoreElementsSubscriber.onSubscribe(MonoIgnoreElements.java:72) reactor.core.publisher.FluxHandleFuseable$HandleFuseableSubscriber.onSubscribe(FluxHandleFuseable.java:163) reactor.core.publisher.MonoSupplier.subscribe(MonoSupplier.java:48) reactor.core.publisher.Mono.subscribe(Mono.java:4485) reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:263) reactor.core.publisher.MonoIgnoreThen.subscribe(MonoIgnoreThen.java:51) reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) io.r2dbc.pool.MonoDiscardOnCancel.subscribe(MonoDiscardOnCancel.java:50) reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:165) reactor.pool.AbstractPool$Borrower.deliver(AbstractPool.java:467) reactor.pool.SimpleDequePool.lambda$drainLoop$8(SimpleDequePool.java:368) reactor.core.scheduler.ImmediateScheduler.schedule(ImmediateScheduler.java:52) reactor.pool.SimpleDequePool.drainLoop(SimpleDequePool.java:368) reactor.pool.SimpleDequePool.drain(SimpleDequePool.java:300) reactor.pool.SimpleDequePool.maybeRecycleAndDrain(SimpleDequePool.java:532) reactor.pool.SimpleDequePool$QueuePoolRecyclerInner.onComplete(SimpleDequePool.java:761) reactor.core.publisher.Operators.complete(Operators.java:137) reactor.core.publisher.MonoEmpty.subscribe(MonoEmpty.java:46) reactor.core.publisher.Mono.subscribe(Mono.java:4485) reactor.pool.SimpleDequePool$QueuePoolRecyclerMono.subscribe(SimpleDequePool.java:873) reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:52) reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:240) reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.onComplete(MonoIgnoreThen.java:203) reactor.core.publisher.FluxPeek$PeekSubscriber.onComplete(FluxPeek.java:260) reactor.core.publisher.Operators.complete(Operators.java:137) reactor.core.publisher.MonoEmpty.subscribe(MonoEmpty.java:46) reactor.core.publisher.Mono.subscribe(Mono.java:4485) reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:263) reactor.core.publisher.MonoIgnoreThen.subscribe(MonoIgnoreThen.java:51) reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:52) reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:240) reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.onComplete(MonoIgnoreThen.java:203) reactor.core.publisher.MonoIgnoreElements$IgnoreElementsSubscriber.onComplete(MonoIgnoreElements.java:89) reactor.core.publisher.FluxHandleFuseable$HandleFuseableSubscriber.onComplete(FluxHandleFuseable.java:238) reactor.core.publisher.MonoSupplier$MonoSupplierSubscription.request(MonoSupplier.java:148) reactor.core.publisher.FluxHandleFuseable$HandleFuseableSubscriber.request(FluxHandleFuseable.java:259) reactor.core.publisher.MonoIgnoreElements$IgnoreElementsSubscriber.onSubscribe(MonoIgnoreElements.java:72) reactor.core.publisher.FluxHandleFuseable$HandleFuseableSubscriber.onSubscribe(FluxHandleFuseable.java:163) reactor.core.publisher.MonoSupplier.subscribe(MonoSupplier.java:48) reactor.core.publisher.Mono.subscribe(Mono.java:4485) reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:263) reactor.core.publisher.MonoIgnoreThen.subscribe(MonoIgnoreThen.java:51) reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:52) reactor.core.publisher.Mono.subscribe(Mono.java:4485) reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onError(FluxOnErrorResume.java:103) reactor.core.publisher.MonoIgnoreElements$IgnoreElementsSubscriber.onError(MonoIgnoreElements.java:84) reactor.core.publisher.FluxMap$MapSubscriber.onError(FluxMap.java:134) reactor.core.publisher.FluxFilter$FilterSubscriber.onError(FluxFilter.java:157) reactor.core.publisher.FluxFilter$FilterConditionalSubscriber.onError(FluxFilter.java:291) reactor.core.publisher.FluxMap$MapConditionalSubscriber.onError(FluxMap.java:265) reactor.core.publisher.Operators.error(Operators.java:198) reactor.core.publisher.MonoError.subscribe(MonoError.java:53) reactor.core.publisher.MonoDeferContextual.subscribe(MonoDeferContextual.java:55) reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:52) reactor.core.publisher.FluxFromMonoOperator.subscribe(FluxFromMonoOperator.java:83) reactor.core.publisher.FluxUsingWhen$UsingWhenSubscriber.cancel(FluxUsingWhen.java:330) reactor.core.publisher.Operators$DeferredSubscription.cancel(Operators.java:1670) reactor.core.publisher.FluxUsingWhen$ResourceSubscriber.cancel(FluxUsingWhen.java:248) reactor.core.publisher.Operators$MultiSubscriptionSubscriber.drainLoop(Operators.java:2399) reactor.core.publisher.Operators$MultiSubscriptionSubscriber.drain(Operators.java:2367) reactor.core.publisher.Operators$MultiSubscriptionSubscriber.cancel(Operators.java:2179) reactor.core.publisher.FluxBuffer$BufferExactSubscriber.cancel(FluxBuffer.java:121) reactor.core.publisher.FluxFlatMap$FlatMapMain.cancel(FluxFlatMap.java:359) reactor.core.publisher.MonoNext$NextSubscriber.cancel(MonoNext.java:114) reactor.core.publisher.FluxHandle$HandleSubscriber.cancel(FluxHandle.java:276) reactor.core.publisher.MonoFlatMap$FlatMapMain.cancel(MonoFlatMap.java:199) reactor.core.publisher.Operators.terminate(Operators.java:1277) reactor.core.publisher.MonoFlatMapMany$FlatMapManyMain.cancel(MonoFlatMapMany.java:131) reactor.core.publisher.FluxUsingWhen$UsingWhenSubscriber.cancel(FluxUsingWhen.java:326) reactor.core.publisher.MonoNext$NextSubscriber.cancel(MonoNext.java:114) reactor.core.publisher.Operators.set(Operators.java:1197) reactor.core.publisher.FluxMergeSequential$MergeSequentialInner.cancel(FluxMergeSequential.java:601) reactor.core.publisher.FluxMergeSequential$MergeSequentialMain.cancelAll(FluxMergeSequential.java:290) reactor.core.publisher.FluxMergeSequential$MergeSequentialMain.drain(FluxMergeSequential.java:385) reactor.core.publisher.FluxMergeSequential$MergeSequentialMain.innerNext(FluxMergeSequential.java:304) reactor.core.publisher.FluxMergeSequential$MergeSequentialInner.onNext(FluxMergeSequential.java:571) reactor.core.publisher.MonoNext$NextSubscriber.onNext(MonoNext.java:82) reactor.core.publisher.FluxUsingWhen$UsingWhenSubscriber.onNext(FluxUsingWhen.java:345) reactor.core.publisher.MonoFlatMapMany$FlatMapManyInner.onNext(MonoFlatMapMany.java:250) reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:158) reactor.core.publisher.FluxHandle$HandleSubscriber.onNext(FluxHandle.java:128) reactor.core.publisher.MonoNext$NextSubscriber.onNext(MonoNext.java:82) reactor.core.publisher.FluxFlatMap$FlatMapMain.tryEmitScalar(FluxFlatMap.java:489) reactor.core.publisher.FluxFlatMap$FlatMapMain.onNext(FluxFlatMap.java:422) reactor.core.publisher.FluxBuffer$BufferExactSubscriber.onComplete(FluxBuffer.java:185) reactor.core.publisher.Operators$MultiSubscriptionSubscriber.onComplete(Operators.java:2205) reactor.core.publisher.FluxUsingWhen$UsingWhenSubscriber.deferredComplete(FluxUsingWhen.java:392) reactor.core.publisher.FluxUsingWhen$CommitInner.onComplete(FluxUsingWhen.java:527) reactor.core.publisher.Operators$MultiSubscriptionSubscriber.onComplete(Operators.java:2205) reactor.core.publisher.FluxPeek$PeekSubscriber.onComplete(FluxPeek.java:260) reactor.core.publisher.Operators$MultiSubscriptionSubscriber.onComplete(Operators.java:2205) reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.onComplete(MonoIgnoreThen.java:209) reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.onComplete(MonoIgnoreThen.java:209) reactor.pool.SimpleDequePool.maybeRecycleAndDrain(SimpleDequePool.java:531) reactor.pool.SimpleDequePool$QueuePoolRecyclerInner.onComplete(SimpleDequePool.java:761) reactor.core.publisher.Operators.complete(Operators.java:137) reactor.core.publisher.MonoEmpty.subscribe(MonoEmpty.java:46) reactor.core.publisher.Mono.subscribe(Mono.java:4485) reactor.pool.SimpleDequePool$QueuePoolRecyclerMono.subscribe(SimpleDequePool.java:873) reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:52) reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:240) reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.onComplete(MonoIgnoreThen.java:203) reactor.core.publisher.FluxPeek$PeekSubscriber.onComplete(FluxPeek.java:260) reactor.core.publisher.Operators.complete(Operators.java:137) reactor.core.publisher.MonoEmpty.subscribe(MonoEmpty.java:46) reactor.core.publisher.Mono.subscribe(Mono.java:4485) reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:263) reactor.core.publisher.MonoIgnoreThen.subscribe(MonoIgnoreThen.java:51) reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:52) reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:240) reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.onComplete(MonoIgnoreThen.java:203) reactor.core.publisher.MonoIgnoreElements$IgnoreElementsSubscriber.onComplete(MonoIgnoreElements.java:89) reactor.core.publisher.FluxHandleFuseable$HandleFuseableSubscriber.onComplete(FluxHandleFuseable.java:238) reactor.core.publisher.MonoSupplier$MonoSupplierSubscription.request(MonoSupplier.java:148) reactor.core.publisher.FluxHandleFuseable$HandleFuseableSubscriber.request(FluxHandleFuseable.java:259) reactor.core.publisher.MonoIgnoreElements$IgnoreElementsSubscriber.onSubscribe(MonoIgnoreElements.java:72) reactor.core.publisher.FluxHandleFuseable$HandleFuseableSubscriber.onSubscribe(FluxHandleFuseable.java:163) reactor.core.publisher.MonoSupplier.subscribe(MonoSupplier.java:48) reactor.core.publisher.Mono.subscribe(Mono.java:4485) reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:263) reactor.core.publisher.MonoIgnoreThen.subscribe(MonoIgnoreThen.java:51) reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:52) reactor.core.publisher.Mono.subscribe(Mono.java:4485) reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onError(FluxOnErrorResume.java:103) reactor.core.publisher.MonoIgnoreElements$IgnoreElementsSubscriber.onError(MonoIgnoreElements.java:84) reactor.core.publisher.FluxMap$MapSubscriber.onError(FluxMap.java:134) reactor.core.publisher.FluxFilter$FilterSubscriber.onError(FluxFilter.java:157) reactor.core.publisher.FluxFilter$FilterConditionalSubscriber.onError(FluxFilter.java:291) reactor.core.publisher.FluxMap$MapConditionalSubscriber.onError(FluxMap.java:265) reactor.core.publisher.Operators.error(Operators.java:198) reactor.core.publisher.MonoError.subscribe(MonoError.java:53) reactor.core.publisher.MonoDeferContextual.subscribe(MonoDeferContextual.java:55) reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:52) reactor.core.publisher.Mono.subscribe(Mono.java:4485) reactor.core.publisher.FluxUsingWhen$UsingWhenSubscriber.onComplete(FluxUsingWhen.java:384) reactor.core.publisher.FluxFlatMap$FlatMapMain.checkTerminated(FluxFlatMap.java:847) reactor.core.publisher.FluxFlatMap$FlatMapMain.drainLoop(FluxFlatMap.java:609) reactor.core.publisher.FluxFlatMap$FlatMapMain.innerComplete(FluxFlatMap.java:895) reactor.core.publisher.FluxFlatMap$FlatMapInner.onComplete(FluxFlatMap.java:998) reactor.core.publisher.FluxHandle$HandleSubscriber.onComplete(FluxHandle.java:222) reactor.core.publisher.MonoFlatMapMany$FlatMapManyInner.onComplete(MonoFlatMapMany.java:260) reactor.core.publisher.FluxHandleFuseable$HandleFuseableSubscriber.onComplete(FluxHandleFuseable.java:238) reactor.core.publisher.FluxFilterFuseable$FilterFuseableConditionalSubscriber.onComplete(FluxFilterFuseable.java:391) reactor.core.publisher.FluxContextWrite$ContextWriteSubscriber.onComplete(FluxContextWrite.java:126) reactor.core.publisher.FluxPeekFuseable$PeekConditionalSubscriber.onComplete(FluxPeekFuseable.java:940) reactor.core.publisher.FluxPeekFuseable$PeekConditionalSubscriber.onComplete(FluxPeekFuseable.java:940) io.r2dbc.postgresql.util.FluxDiscardOnCancel$FluxDiscardOnCancelSubscriber.onComplete(FluxDiscardOnCancel.java:104) reactor.core.publisher.FluxDoFinally$DoFinallySubscriber.onComplete(FluxDoFinally.java:128) reactor.core.publisher.FluxHandle$HandleSubscriber.onComplete(FluxHandle.java:222) reactor.core.publisher.FluxCreate$BaseSink.complete(FluxCreate.java:460) reactor.core.publisher.FluxCreate$BufferAsyncSink.drain(FluxCreate.java:805) reactor.core.publisher.FluxCreate$BufferAsyncSink.complete(FluxCreate.java:753) reactor.core.publisher.FluxCreate$SerializedFluxSink.drainLoop(FluxCreate.java:247) reactor.core.publisher.FluxCreate$SerializedFluxSink.drain(FluxCreate.java:213) reactor.core.publisher.FluxCreate$SerializedFluxSink.complete(FluxCreate.java:204) io.r2dbc.postgresql.client.ReactorNettyClient$Conversation.complete(ReactorNettyClient.java:671) io.r2dbc.postgresql.client.ReactorNettyClient$BackendMessageSubscriber.emit(ReactorNettyClient.java:937) io.r2dbc.postgresql.client.ReactorNettyClient$BackendMessageSubscriber.onNext(ReactorNettyClient.java:813) io.r2dbc.postgresql.client.ReactorNettyClient$BackendMessageSubscriber.onNext(ReactorNettyClient.java:719) reactor.core.publisher.FluxHandle$HandleSubscriber.onNext(FluxHandle.java:128) reactor.core.publisher.FluxPeekFuseable$PeekConditionalSubscriber.onNext(FluxPeekFuseable.java:854) reactor.core.publisher.FluxMap$MapConditionalSubscriber.onNext(FluxMap.java:224) reactor.core.publisher.FluxMap$MapConditionalSubscriber.onNext(FluxMap.java:224) reactor.netty.channel.FluxReceive.drainReceiver(FluxReceive.java:294) reactor.netty.channel.FluxReceive.onInboundNext(FluxReceive.java:403) reactor.netty.channel.ChannelOperations.onInboundNext(ChannelOperations.java:411) reactor.netty.channel.ChannelOperationsHandler.channelRead(ChannelOperationsHandler.java:113) io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:346) io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:318) io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) io.netty.handler.ssl.SslHandler.unwrap(SslHandler.java:1382) io.netty.handler.ssl.SslHandler.decodeJdkCompatible(SslHandler.java:1245) io.netty.handler.ssl.SslHandler.decode(SslHandler.java:1294) io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:529) io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:468) io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:290) io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410) io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:440) io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919) io.netty.channel.epoll.AbstractEpollStreamChannel$EpollStreamUnsafe.epollInReady(AbstractEpollStreamChannel.java:800) io.netty.channel.epoll.EpollEventLoop.processReady(EpollEventLoop.java:499) io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:397) io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997) io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) java.base/java.lang.Thread.run(Unknown Source) ```
2023-02-26T19:13:30.200918569Z - io.netty.util.ResourceLeakDetector ```text 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: #1: io.netty.buffer.AdvancedLeakAwareByteBuf.writeCharSequence(AdvancedLeakAwareByteBuf.java:893) io.r2dbc.postgresql.util.ByteBufUtils.encode(ByteBufUtils.java:58) io.r2dbc.postgresql.codec.StringCodec.lambda$doEncode$0(StringCodec.java:96) reactor.core.publisher.MonoSupplier$MonoSupplierSubscription.request(MonoSupplier.java:126) reactor.core.publisher.Operators$BaseFluxToMonoOperator.request(Operators.java:2041) reactor.core.publisher.Operators$MultiSubscriptionSubscriber.set(Operators.java:2341) reactor.core.publisher.Operators$MultiSubscriptionSubscriber.onSubscribe(Operators.java:2215) reactor.core.publisher.Operators$BaseFluxToMonoOperator.onSubscribe(Operators.java:2025) reactor.core.publisher.MonoSupplier.subscribe(MonoSupplier.java:48) reactor.core.publisher.Mono.subscribe(Mono.java:4485) reactor.core.publisher.FluxConcatMapNoPrefetch$FluxConcatMapNoPrefetchSubscriber.onNext(FluxConcatMapNoPrefetch.java:206) reactor.core.publisher.FluxIterable$IterableSubscription.slowPath(FluxIterable.java:335) reactor.core.publisher.FluxIterable$IterableSubscription.request(FluxIterable.java:294) reactor.core.publisher.FluxConcatMapNoPrefetch$FluxConcatMapNoPrefetchSubscriber.innerComplete(FluxConcatMapNoPrefetch.java:274) reactor.core.publisher.FluxConcatMap$ConcatMapInner.onComplete(FluxConcatMap.java:887) reactor.core.publisher.Operators$BaseFluxToMonoOperator.completePossiblyEmpty(Operators.java:2072) reactor.core.publisher.MonoReduceSeed$ReduceSeedSubscriber.onComplete(MonoReduceSeed.java:163) reactor.core.publisher.MonoSupplier$MonoSupplierSubscription.request(MonoSupplier.java:148) reactor.core.publisher.Operators$BaseFluxToMonoOperator.request(Operators.java:2041) reactor.core.publisher.Operators$MultiSubscriptionSubscriber.request(Operators.java:2305) reactor.core.publisher.FluxConcatMapNoPrefetch$FluxConcatMapNoPrefetchSubscriber.request(FluxConcatMapNoPrefetch.java:338) reactor.core.publisher.Operators$BaseFluxToMonoOperator.request(Operators.java:2041) reactor.core.publisher.MonoFlatMapMany$FlatMapManyMain.onSubscribe(MonoFlatMapMany.java:141) reactor.core.publisher.Operators$BaseFluxToMonoOperator.onSubscribe(Operators.java:2025) reactor.core.publisher.FluxConcatMapNoPrefetch$FluxConcatMapNoPrefetchSubscriber.onSubscribe(FluxConcatMapNoPrefetch.java:164) reactor.core.publisher.FluxIterable.subscribe(FluxIterable.java:201) reactor.core.publisher.FluxIterable.subscribe(FluxIterable.java:83) reactor.core.publisher.Flux.subscribe(Flux.java:8671) reactor.core.publisher.FluxFlatMap$FlatMapMain.onNext(FluxFlatMap.java:427) reactor.core.publisher.FluxOnAssembly$OnAssemblySubscriber.onNext(FluxOnAssembly.java:539) reactor.core.publisher.FluxMap$MapSubscriber.onNext(FluxMap.java:122) reactor.core.publisher.FluxMap$MapSubscriber.onNext(FluxMap.java:122) reactor.core.publisher.Operators$ScalarSubscription.request(Operators.java:2545) reactor.core.publisher.FluxMap$MapSubscriber.request(FluxMap.java:164) reactor.core.publisher.FluxMap$MapSubscriber.request(FluxMap.java:164) reactor.core.publisher.FluxOnAssembly$OnAssemblySubscriber.request(FluxOnAssembly.java:649) reactor.core.publisher.FluxFlatMap$FlatMapMain.onSubscribe(FluxFlatMap.java:371) reactor.core.publisher.FluxOnAssembly$OnAssemblySubscriber.onSubscribe(FluxOnAssembly.java:633) reactor.core.publisher.FluxMap$MapSubscriber.onSubscribe(FluxMap.java:92) reactor.core.publisher.FluxMap$MapSubscriber.onSubscribe(FluxMap.java:92) reactor.core.publisher.FluxJust.subscribe(FluxJust.java:68) reactor.core.publisher.FluxDefer.subscribe(FluxDefer.java:54) reactor.core.publisher.Flux.subscribe(Flux.java:8671) reactor.core.publisher.FluxUsingWhen$ResourceSubscriber.onNext(FluxUsingWhen.java:195) reactor.core.publisher.FluxMap$MapSubscriber.onNext(FluxMap.java:122) reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onNext(FluxOnErrorResume.java:79) reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onNext(FluxOnErrorResume.java:79) reactor.core.publisher.FluxRetry$RetrySubscriber.onNext(FluxRetry.java:87) reactor.core.publisher.MonoFlatMap$FlatMapMain.secondComplete(MonoFlatMap.java:245) reactor.core.publisher.MonoFlatMap$FlatMapInner.onNext(MonoFlatMap.java:305) io.r2dbc.pool.MonoDiscardOnCancel$MonoDiscardOnCancelSubscriber.onNext(MonoDiscardOnCancel.java:92) reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onNext(FluxOnErrorResume.java:79) reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.complete(MonoIgnoreThen.java:292) reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.onNext(MonoIgnoreThen.java:187) reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:236) reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.onComplete(MonoIgnoreThen.java:203) reactor.core.publisher.MonoIgnoreElements$IgnoreElementsSubscriber.onComplete(MonoIgnoreElements.java:89) reactor.core.publisher.FluxHandleFuseable$HandleFuseableSubscriber.onComplete(FluxHandleFuseable.java:238) reactor.core.publisher.MonoSupplier$MonoSupplierSubscription.request(MonoSupplier.java:148) reactor.core.publisher.FluxHandleFuseable$HandleFuseableSubscriber.request(FluxHandleFuseable.java:259) reactor.core.publisher.MonoIgnoreElements$IgnoreElementsSubscriber.onSubscribe(MonoIgnoreElements.java:72) reactor.core.publisher.FluxHandleFuseable$HandleFuseableSubscriber.onSubscribe(FluxHandleFuseable.java:163) reactor.core.publisher.MonoSupplier.subscribe(MonoSupplier.java:48) reactor.core.publisher.Mono.subscribe(Mono.java:4485) reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:263) reactor.core.publisher.MonoIgnoreThen.subscribe(MonoIgnoreThen.java:51) reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) io.r2dbc.pool.MonoDiscardOnCancel.subscribe(MonoDiscardOnCancel.java:50) reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:165) reactor.pool.AbstractPool$Borrower.deliver(AbstractPool.java:467) reactor.pool.SimpleDequePool.lambda$drainLoop$8(SimpleDequePool.java:368) reactor.core.scheduler.ImmediateScheduler.schedule(ImmediateScheduler.java:52) reactor.pool.SimpleDequePool.drainLoop(SimpleDequePool.java:368) reactor.pool.SimpleDequePool.drain(SimpleDequePool.java:300) reactor.pool.SimpleDequePool.maybeRecycleAndDrain(SimpleDequePool.java:532) reactor.pool.SimpleDequePool$QueuePoolRecyclerInner.onComplete(SimpleDequePool.java:761) reactor.core.publisher.Operators.complete(Operators.java:137) reactor.core.publisher.MonoEmpty.subscribe(MonoEmpty.java:46) reactor.core.publisher.Mono.subscribe(Mono.java:4485) reactor.pool.SimpleDequePool$QueuePoolRecyclerMono.subscribe(SimpleDequePool.java:873) reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:52) reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:240) reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.onComplete(MonoIgnoreThen.java:203) reactor.core.publisher.FluxPeek$PeekSubscriber.onComplete(FluxPeek.java:260) reactor.core.publisher.Operators.complete(Operators.java:137) reactor.core.publisher.MonoEmpty.subscribe(MonoEmpty.java:46) reactor.core.publisher.Mono.subscribe(Mono.java:4485) reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:263) reactor.core.publisher.MonoIgnoreThen.subscribe(MonoIgnoreThen.java:51) reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:52) reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:240) reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.onComplete(MonoIgnoreThen.java:203) reactor.core.publisher.MonoIgnoreElements$IgnoreElementsSubscriber.onComplete(MonoIgnoreElements.java:89) reactor.core.publisher.FluxHandleFuseable$HandleFuseableSubscriber.onComplete(FluxHandleFuseable.java:238) reactor.core.publisher.MonoSupplier$MonoSupplierSubscription.request(MonoSupplier.java:148) reactor.core.publisher.FluxHandleFuseable$HandleFuseableSubscriber.request(FluxHandleFuseable.java:259) reactor.core.publisher.MonoIgnoreElements$IgnoreElementsSubscriber.onSubscribe(MonoIgnoreElements.java:72) reactor.core.publisher.FluxHandleFuseable$HandleFuseableSubscriber.onSubscribe(FluxHandleFuseable.java:163) reactor.core.publisher.MonoSupplier.subscribe(MonoSupplier.java:48) reactor.core.publisher.Mono.subscribe(Mono.java:4485) reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:263) reactor.core.publisher.MonoIgnoreThen.subscribe(MonoIgnoreThen.java:51) reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:52) reactor.core.publisher.Mono.subscribe(Mono.java:4485) reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onError(FluxOnErrorResume.java:103) reactor.core.publisher.MonoIgnoreElements$IgnoreElementsSubscriber.onError(MonoIgnoreElements.java:84) reactor.core.publisher.FluxMap$MapSubscriber.onError(FluxMap.java:134) reactor.core.publisher.FluxFilter$FilterSubscriber.onError(FluxFilter.java:157) reactor.core.publisher.FluxFilter$FilterConditionalSubscriber.onError(FluxFilter.java:291) reactor.core.publisher.FluxMap$MapConditionalSubscriber.onError(FluxMap.java:265) reactor.core.publisher.Operators.error(Operators.java:198) reactor.core.publisher.MonoError.subscribe(MonoError.java:53) reactor.core.publisher.MonoDeferContextual.subscribe(MonoDeferContextual.java:55) reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:52) reactor.core.publisher.Mono.subscribe(Mono.java:4485) reactor.core.publisher.FluxUsingWhen$UsingWhenSubscriber.onComplete(FluxUsingWhen.java:384) reactor.core.publisher.FluxFlatMap$FlatMapMain.checkTerminated(FluxFlatMap.java:847) reactor.core.publisher.FluxFlatMap$FlatMapMain.drainLoop(FluxFlatMap.java:609) reactor.core.publisher.FluxFlatMap$FlatMapMain.innerComplete(FluxFlatMap.java:895) reactor.core.publisher.FluxFlatMap$FlatMapInner.onComplete(FluxFlatMap.java:998) reactor.core.publisher.FluxHandle$HandleSubscriber.onComplete(FluxHandle.java:222) reactor.core.publisher.MonoFlatMapMany$FlatMapManyInner.onComplete(MonoFlatMapMany.java:260) reactor.core.publisher.FluxHandleFuseable$HandleFuseableSubscriber.onComplete(FluxHandleFuseable.java:238) reactor.core.publisher.FluxFilterFuseable$FilterFuseableConditionalSubscriber.onComplete(FluxFilterFuseable.java:391) reactor.core.publisher.FluxContextWrite$ContextWriteSubscriber.onComplete(FluxContextWrite.java:126) reactor.core.publisher.FluxPeekFuseable$PeekConditionalSubscriber.onComplete(FluxPeekFuseable.java:940) reactor.core.publisher.FluxPeekFuseable$PeekConditionalSubscriber.onComplete(FluxPeekFuseable.java:940) io.r2dbc.postgresql.util.FluxDiscardOnCancel$FluxDiscardOnCancelSubscriber.onComplete(FluxDiscardOnCancel.java:104) reactor.core.publisher.FluxDoFinally$DoFinallySubscriber.onComplete(FluxDoFinally.java:128) reactor.core.publisher.FluxHandle$HandleSubscriber.onComplete(FluxHandle.java:222) reactor.core.publisher.FluxCreate$BaseSink.complete(FluxCreate.java:460) reactor.core.publisher.FluxCreate$BufferAsyncSink.drain(FluxCreate.java:805) reactor.core.publisher.FluxCreate$BufferAsyncSink.complete(FluxCreate.java:753) reactor.core.publisher.FluxCreate$SerializedFluxSink.drainLoop(FluxCreate.java:247) reactor.core.publisher.FluxCreate$SerializedFluxSink.drain(FluxCreate.java:213) reactor.core.publisher.FluxCreate$SerializedFluxSink.complete(FluxCreate.java:204) io.r2dbc.postgresql.client.ReactorNettyClient$Conversation.complete(ReactorNettyClient.java:671) io.r2dbc.postgresql.client.ReactorNettyClient$BackendMessageSubscriber.emit(ReactorNettyClient.java:937) io.r2dbc.postgresql.client.ReactorNettyClient$BackendMessageSubscriber.onNext(ReactorNettyClient.java:813) io.r2dbc.postgresql.client.ReactorNettyClient$BackendMessageSubscriber.onNext(ReactorNettyClient.java:719) reactor.core.publisher.FluxHandle$HandleSubscriber.onNext(FluxHandle.java:128) reactor.core.publisher.FluxPeekFuseable$PeekConditionalSubscriber.onNext(FluxPeekFuseable.java:854) reactor.core.publisher.FluxMap$MapConditionalSubscriber.onNext(FluxMap.java:224) reactor.core.publisher.FluxMap$MapConditionalSubscriber.onNext(FluxMap.java:224) reactor.netty.channel.FluxReceive.drainReceiver(FluxReceive.java:294) reactor.netty.channel.FluxReceive.onInboundNext(FluxReceive.java:403) reactor.netty.channel.ChannelOperations.onInboundNext(ChannelOperations.java:411) reactor.netty.channel.ChannelOperationsHandler.channelRead(ChannelOperationsHandler.java:113) io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:346) io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:318) io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) io.netty.handler.ssl.SslHandler.unwrap(SslHandler.java:1382) io.netty.handler.ssl.SslHandler.decodeJdkCompatible(SslHandler.java:1245) io.netty.handler.ssl.SslHandler.decode(SslHandler.java:1294) io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:529) io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:468) io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:290) io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410) io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:440) io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919) io.netty.channel.epoll.AbstractEpollStreamChannel$EpollStreamUnsafe.epollInReady(AbstractEpollStreamChannel.java:800) io.netty.channel.epoll.EpollEventLoop.processReady(EpollEventLoop.java:499) io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:397) io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997) io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) java.base/java.lang.Thread.run(Unknown Source) Created at: io.netty.buffer.PooledByteBufAllocator.newDirectBuffer(PooledByteBufAllocator.java:403) io.netty.buffer.AbstractByteBufAllocator.directBuffer(AbstractByteBufAllocator.java:188) io.netty.buffer.AbstractByteBufAllocator.directBuffer(AbstractByteBufAllocator.java:174) io.netty.buffer.AbstractByteBufAllocator.buffer(AbstractByteBufAllocator.java:108) io.r2dbc.postgresql.util.ByteBufUtils.encode(ByteBufUtils.java:57) io.r2dbc.postgresql.codec.StringCodec.lambda$doEncode$0(StringCodec.java:96) reactor.core.publisher.MonoSupplier$MonoSupplierSubscription.request(MonoSupplier.java:126) reactor.core.publisher.Operators$BaseFluxToMonoOperator.request(Operators.java:2041) reactor.core.publisher.Operators$MultiSubscriptionSubscriber.set(Operators.java:2341) reactor.core.publisher.Operators$MultiSubscriptionSubscriber.onSubscribe(Operators.java:2215) reactor.core.publisher.Operators$BaseFluxToMonoOperator.onSubscribe(Operators.java:2025) reactor.core.publisher.MonoSupplier.subscribe(MonoSupplier.java:48) reactor.core.publisher.Mono.subscribe(Mono.java:4485) reactor.core.publisher.FluxConcatMapNoPrefetch$FluxConcatMapNoPrefetchSubscriber.onNext(FluxConcatMapNoPrefetch.java:206) reactor.core.publisher.FluxIterable$IterableSubscription.slowPath(FluxIterable.java:335) reactor.core.publisher.FluxIterable$IterableSubscription.request(FluxIterable.java:294) reactor.core.publisher.FluxConcatMapNoPrefetch$FluxConcatMapNoPrefetchSubscriber.innerComplete(FluxConcatMapNoPrefetch.java:274) reactor.core.publisher.FluxConcatMap$ConcatMapInner.onComplete(FluxConcatMap.java:887) reactor.core.publisher.Operators$BaseFluxToMonoOperator.completePossiblyEmpty(Operators.java:2072) reactor.core.publisher.MonoReduceSeed$ReduceSeedSubscriber.onComplete(MonoReduceSeed.java:163) reactor.core.publisher.MonoSupplier$MonoSupplierSubscription.request(MonoSupplier.java:148) reactor.core.publisher.Operators$BaseFluxToMonoOperator.request(Operators.java:2041) reactor.core.publisher.Operators$MultiSubscriptionSubscriber.request(Operators.java:2305) reactor.core.publisher.FluxConcatMapNoPrefetch$FluxConcatMapNoPrefetchSubscriber.request(FluxConcatMapNoPrefetch.java:338) reactor.core.publisher.Operators$BaseFluxToMonoOperator.request(Operators.java:2041) reactor.core.publisher.MonoFlatMapMany$FlatMapManyMain.onSubscribe(MonoFlatMapMany.java:141) reactor.core.publisher.Operators$BaseFluxToMonoOperator.onSubscribe(Operators.java:2025) reactor.core.publisher.FluxConcatMapNoPrefetch$FluxConcatMapNoPrefetchSubscriber.onSubscribe(FluxConcatMapNoPrefetch.java:164) reactor.core.publisher.FluxIterable.subscribe(FluxIterable.java:201) reactor.core.publisher.FluxIterable.subscribe(FluxIterable.java:83) reactor.core.publisher.Flux.subscribe(Flux.java:8671) reactor.core.publisher.FluxFlatMap$FlatMapMain.onNext(FluxFlatMap.java:427) reactor.core.publisher.FluxOnAssembly$OnAssemblySubscriber.onNext(FluxOnAssembly.java:539) reactor.core.publisher.FluxMap$MapSubscriber.onNext(FluxMap.java:122) reactor.core.publisher.FluxMap$MapSubscriber.onNext(FluxMap.java:122) reactor.core.publisher.Operators$ScalarSubscription.request(Operators.java:2545) reactor.core.publisher.FluxMap$MapSubscriber.request(FluxMap.java:164) reactor.core.publisher.FluxMap$MapSubscriber.request(FluxMap.java:164) reactor.core.publisher.FluxOnAssembly$OnAssemblySubscriber.request(FluxOnAssembly.java:649) reactor.core.publisher.FluxFlatMap$FlatMapMain.onSubscribe(FluxFlatMap.java:371) reactor.core.publisher.FluxOnAssembly$OnAssemblySubscriber.onSubscribe(FluxOnAssembly.java:633) reactor.core.publisher.FluxMap$MapSubscriber.onSubscribe(FluxMap.java:92) reactor.core.publisher.FluxMap$MapSubscriber.onSubscribe(FluxMap.java:92) reactor.core.publisher.FluxJust.subscribe(FluxJust.java:68) reactor.core.publisher.FluxDefer.subscribe(FluxDefer.java:54) reactor.core.publisher.Flux.subscribe(Flux.java:8671) reactor.core.publisher.FluxUsingWhen$ResourceSubscriber.onNext(FluxUsingWhen.java:195) reactor.core.publisher.FluxMap$MapSubscriber.onNext(FluxMap.java:122) reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onNext(FluxOnErrorResume.java:79) reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onNext(FluxOnErrorResume.java:79) reactor.core.publisher.FluxRetry$RetrySubscriber.onNext(FluxRetry.java:87) reactor.core.publisher.MonoFlatMap$FlatMapMain.secondComplete(MonoFlatMap.java:245) reactor.core.publisher.MonoFlatMap$FlatMapInner.onNext(MonoFlatMap.java:305) io.r2dbc.pool.MonoDiscardOnCancel$MonoDiscardOnCancelSubscriber.onNext(MonoDiscardOnCancel.java:92) reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onNext(FluxOnErrorResume.java:79) reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.complete(MonoIgnoreThen.java:292) reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.onNext(MonoIgnoreThen.java:187) reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:236) reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.onComplete(MonoIgnoreThen.java:203) reactor.core.publisher.MonoIgnoreElements$IgnoreElementsSubscriber.onComplete(MonoIgnoreElements.java:89) reactor.core.publisher.FluxHandleFuseable$HandleFuseableSubscriber.onComplete(FluxHandleFuseable.java:238) reactor.core.publisher.MonoSupplier$MonoSupplierSubscription.request(MonoSupplier.java:148) reactor.core.publisher.FluxHandleFuseable$HandleFuseableSubscriber.request(FluxHandleFuseable.java:259) reactor.core.publisher.MonoIgnoreElements$IgnoreElementsSubscriber.onSubscribe(MonoIgnoreElements.java:72) reactor.core.publisher.FluxHandleFuseable$HandleFuseableSubscriber.onSubscribe(FluxHandleFuseable.java:163) reactor.core.publisher.MonoSupplier.subscribe(MonoSupplier.java:48) reactor.core.publisher.Mono.subscribe(Mono.java:4485) reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:263) reactor.core.publisher.MonoIgnoreThen.subscribe(MonoIgnoreThen.java:51) reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) io.r2dbc.pool.MonoDiscardOnCancel.subscribe(MonoDiscardOnCancel.java:50) reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:165) reactor.pool.AbstractPool$Borrower.deliver(AbstractPool.java:467) reactor.pool.SimpleDequePool.lambda$drainLoop$8(SimpleDequePool.java:368) reactor.core.scheduler.ImmediateScheduler.schedule(ImmediateScheduler.java:52) reactor.pool.SimpleDequePool.drainLoop(SimpleDequePool.java:368) reactor.pool.SimpleDequePool.drain(SimpleDequePool.java:300) reactor.pool.SimpleDequePool.maybeRecycleAndDrain(SimpleDequePool.java:532) reactor.pool.SimpleDequePool$QueuePoolRecyclerInner.onComplete(SimpleDequePool.java:761) reactor.core.publisher.Operators.complete(Operators.java:137) reactor.core.publisher.MonoEmpty.subscribe(MonoEmpty.java:46) reactor.core.publisher.Mono.subscribe(Mono.java:4485) reactor.pool.SimpleDequePool$QueuePoolRecyclerMono.subscribe(SimpleDequePool.java:873) reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:52) reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:240) reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.onComplete(MonoIgnoreThen.java:203) reactor.core.publisher.FluxPeek$PeekSubscriber.onComplete(FluxPeek.java:260) reactor.core.publisher.Operators.complete(Operators.java:137) reactor.core.publisher.MonoEmpty.subscribe(MonoEmpty.java:46) reactor.core.publisher.Mono.subscribe(Mono.java:4485) reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:263) reactor.core.publisher.MonoIgnoreThen.subscribe(MonoIgnoreThen.java:51) reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:52) reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:240) reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.onComplete(MonoIgnoreThen.java:203) reactor.core.publisher.MonoIgnoreElements$IgnoreElementsSubscriber.onComplete(MonoIgnoreElements.java:89) reactor.core.publisher.FluxHandleFuseable$HandleFuseableSubscriber.onComplete(FluxHandleFuseable.java:238) reactor.core.publisher.MonoSupplier$MonoSupplierSubscription.request(MonoSupplier.java:148) reactor.core.publisher.FluxHandleFuseable$HandleFuseableSubscriber.request(FluxHandleFuseable.java:259) reactor.core.publisher.MonoIgnoreElements$IgnoreElementsSubscriber.onSubscribe(MonoIgnoreElements.java:72) reactor.core.publisher.FluxHandleFuseable$HandleFuseableSubscriber.onSubscribe(FluxHandleFuseable.java:163) reactor.core.publisher.MonoSupplier.subscribe(MonoSupplier.java:48) reactor.core.publisher.Mono.subscribe(Mono.java:4485) reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:263) reactor.core.publisher.MonoIgnoreThen.subscribe(MonoIgnoreThen.java:51) reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:52) reactor.core.publisher.Mono.subscribe(Mono.java:4485) reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onError(FluxOnErrorResume.java:103) reactor.core.publisher.MonoIgnoreElements$IgnoreElementsSubscriber.onError(MonoIgnoreElements.java:84) reactor.core.publisher.FluxMap$MapSubscriber.onError(FluxMap.java:134) reactor.core.publisher.FluxFilter$FilterSubscriber.onError(FluxFilter.java:157) reactor.core.publisher.FluxFilter$FilterConditionalSubscriber.onError(FluxFilter.java:291) reactor.core.publisher.FluxMap$MapConditionalSubscriber.onError(FluxMap.java:265) reactor.core.publisher.Operators.error(Operators.java:198) reactor.core.publisher.MonoError.subscribe(MonoError.java:53) reactor.core.publisher.MonoDeferContextual.subscribe(MonoDeferContextual.java:55) reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:52) reactor.core.publisher.Mono.subscribe(Mono.java:4485) reactor.core.publisher.FluxUsingWhen$UsingWhenSubscriber.onComplete(FluxUsingWhen.java:384) reactor.core.publisher.FluxFlatMap$FlatMapMain.checkTerminated(FluxFlatMap.java:847) reactor.core.publisher.FluxFlatMap$FlatMapMain.drainLoop(FluxFlatMap.java:609) reactor.core.publisher.FluxFlatMap$FlatMapMain.innerComplete(FluxFlatMap.java:895) reactor.core.publisher.FluxFlatMap$FlatMapInner.onComplete(FluxFlatMap.java:998) reactor.core.publisher.FluxHandle$HandleSubscriber.onComplete(FluxHandle.java:222) reactor.core.publisher.MonoFlatMapMany$FlatMapManyInner.onComplete(MonoFlatMapMany.java:260) reactor.core.publisher.FluxHandleFuseable$HandleFuseableSubscriber.onComplete(FluxHandleFuseable.java:238) reactor.core.publisher.FluxFilterFuseable$FilterFuseableConditionalSubscriber.onComplete(FluxFilterFuseable.java:391) reactor.core.publisher.FluxContextWrite$ContextWriteSubscriber.onComplete(FluxContextWrite.java:126) reactor.core.publisher.FluxPeekFuseable$PeekConditionalSubscriber.onComplete(FluxPeekFuseable.java:940) reactor.core.publisher.FluxPeekFuseable$PeekConditionalSubscriber.onComplete(FluxPeekFuseable.java:940) io.r2dbc.postgresql.util.FluxDiscardOnCancel$FluxDiscardOnCancelSubscriber.onComplete(FluxDiscardOnCancel.java:104) reactor.core.publisher.FluxDoFinally$DoFinallySubscriber.onComplete(FluxDoFinally.java:128) reactor.core.publisher.FluxHandle$HandleSubscriber.onComplete(FluxHandle.java:222) reactor.core.publisher.FluxCreate$BaseSink.complete(FluxCreate.java:460) reactor.core.publisher.FluxCreate$BufferAsyncSink.drain(FluxCreate.java:805) reactor.core.publisher.FluxCreate$BufferAsyncSink.complete(FluxCreate.java:753) reactor.core.publisher.FluxCreate$SerializedFluxSink.drainLoop(FluxCreate.java:247) reactor.core.publisher.FluxCreate$SerializedFluxSink.drain(FluxCreate.java:213) reactor.core.publisher.FluxCreate$SerializedFluxSink.complete(FluxCreate.java:204) io.r2dbc.postgresql.client.ReactorNettyClient$Conversation.complete(ReactorNettyClient.java:671) io.r2dbc.postgresql.client.ReactorNettyClient$BackendMessageSubscriber.emit(ReactorNettyClient.java:937) io.r2dbc.postgresql.client.ReactorNettyClient$BackendMessageSubscriber.onNext(ReactorNettyClient.java:813) io.r2dbc.postgresql.client.ReactorNettyClient$BackendMessageSubscriber.onNext(ReactorNettyClient.java:719) reactor.core.publisher.FluxHandle$HandleSubscriber.onNext(FluxHandle.java:128) reactor.core.publisher.FluxPeekFuseable$PeekConditionalSubscriber.onNext(FluxPeekFuseable.java:854) reactor.core.publisher.FluxMap$MapConditionalSubscriber.onNext(FluxMap.java:224) reactor.core.publisher.FluxMap$MapConditionalSubscriber.onNext(FluxMap.java:224) reactor.netty.channel.FluxReceive.drainReceiver(FluxReceive.java:294) reactor.netty.channel.FluxReceive.onInboundNext(FluxReceive.java:403) reactor.netty.channel.ChannelOperations.onInboundNext(ChannelOperations.java:411) reactor.netty.channel.ChannelOperationsHandler.channelRead(ChannelOperationsHandler.java:113) io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:346) io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:318) io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) io.netty.handler.ssl.SslHandler.unwrap(SslHandler.java:1382) io.netty.handler.ssl.SslHandler.decodeJdkCompatible(SslHandler.java:1245) io.netty.handler.ssl.SslHandler.decode(SslHandler.java:1294) io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:529) io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:468) io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:290) io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410) io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:440) io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919) io.netty.channel.epoll.AbstractEpollStreamChannel$EpollStreamUnsafe.epollInReady(AbstractEpollStreamChannel.java:800) io.netty.channel.epoll.EpollEventLoop.processReady(EpollEventLoop.java:499) io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:397) io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997) io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) java.base/java.lang.Thread.run(Unknown Source) ```
2023-02-26T19:13:32.580323591Z - io.netty.util.ResourceLeakDetector ```text 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: #1: io.netty.buffer.AdvancedLeakAwareByteBuf.order(AdvancedLeakAwareByteBuf.java:71) io.netty.buffer.CompositeByteBuf.newComponent(CompositeByteBuf.java:346) io.netty.buffer.CompositeByteBuf.addComponent0(CompositeByteBuf.java:287) io.netty.buffer.CompositeByteBuf.addComponent(CompositeByteBuf.java:265) io.netty.buffer.CompositeByteBuf.addComponent(CompositeByteBuf.java:222) io.r2dbc.postgresql.PostgresqlStatement.lambda$null$9(PostgresqlStatement.java:276) reactor.core.publisher.MonoReduceSeed$ReduceSeedSubscriber.onNext(MonoReduceSeed.java:116) reactor.core.publisher.MonoSupplier$MonoSupplierSubscription.request(MonoSupplier.java:145) reactor.core.publisher.Operators$BaseFluxToMonoOperator.request(Operators.java:2041) reactor.core.publisher.Operators$MultiSubscriptionSubscriber.request(Operators.java:2305) reactor.core.publisher.FluxConcatMapNoPrefetch$FluxConcatMapNoPrefetchSubscriber.request(FluxConcatMapNoPrefetch.java:338) reactor.core.publisher.Operators$BaseFluxToMonoOperator.request(Operators.java:2041) reactor.core.publisher.MonoFlatMapMany$FlatMapManyMain.onSubscribe(MonoFlatMapMany.java:141) reactor.core.publisher.Operators$BaseFluxToMonoOperator.onSubscribe(Operators.java:2025) reactor.core.publisher.FluxConcatMapNoPrefetch$FluxConcatMapNoPrefetchSubscriber.onSubscribe(FluxConcatMapNoPrefetch.java:164) reactor.core.publisher.FluxIterable.subscribe(FluxIterable.java:201) reactor.core.publisher.FluxIterable.subscribe(FluxIterable.java:83) reactor.core.publisher.Flux.subscribe(Flux.java:8671) reactor.core.publisher.FluxFlatMap$FlatMapMain.onNext(FluxFlatMap.java:427) reactor.core.publisher.FluxOnAssembly$OnAssemblySubscriber.onNext(FluxOnAssembly.java:539) reactor.core.publisher.FluxMap$MapSubscriber.onNext(FluxMap.java:122) reactor.core.publisher.FluxMap$MapSubscriber.onNext(FluxMap.java:122) reactor.core.publisher.Operators$ScalarSubscription.request(Operators.java:2545) reactor.core.publisher.FluxMap$MapSubscriber.request(FluxMap.java:164) reactor.core.publisher.FluxMap$MapSubscriber.request(FluxMap.java:164) reactor.core.publisher.FluxOnAssembly$OnAssemblySubscriber.request(FluxOnAssembly.java:649) reactor.core.publisher.FluxFlatMap$FlatMapMain.onSubscribe(FluxFlatMap.java:371) reactor.core.publisher.FluxOnAssembly$OnAssemblySubscriber.onSubscribe(FluxOnAssembly.java:633) reactor.core.publisher.FluxMap$MapSubscriber.onSubscribe(FluxMap.java:92) reactor.core.publisher.FluxMap$MapSubscriber.onSubscribe(FluxMap.java:92) reactor.core.publisher.FluxJust.subscribe(FluxJust.java:68) reactor.core.publisher.FluxDefer.subscribe(FluxDefer.java:54) reactor.core.publisher.Flux.subscribe(Flux.java:8671) reactor.core.publisher.FluxUsingWhen$ResourceSubscriber.onNext(FluxUsingWhen.java:195) reactor.core.publisher.FluxMap$MapSubscriber.onNext(FluxMap.java:122) reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onNext(FluxOnErrorResume.java:79) reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onNext(FluxOnErrorResume.java:79) reactor.core.publisher.FluxRetry$RetrySubscriber.onNext(FluxRetry.java:87) reactor.core.publisher.MonoFlatMap$FlatMapMain.secondComplete(MonoFlatMap.java:245) reactor.core.publisher.MonoFlatMap$FlatMapInner.onNext(MonoFlatMap.java:305) io.r2dbc.pool.MonoDiscardOnCancel$MonoDiscardOnCancelSubscriber.onNext(MonoDiscardOnCancel.java:92) reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onNext(FluxOnErrorResume.java:79) reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.complete(MonoIgnoreThen.java:292) reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.onNext(MonoIgnoreThen.java:187) reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:236) reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.onComplete(MonoIgnoreThen.java:203) reactor.core.publisher.MonoIgnoreElements$IgnoreElementsSubscriber.onComplete(MonoIgnoreElements.java:89) reactor.core.publisher.FluxHandleFuseable$HandleFuseableSubscriber.onComplete(FluxHandleFuseable.java:238) reactor.core.publisher.MonoSupplier$MonoSupplierSubscription.request(MonoSupplier.java:148) reactor.core.publisher.FluxHandleFuseable$HandleFuseableSubscriber.request(FluxHandleFuseable.java:259) reactor.core.publisher.MonoIgnoreElements$IgnoreElementsSubscriber.onSubscribe(MonoIgnoreElements.java:72) reactor.core.publisher.FluxHandleFuseable$HandleFuseableSubscriber.onSubscribe(FluxHandleFuseable.java:163) reactor.core.publisher.MonoSupplier.subscribe(MonoSupplier.java:48) reactor.core.publisher.Mono.subscribe(Mono.java:4485) reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:263) reactor.core.publisher.MonoIgnoreThen.subscribe(MonoIgnoreThen.java:51) reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) io.r2dbc.pool.MonoDiscardOnCancel.subscribe(MonoDiscardOnCancel.java:50) reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:165) reactor.pool.AbstractPool$Borrower.deliver(AbstractPool.java:467) reactor.pool.SimpleDequePool.lambda$drainLoop$8(SimpleDequePool.java:368) reactor.core.scheduler.ImmediateScheduler.schedule(ImmediateScheduler.java:52) reactor.pool.SimpleDequePool.drainLoop(SimpleDequePool.java:368) reactor.pool.SimpleDequePool.drain(SimpleDequePool.java:300) reactor.pool.SimpleDequePool.maybeRecycleAndDrain(SimpleDequePool.java:532) reactor.pool.SimpleDequePool$QueuePoolRecyclerInner.onComplete(SimpleDequePool.java:761) reactor.core.publisher.Operators.complete(Operators.java:137) reactor.core.publisher.MonoEmpty.subscribe(MonoEmpty.java:46) reactor.core.publisher.Mono.subscribe(Mono.java:4485) reactor.pool.SimpleDequePool$QueuePoolRecyclerMono.subscribe(SimpleDequePool.java:873) reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:52) reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:240) reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.onComplete(MonoIgnoreThen.java:203) reactor.core.publisher.FluxPeek$PeekSubscriber.onComplete(FluxPeek.java:260) reactor.core.publisher.Operators.complete(Operators.java:137) reactor.core.publisher.MonoEmpty.subscribe(MonoEmpty.java:46) reactor.core.publisher.Mono.subscribe(Mono.java:4485) reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:263) reactor.core.publisher.MonoIgnoreThen.subscribe(MonoIgnoreThen.java:51) reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:52) reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:240) reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.onComplete(MonoIgnoreThen.java:203) reactor.core.publisher.MonoIgnoreElements$IgnoreElementsSubscriber.onComplete(MonoIgnoreElements.java:89) reactor.core.publisher.FluxHandleFuseable$HandleFuseableSubscriber.onComplete(FluxHandleFuseable.java:238) reactor.core.publisher.MonoSupplier$MonoSupplierSubscription.request(MonoSupplier.java:148) reactor.core.publisher.FluxHandleFuseable$HandleFuseableSubscriber.request(FluxHandleFuseable.java:259) reactor.core.publisher.MonoIgnoreElements$IgnoreElementsSubscriber.onSubscribe(MonoIgnoreElements.java:72) reactor.core.publisher.FluxHandleFuseable$HandleFuseableSubscriber.onSubscribe(FluxHandleFuseable.java:163) reactor.core.publisher.MonoSupplier.subscribe(MonoSupplier.java:48) reactor.core.publisher.Mono.subscribe(Mono.java:4485) reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:263) reactor.core.publisher.MonoIgnoreThen.subscribe(MonoIgnoreThen.java:51) reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:52) reactor.core.publisher.Mono.subscribe(Mono.java:4485) reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onError(FluxOnErrorResume.java:103) reactor.core.publisher.MonoIgnoreElements$IgnoreElementsSubscriber.onError(MonoIgnoreElements.java:84) reactor.core.publisher.FluxMap$MapSubscriber.onError(FluxMap.java:134) reactor.core.publisher.FluxFilter$FilterSubscriber.onError(FluxFilter.java:157) reactor.core.publisher.FluxFilter$FilterConditionalSubscriber.onError(FluxFilter.java:291) reactor.core.publisher.FluxMap$MapConditionalSubscriber.onError(FluxMap.java:265) reactor.core.publisher.Operators.error(Operators.java:198) reactor.core.publisher.MonoError.subscribe(MonoError.java:53) reactor.core.publisher.MonoDeferContextual.subscribe(MonoDeferContextual.java:55) reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:52) reactor.core.publisher.FluxFromMonoOperator.subscribe(FluxFromMonoOperator.java:83) reactor.core.publisher.FluxUsingWhen$UsingWhenSubscriber.cancel(FluxUsingWhen.java:330) reactor.core.publisher.Operators$DeferredSubscription.cancel(Operators.java:1670) reactor.core.publisher.FluxUsingWhen$ResourceSubscriber.cancel(FluxUsingWhen.java:248) reactor.core.publisher.Operators$MultiSubscriptionSubscriber.drainLoop(Operators.java:2399) reactor.core.publisher.Operators$MultiSubscriptionSubscriber.drain(Operators.java:2367) reactor.core.publisher.Operators$MultiSubscriptionSubscriber.cancel(Operators.java:2179) reactor.core.publisher.FluxBuffer$BufferExactSubscriber.cancel(FluxBuffer.java:121) reactor.core.publisher.FluxFlatMap$FlatMapMain.cancel(FluxFlatMap.java:359) reactor.core.publisher.MonoNext$NextSubscriber.cancel(MonoNext.java:114) reactor.core.publisher.FluxHandle$HandleSubscriber.cancel(FluxHandle.java:276) reactor.core.publisher.MonoFlatMap$FlatMapMain.cancel(MonoFlatMap.java:199) reactor.core.publisher.Operators.terminate(Operators.java:1277) reactor.core.publisher.MonoFlatMapMany$FlatMapManyMain.cancel(MonoFlatMapMany.java:131) reactor.core.publisher.FluxUsingWhen$UsingWhenSubscriber.cancel(FluxUsingWhen.java:326) reactor.core.publisher.MonoNext$NextSubscriber.cancel(MonoNext.java:114) reactor.core.publisher.Operators.set(Operators.java:1197) reactor.core.publisher.FluxMergeSequential$MergeSequentialInner.cancel(FluxMergeSequential.java:601) reactor.core.publisher.FluxMergeSequential$MergeSequentialMain.cancelAll(FluxMergeSequential.java:290) reactor.core.publisher.FluxMergeSequential$MergeSequentialMain.drain(FluxMergeSequential.java:385) reactor.core.publisher.FluxMergeSequential$MergeSequentialMain.innerNext(FluxMergeSequential.java:304) reactor.core.publisher.FluxMergeSequential$MergeSequentialInner.onNext(FluxMergeSequential.java:571) reactor.core.publisher.MonoNext$NextSubscriber.onNext(MonoNext.java:82) reactor.core.publisher.FluxUsingWhen$UsingWhenSubscriber.onNext(FluxUsingWhen.java:345) reactor.core.publisher.MonoFlatMapMany$FlatMapManyInner.onNext(MonoFlatMapMany.java:250) reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:158) reactor.core.publisher.FluxHandle$HandleSubscriber.onNext(FluxHandle.java:128) reactor.core.publisher.MonoNext$NextSubscriber.onNext(MonoNext.java:82) reactor.core.publisher.FluxFlatMap$FlatMapMain.tryEmitScalar(FluxFlatMap.java:489) reactor.core.publisher.FluxFlatMap$FlatMapMain.onNext(FluxFlatMap.java:422) reactor.core.publisher.FluxBuffer$BufferExactSubscriber.onComplete(FluxBuffer.java:185) reactor.core.publisher.Operators$MultiSubscriptionSubscriber.onComplete(Operators.java:2205) reactor.core.publisher.FluxUsingWhen$UsingWhenSubscriber.deferredComplete(FluxUsingWhen.java:392) reactor.core.publisher.FluxUsingWhen$CommitInner.onComplete(FluxUsingWhen.java:527) reactor.core.publisher.Operators$MultiSubscriptionSubscriber.onComplete(Operators.java:2205) reactor.core.publisher.FluxPeek$PeekSubscriber.onComplete(FluxPeek.java:260) reactor.core.publisher.Operators$MultiSubscriptionSubscriber.onComplete(Operators.java:2205) reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.onComplete(MonoIgnoreThen.java:209) reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.onComplete(MonoIgnoreThen.java:209) reactor.pool.SimpleDequePool.maybeRecycleAndDrain(SimpleDequePool.java:531) reactor.pool.SimpleDequePool$QueuePoolRecyclerInner.onComplete(SimpleDequePool.java:761) reactor.core.publisher.Operators.complete(Operators.java:137) reactor.core.publisher.MonoEmpty.subscribe(MonoEmpty.java:46) reactor.core.publisher.Mono.subscribe(Mono.java:4485) reactor.pool.SimpleDequePool$QueuePoolRecyclerMono.subscribe(SimpleDequePool.java:873) reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:52) reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:240) reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.onComplete(MonoIgnoreThen.java:203) reactor.core.publisher.FluxPeek$PeekSubscriber.onComplete(FluxPeek.java:260) reactor.core.publisher.Operators.complete(Operators.java:137) reactor.core.publisher.MonoEmpty.subscribe(MonoEmpty.java:46) reactor.core.publisher.Mono.subscribe(Mono.java:4485) reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:263) reactor.core.publisher.MonoIgnoreThen.subscribe(MonoIgnoreThen.java:51) reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:52) reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:240) reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.onComplete(MonoIgnoreThen.java:203) reactor.core.publisher.MonoIgnoreElements$IgnoreElementsSubscriber.onComplete(MonoIgnoreElements.java:89) reactor.core.publisher.FluxHandleFuseable$HandleFuseableSubscriber.onComplete(FluxHandleFuseable.java:238) reactor.core.publisher.MonoSupplier$MonoSupplierSubscription.request(MonoSupplier.java:148) reactor.core.publisher.FluxHandleFuseable$HandleFuseableSubscriber.request(FluxHandleFuseable.java:259) reactor.core.publisher.MonoIgnoreElements$IgnoreElementsSubscriber.onSubscribe(MonoIgnoreElements.java:72) reactor.core.publisher.FluxHandleFuseable$HandleFuseableSubscriber.onSubscribe(FluxHandleFuseable.java:163) reactor.core.publisher.MonoSupplier.subscribe(MonoSupplier.java:48) reactor.core.publisher.Mono.subscribe(Mono.java:4485) reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:263) reactor.core.publisher.MonoIgnoreThen.subscribe(MonoIgnoreThen.java:51) reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:52) reactor.core.publisher.Mono.subscribe(Mono.java:4485) reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onError(FluxOnErrorResume.java:103) reactor.core.publisher.MonoIgnoreElements$IgnoreElementsSubscriber.onError(MonoIgnoreElements.java:84) reactor.core.publisher.FluxMap$MapSubscriber.onError(FluxMap.java:134) reactor.core.publisher.FluxFilter$FilterSubscriber.onError(FluxFilter.java:157) reactor.core.publisher.FluxFilter$FilterConditionalSubscriber.onError(FluxFilter.java:291) reactor.core.publisher.FluxMap$MapConditionalSubscriber.onError(FluxMap.java:265) reactor.core.publisher.Operators.error(Operators.java:198) reactor.core.publisher.MonoError.subscribe(MonoError.java:53) reactor.core.publisher.MonoDeferContextual.subscribe(MonoDeferContextual.java:55) reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:52) reactor.core.publisher.Mono.subscribe(Mono.java:4485) reactor.core.publisher.FluxUsingWhen$UsingWhenSubscriber.onComplete(FluxUsingWhen.java:384) reactor.core.publisher.FluxFlatMap$FlatMapMain.checkTerminated(FluxFlatMap.java:847) reactor.core.publisher.FluxFlatMap$FlatMapMain.drainLoop(FluxFlatMap.java:609) reactor.core.publisher.FluxFlatMap$FlatMapMain.innerComplete(FluxFlatMap.java:895) reactor.core.publisher.FluxFlatMap$FlatMapInner.onComplete(FluxFlatMap.java:998) reactor.core.publisher.FluxHandle$HandleSubscriber.onComplete(FluxHandle.java:222) reactor.core.publisher.MonoFlatMapMany$FlatMapManyInner.onComplete(MonoFlatMapMany.java:260) reactor.core.publisher.FluxHandleFuseable$HandleFuseableSubscriber.onComplete(FluxHandleFuseable.java:238) reactor.core.publisher.FluxFilterFuseable$FilterFuseableConditionalSubscriber.onComplete(FluxFilterFuseable.java:391) reactor.core.publisher.FluxContextWrite$ContextWriteSubscriber.onComplete(FluxContextWrite.java:126) reactor.core.publisher.FluxPeekFuseable$PeekConditionalSubscriber.onComplete(FluxPeekFuseable.java:940) reactor.core.publisher.FluxPeekFuseable$PeekConditionalSubscriber.onComplete(FluxPeekFuseable.java:940) io.r2dbc.postgresql.util.FluxDiscardOnCancel$FluxDiscardOnCancelSubscriber.onComplete(FluxDiscardOnCancel.java:104) reactor.core.publisher.FluxDoFinally$DoFinallySubscriber.onComplete(FluxDoFinally.java:128) reactor.core.publisher.FluxHandle$HandleSubscriber.onComplete(FluxHandle.java:222) reactor.core.publisher.FluxCreate$BaseSink.complete(FluxCreate.java:460) reactor.core.publisher.FluxCreate$BufferAsyncSink.drain(FluxCreate.java:805) reactor.core.publisher.FluxCreate$BufferAsyncSink.complete(FluxCreate.java:753) reactor.core.publisher.FluxCreate$SerializedFluxSink.drainLoop(FluxCreate.java:247) reactor.core.publisher.FluxCreate$SerializedFluxSink.drain(FluxCreate.java:213) reactor.core.publisher.FluxCreate$SerializedFluxSink.complete(FluxCreate.java:204) io.r2dbc.postgresql.client.ReactorNettyClient$Conversation.complete(ReactorNettyClient.java:671) io.r2dbc.postgresql.client.ReactorNettyClient$BackendMessageSubscriber.emit(ReactorNettyClient.java:937) io.r2dbc.postgresql.client.ReactorNettyClient$BackendMessageSubscriber.onNext(ReactorNettyClient.java:813) io.r2dbc.postgresql.client.ReactorNettyClient$BackendMessageSubscriber.onNext(ReactorNettyClient.java:719) reactor.core.publisher.FluxHandle$HandleSubscriber.onNext(FluxHandle.java:128) reactor.core.publisher.FluxPeekFuseable$PeekConditionalSubscriber.onNext(FluxPeekFuseable.java:854) reactor.core.publisher.FluxMap$MapConditionalSubscriber.onNext(FluxMap.java:224) reactor.core.publisher.FluxMap$MapConditionalSubscriber.onNext(FluxMap.java:224) reactor.netty.channel.FluxReceive.drainReceiver(FluxReceive.java:294) reactor.netty.channel.FluxReceive.onInboundNext(FluxReceive.java:403) reactor.netty.channel.ChannelOperations.onInboundNext(ChannelOperations.java:411) reactor.netty.channel.ChannelOperationsHandler.channelRead(ChannelOperationsHandler.java:113) io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:346) io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:318) io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) io.netty.handler.ssl.SslHandler.unwrap(SslHandler.java:1382) io.netty.handler.ssl.SslHandler.decodeJdkCompatible(SslHandler.java:1245) io.netty.handler.ssl.SslHandler.decode(SslHandler.java:1294) io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:529) io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:468) io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:290) io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410) io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:440) io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919) io.netty.channel.epoll.AbstractEpollStreamChannel$EpollStreamUnsafe.epollInReady(AbstractEpollStreamChannel.java:800) io.netty.channel.epoll.EpollEventLoop.processReady(EpollEventLoop.java:499) io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:397) io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997) io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) java.base/java.lang.Thread.run(Unknown Source) #2: io.netty.buffer.AdvancedLeakAwareByteBuf.writeCharSequence(AdvancedLeakAwareByteBuf.java:893) io.r2dbc.postgresql.util.ByteBufUtils.encode(ByteBufUtils.java:58) io.r2dbc.postgresql.codec.StringCodec.lambda$doEncode$0(StringCodec.java:96) reactor.core.publisher.MonoSupplier$MonoSupplierSubscription.request(MonoSupplier.java:126) reactor.core.publisher.Operators$BaseFluxToMonoOperator.request(Operators.java:2041) reactor.core.publisher.Operators$MultiSubscriptionSubscriber.request(Operators.java:2305) reactor.core.publisher.FluxConcatMapNoPrefetch$FluxConcatMapNoPrefetchSubscriber.request(FluxConcatMapNoPrefetch.java:338) reactor.core.publisher.Operators$BaseFluxToMonoOperator.request(Operators.java:2041) reactor.core.publisher.MonoFlatMapMany$FlatMapManyMain.onSubscribe(MonoFlatMapMany.java:141) reactor.core.publisher.Operators$BaseFluxToMonoOperator.onSubscribe(Operators.java:2025) reactor.core.publisher.FluxConcatMapNoPrefetch$FluxConcatMapNoPrefetchSubscriber.onSubscribe(FluxConcatMapNoPrefetch.java:164) reactor.core.publisher.FluxIterable.subscribe(FluxIterable.java:201) reactor.core.publisher.FluxIterable.subscribe(FluxIterable.java:83) reactor.core.publisher.Flux.subscribe(Flux.java:8671) reactor.core.publisher.FluxFlatMap$FlatMapMain.onNext(FluxFlatMap.java:427) reactor.core.publisher.FluxOnAssembly$OnAssemblySubscriber.onNext(FluxOnAssembly.java:539) reactor.core.publisher.FluxMap$MapSubscriber.onNext(FluxMap.java:122) reactor.core.publisher.FluxMap$MapSubscriber.onNext(FluxMap.java:122) reactor.core.publisher.Operators$ScalarSubscription.request(Operators.java:2545) reactor.core.publisher.FluxMap$MapSubscriber.request(FluxMap.java:164) reactor.core.publisher.FluxMap$MapSubscriber.request(FluxMap.java:164) reactor.core.publisher.FluxOnAssembly$OnAssemblySubscriber.request(FluxOnAssembly.java:649) reactor.core.publisher.FluxFlatMap$FlatMapMain.onSubscribe(FluxFlatMap.java:371) reactor.core.publisher.FluxOnAssembly$OnAssemblySubscriber.onSubscribe(FluxOnAssembly.java:633) reactor.core.publisher.FluxMap$MapSubscriber.onSubscribe(FluxMap.java:92) reactor.core.publisher.FluxMap$MapSubscriber.onSubscribe(FluxMap.java:92) reactor.core.publisher.FluxJust.subscribe(FluxJust.java:68) reactor.core.publisher.FluxDefer.subscribe(FluxDefer.java:54) reactor.core.publisher.Flux.subscribe(Flux.java:8671) reactor.core.publisher.FluxUsingWhen$ResourceSubscriber.onNext(FluxUsingWhen.java:195) reactor.core.publisher.FluxMap$MapSubscriber.onNext(FluxMap.java:122) reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onNext(FluxOnErrorResume.java:79) reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onNext(FluxOnErrorResume.java:79) reactor.core.publisher.FluxRetry$RetrySubscriber.onNext(FluxRetry.java:87) reactor.core.publisher.MonoFlatMap$FlatMapMain.secondComplete(MonoFlatMap.java:245) reactor.core.publisher.MonoFlatMap$FlatMapInner.onNext(MonoFlatMap.java:305) io.r2dbc.pool.MonoDiscardOnCancel$MonoDiscardOnCancelSubscriber.onNext(MonoDiscardOnCancel.java:92) reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onNext(FluxOnErrorResume.java:79) reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.complete(MonoIgnoreThen.java:292) reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.onNext(MonoIgnoreThen.java:187) reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:236) reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.onComplete(MonoIgnoreThen.java:203) reactor.core.publisher.MonoIgnoreElements$IgnoreElementsSubscriber.onComplete(MonoIgnoreElements.java:89) reactor.core.publisher.FluxHandleFuseable$HandleFuseableSubscriber.onComplete(FluxHandleFuseable.java:238) reactor.core.publisher.MonoSupplier$MonoSupplierSubscription.request(MonoSupplier.java:148) reactor.core.publisher.FluxHandleFuseable$HandleFuseableSubscriber.request(FluxHandleFuseable.java:259) reactor.core.publisher.MonoIgnoreElements$IgnoreElementsSubscriber.onSubscribe(MonoIgnoreElements.java:72) reactor.core.publisher.FluxHandleFuseable$HandleFuseableSubscriber.onSubscribe(FluxHandleFuseable.java:163) reactor.core.publisher.MonoSupplier.subscribe(MonoSupplier.java:48) reactor.core.publisher.Mono.subscribe(Mono.java:4485) reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:263) reactor.core.publisher.MonoIgnoreThen.subscribe(MonoIgnoreThen.java:51) reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) io.r2dbc.pool.MonoDiscardOnCancel.subscribe(MonoDiscardOnCancel.java:50) reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:165) reactor.pool.AbstractPool$Borrower.deliver(AbstractPool.java:467) reactor.pool.SimpleDequePool.lambda$drainLoop$8(SimpleDequePool.java:368) reactor.core.scheduler.ImmediateScheduler.schedule(ImmediateScheduler.java:52) reactor.pool.SimpleDequePool.drainLoop(SimpleDequePool.java:368) reactor.pool.SimpleDequePool.drain(SimpleDequePool.java:300) reactor.pool.SimpleDequePool.maybeRecycleAndDrain(SimpleDequePool.java:532) reactor.pool.SimpleDequePool$QueuePoolRecyclerInner.onComplete(SimpleDequePool.java:761) reactor.core.publisher.Operators.complete(Operators.java:137) reactor.core.publisher.MonoEmpty.subscribe(MonoEmpty.java:46) reactor.core.publisher.Mono.subscribe(Mono.java:4485) reactor.pool.SimpleDequePool$QueuePoolRecyclerMono.subscribe(SimpleDequePool.java:873) reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:52) reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:240) reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.onComplete(MonoIgnoreThen.java:203) reactor.core.publisher.FluxPeek$PeekSubscriber.onComplete(FluxPeek.java:260) reactor.core.publisher.Operators.complete(Operators.java:137) reactor.core.publisher.MonoEmpty.subscribe(MonoEmpty.java:46) reactor.core.publisher.Mono.subscribe(Mono.java:4485) reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:263) reactor.core.publisher.MonoIgnoreThen.subscribe(MonoIgnoreThen.java:51) reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:52) reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:240) reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.onComplete(MonoIgnoreThen.java:203) reactor.core.publisher.MonoIgnoreElements$IgnoreElementsSubscriber.onComplete(MonoIgnoreElements.java:89) reactor.core.publisher.FluxHandleFuseable$HandleFuseableSubscriber.onComplete(FluxHandleFuseable.java:238) reactor.core.publisher.MonoSupplier$MonoSupplierSubscription.request(MonoSupplier.java:148) reactor.core.publisher.FluxHandleFuseable$HandleFuseableSubscriber.request(FluxHandleFuseable.java:259) reactor.core.publisher.MonoIgnoreElements$IgnoreElementsSubscriber.onSubscribe(MonoIgnoreElements.java:72) reactor.core.publisher.FluxHandleFuseable$HandleFuseableSubscriber.onSubscribe(FluxHandleFuseable.java:163) reactor.core.publisher.MonoSupplier.subscribe(MonoSupplier.java:48) reactor.core.publisher.Mono.subscribe(Mono.java:4485) reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:263) reactor.core.publisher.MonoIgnoreThen.subscribe(MonoIgnoreThen.java:51) reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:52) reactor.core.publisher.Mono.subscribe(Mono.java:4485) reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onError(FluxOnErrorResume.java:103) reactor.core.publisher.MonoIgnoreElements$IgnoreElementsSubscriber.onError(MonoIgnoreElements.java:84) reactor.core.publisher.FluxMap$MapSubscriber.onError(FluxMap.java:134) reactor.core.publisher.FluxFilter$FilterSubscriber.onError(FluxFilter.java:157) reactor.core.publisher.FluxFilter$FilterConditionalSubscriber.onError(FluxFilter.java:291) reactor.core.publisher.FluxMap$MapConditionalSubscriber.onError(FluxMap.java:265) reactor.core.publisher.Operators.error(Operators.java:198) reactor.core.publisher.MonoError.subscribe(MonoError.java:53) reactor.core.publisher.MonoDeferContextual.subscribe(MonoDeferContextual.java:55) reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:52) reactor.core.publisher.FluxFromMonoOperator.subscribe(FluxFromMonoOperator.java:83) reactor.core.publisher.FluxUsingWhen$UsingWhenSubscriber.cancel(FluxUsingWhen.java:330) reactor.core.publisher.Operators$DeferredSubscription.cancel(Operators.java:1670) reactor.core.publisher.FluxUsingWhen$ResourceSubscriber.cancel(FluxUsingWhen.java:248) reactor.core.publisher.Operators$MultiSubscriptionSubscriber.drainLoop(Operators.java:2399) reactor.core.publisher.Operators$MultiSubscriptionSubscriber.drain(Operators.java:2367) reactor.core.publisher.Operators$MultiSubscriptionSubscriber.cancel(Operators.java:2179) reactor.core.publisher.FluxBuffer$BufferExactSubscriber.cancel(FluxBuffer.java:121) reactor.core.publisher.FluxFlatMap$FlatMapMain.cancel(FluxFlatMap.java:359) reactor.core.publisher.MonoNext$NextSubscriber.cancel(MonoNext.java:114) reactor.core.publisher.FluxHandle$HandleSubscriber.cancel(FluxHandle.java:276) reactor.core.publisher.MonoFlatMap$FlatMapMain.cancel(MonoFlatMap.java:199) reactor.core.publisher.Operators.terminate(Operators.java:1277) reactor.core.publisher.MonoFlatMapMany$FlatMapManyMain.cancel(MonoFlatMapMany.java:131) reactor.core.publisher.FluxUsingWhen$UsingWhenSubscriber.cancel(FluxUsingWhen.java:326) reactor.core.publisher.MonoNext$NextSubscriber.cancel(MonoNext.java:114) reactor.core.publisher.Operators.set(Operators.java:1197) reactor.core.publisher.FluxMergeSequential$MergeSequentialInner.cancel(FluxMergeSequential.java:601) reactor.core.publisher.FluxMergeSequential$MergeSequentialMain.cancelAll(FluxMergeSequential.java:290) reactor.core.publisher.FluxMergeSequential$MergeSequentialMain.drain(FluxMergeSequential.java:385) reactor.core.publisher.FluxMergeSequential$MergeSequentialMain.innerNext(FluxMergeSequential.java:304) reactor.core.publisher.FluxMergeSequential$MergeSequentialInner.onNext(FluxMergeSequential.java:571) reactor.core.publisher.MonoNext$NextSubscriber.onNext(MonoNext.java:82) reactor.core.publisher.FluxUsingWhen$UsingWhenSubscriber.onNext(FluxUsingWhen.java:345) reactor.core.publisher.MonoFlatMapMany$FlatMapManyInner.onNext(MonoFlatMapMany.java:250) reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:158) reactor.core.publisher.FluxHandle$HandleSubscriber.onNext(FluxHandle.java:128) reactor.core.publisher.MonoNext$NextSubscriber.onNext(MonoNext.java:82) reactor.core.publisher.FluxFlatMap$FlatMapMain.tryEmitScalar(FluxFlatMap.java:489) reactor.core.publisher.FluxFlatMap$FlatMapMain.onNext(FluxFlatMap.java:422) reactor.core.publisher.FluxBuffer$BufferExactSubscriber.onComplete(FluxBuffer.java:185) reactor.core.publisher.Operators$MultiSubscriptionSubscriber.onComplete(Operators.java:2205) reactor.core.publisher.FluxUsingWhen$UsingWhenSubscriber.deferredComplete(FluxUsingWhen.java:392) reactor.core.publisher.FluxUsingWhen$CommitInner.onComplete(FluxUsingWhen.java:527) reactor.core.publisher.Operators$MultiSubscriptionSubscriber.onComplete(Operators.java:2205) reactor.core.publisher.FluxPeek$PeekSubscriber.onComplete(FluxPeek.java:260) reactor.core.publisher.Operators$MultiSubscriptionSubscriber.onComplete(Operators.java:2205) reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.onComplete(MonoIgnoreThen.java:209) reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.onComplete(MonoIgnoreThen.java:209) reactor.pool.SimpleDequePool.maybeRecycleAndDrain(SimpleDequePool.java:531) reactor.pool.SimpleDequePool$QueuePoolRecyclerInner.onComplete(SimpleDequePool.java:761) reactor.core.publisher.Operators.complete(Operators.java:137) reactor.core.publisher.MonoEmpty.subscribe(MonoEmpty.java:46) reactor.core.publisher.Mono.subscribe(Mono.java:4485) reactor.pool.SimpleDequePool$QueuePoolRecyclerMono.subscribe(SimpleDequePool.java:873) reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:52) reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:240) reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.onComplete(MonoIgnoreThen.java:203) reactor.core.publisher.FluxPeek$PeekSubscriber.onComplete(FluxPeek.java:260) reactor.core.publisher.Operators.complete(Operators.java:137) reactor.core.publisher.MonoEmpty.subscribe(MonoEmpty.java:46) reactor.core.publisher.Mono.subscribe(Mono.java:4485) reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:263) reactor.core.publisher.MonoIgnoreThen.subscribe(MonoIgnoreThen.java:51) reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:52) reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:240) reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.onComplete(MonoIgnoreThen.java:203) reactor.core.publisher.MonoIgnoreElements$IgnoreElementsSubscriber.onComplete(MonoIgnoreElements.java:89) reactor.core.publisher.FluxHandleFuseable$HandleFuseableSubscriber.onComplete(FluxHandleFuseable.java:238) reactor.core.publisher.MonoSupplier$MonoSupplierSubscription.request(MonoSupplier.java:148) reactor.core.publisher.FluxHandleFuseable$HandleFuseableSubscriber.request(FluxHandleFuseable.java:259) reactor.core.publisher.MonoIgnoreElements$IgnoreElementsSubscriber.onSubscribe(MonoIgnoreElements.java:72) reactor.core.publisher.FluxHandleFuseable$HandleFuseableSubscriber.onSubscribe(FluxHandleFuseable.java:163) reactor.core.publisher.MonoSupplier.subscribe(MonoSupplier.java:48) reactor.core.publisher.Mono.subscribe(Mono.java:4485) reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:263) reactor.core.publisher.MonoIgnoreThen.subscribe(MonoIgnoreThen.java:51) reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:52) reactor.core.publisher.Mono.subscribe(Mono.java:4485) reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onError(FluxOnErrorResume.java:103) reactor.core.publisher.MonoIgnoreElements$IgnoreElementsSubscriber.onError(MonoIgnoreElements.java:84) reactor.core.publisher.FluxMap$MapSubscriber.onError(FluxMap.java:134) reactor.core.publisher.FluxFilter$FilterSubscriber.onError(FluxFilter.java:157) reactor.core.publisher.FluxFilter$FilterConditionalSubscriber.onError(FluxFilter.java:291) reactor.core.publisher.FluxMap$MapConditionalSubscriber.onError(FluxMap.java:265) reactor.core.publisher.Operators.error(Operators.java:198) reactor.core.publisher.MonoError.subscribe(MonoError.java:53) reactor.core.publisher.MonoDeferContextual.subscribe(MonoDeferContextual.java:55) reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:52) reactor.core.publisher.Mono.subscribe(Mono.java:4485) reactor.core.publisher.FluxUsingWhen$UsingWhenSubscriber.onComplete(FluxUsingWhen.java:384) reactor.core.publisher.FluxFlatMap$FlatMapMain.checkTerminated(FluxFlatMap.java:847) reactor.core.publisher.FluxFlatMap$FlatMapMain.drainLoop(FluxFlatMap.java:609) reactor.core.publisher.FluxFlatMap$FlatMapMain.innerComplete(FluxFlatMap.java:895) reactor.core.publisher.FluxFlatMap$FlatMapInner.onComplete(FluxFlatMap.java:998) reactor.core.publisher.FluxHandle$HandleSubscriber.onComplete(FluxHandle.java:222) reactor.core.publisher.MonoFlatMapMany$FlatMapManyInner.onComplete(MonoFlatMapMany.java:260) reactor.core.publisher.FluxHandleFuseable$HandleFuseableSubscriber.onComplete(FluxHandleFuseable.java:238) reactor.core.publisher.FluxFilterFuseable$FilterFuseableConditionalSubscriber.onComplete(FluxFilterFuseable.java:391) reactor.core.publisher.FluxContextWrite$ContextWriteSubscriber.onComplete(FluxContextWrite.java:126) reactor.core.publisher.FluxPeekFuseable$PeekConditionalSubscriber.onComplete(FluxPeekFuseable.java:940) reactor.core.publisher.FluxPeekFuseable$PeekConditionalSubscriber.onComplete(FluxPeekFuseable.java:940) io.r2dbc.postgresql.util.FluxDiscardOnCancel$FluxDiscardOnCancelSubscriber.onComplete(FluxDiscardOnCancel.java:104) reactor.core.publisher.FluxDoFinally$DoFinallySubscriber.onComplete(FluxDoFinally.java:128) reactor.core.publisher.FluxHandle$HandleSubscriber.onComplete(FluxHandle.java:222) reactor.core.publisher.FluxCreate$BaseSink.complete(FluxCreate.java:460) reactor.core.publisher.FluxCreate$BufferAsyncSink.drain(FluxCreate.java:805) reactor.core.publisher.FluxCreate$BufferAsyncSink.complete(FluxCreate.java:753) reactor.core.publisher.FluxCreate$SerializedFluxSink.drainLoop(FluxCreate.java:247) reactor.core.publisher.FluxCreate$SerializedFluxSink.drain(FluxCreate.java:213) reactor.core.publisher.FluxCreate$SerializedFluxSink.complete(FluxCreate.java:204) io.r2dbc.postgresql.client.ReactorNettyClient$Conversation.complete(ReactorNettyClient.java:671) io.r2dbc.postgresql.client.ReactorNettyClient$BackendMessageSubscriber.emit(ReactorNettyClient.java:937) io.r2dbc.postgresql.client.ReactorNettyClient$BackendMessageSubscriber.onNext(ReactorNettyClient.java:813) io.r2dbc.postgresql.client.ReactorNettyClient$BackendMessageSubscriber.onNext(ReactorNettyClient.java:719) reactor.core.publisher.FluxHandle$HandleSubscriber.onNext(FluxHandle.java:128) reactor.core.publisher.FluxPeekFuseable$PeekConditionalSubscriber.onNext(FluxPeekFuseable.java:854) reactor.core.publisher.FluxMap$MapConditionalSubscriber.onNext(FluxMap.java:224) reactor.core.publisher.FluxMap$MapConditionalSubscriber.onNext(FluxMap.java:224) reactor.netty.channel.FluxReceive.drainReceiver(FluxReceive.java:294) reactor.netty.channel.FluxReceive.onInboundNext(FluxReceive.java:403) reactor.netty.channel.ChannelOperations.onInboundNext(ChannelOperations.java:411) reactor.netty.channel.ChannelOperationsHandler.channelRead(ChannelOperationsHandler.java:113) io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:346) io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:318) io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) io.netty.handler.ssl.SslHandler.unwrap(SslHandler.java:1382) io.netty.handler.ssl.SslHandler.decodeJdkCompatible(SslHandler.java:1245) io.netty.handler.ssl.SslHandler.decode(SslHandler.java:1294) io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:529) io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:468) io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:290) io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410) io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:440) io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919) io.netty.channel.epoll.AbstractEpollStreamChannel$EpollStreamUnsafe.epollInReady(AbstractEpollStreamChannel.java:800) io.netty.channel.epoll.EpollEventLoop.processReady(EpollEventLoop.java:499) io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:397) io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997) io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) java.base/java.lang.Thread.run(Unknown Source) Created at: io.netty.buffer.PooledByteBufAllocator.newDirectBuffer(PooledByteBufAllocator.java:403) io.netty.buffer.AbstractByteBufAllocator.directBuffer(AbstractByteBufAllocator.java:188) io.netty.buffer.AbstractByteBufAllocator.directBuffer(AbstractByteBufAllocator.java:174) io.netty.buffer.AbstractByteBufAllocator.buffer(AbstractByteBufAllocator.java:108) io.r2dbc.postgresql.util.ByteBufUtils.encode(ByteBufUtils.java:57) io.r2dbc.postgresql.codec.StringCodec.lambda$doEncode$0(StringCodec.java:96) reactor.core.publisher.MonoSupplier$MonoSupplierSubscription.request(MonoSupplier.java:126) reactor.core.publisher.Operators$BaseFluxToMonoOperator.request(Operators.java:2041) reactor.core.publisher.Operators$MultiSubscriptionSubscriber.request(Operators.java:2305) reactor.core.publisher.FluxConcatMapNoPrefetch$FluxConcatMapNoPrefetchSubscriber.request(FluxConcatMapNoPrefetch.java:338) reactor.core.publisher.Operators$BaseFluxToMonoOperator.request(Operators.java:2041) reactor.core.publisher.MonoFlatMapMany$FlatMapManyMain.onSubscribe(MonoFlatMapMany.java:141) reactor.core.publisher.Operators$BaseFluxToMonoOperator.onSubscribe(Operators.java:2025) reactor.core.publisher.FluxConcatMapNoPrefetch$FluxConcatMapNoPrefetchSubscriber.onSubscribe(FluxConcatMapNoPrefetch.java:164) reactor.core.publisher.FluxIterable.subscribe(FluxIterable.java:201) reactor.core.publisher.FluxIterable.subscribe(FluxIterable.java:83) reactor.core.publisher.Flux.subscribe(Flux.java:8671) reactor.core.publisher.FluxFlatMap$FlatMapMain.onNext(FluxFlatMap.java:427) reactor.core.publisher.FluxOnAssembly$OnAssemblySubscriber.onNext(FluxOnAssembly.java:539) reactor.core.publisher.FluxMap$MapSubscriber.onNext(FluxMap.java:122) reactor.core.publisher.FluxMap$MapSubscriber.onNext(FluxMap.java:122) reactor.core.publisher.Operators$ScalarSubscription.request(Operators.java:2545) reactor.core.publisher.FluxMap$MapSubscriber.request(FluxMap.java:164) reactor.core.publisher.FluxMap$MapSubscriber.request(FluxMap.java:164) reactor.core.publisher.FluxOnAssembly$OnAssemblySubscriber.request(FluxOnAssembly.java:649) reactor.core.publisher.FluxFlatMap$FlatMapMain.onSubscribe(FluxFlatMap.java:371) reactor.core.publisher.FluxOnAssembly$OnAssemblySubscriber.onSubscribe(FluxOnAssembly.java:633) reactor.core.publisher.FluxMap$MapSubscriber.onSubscribe(FluxMap.java:92) reactor.core.publisher.FluxMap$MapSubscriber.onSubscribe(FluxMap.java:92) reactor.core.publisher.FluxJust.subscribe(FluxJust.java:68) reactor.core.publisher.FluxDefer.subscribe(FluxDefer.java:54) reactor.core.publisher.Flux.subscribe(Flux.java:8671) reactor.core.publisher.FluxUsingWhen$ResourceSubscriber.onNext(FluxUsingWhen.java:195) reactor.core.publisher.FluxMap$MapSubscriber.onNext(FluxMap.java:122) reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onNext(FluxOnErrorResume.java:79) reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onNext(FluxOnErrorResume.java:79) reactor.core.publisher.FluxRetry$RetrySubscriber.onNext(FluxRetry.java:87) reactor.core.publisher.MonoFlatMap$FlatMapMain.secondComplete(MonoFlatMap.java:245) reactor.core.publisher.MonoFlatMap$FlatMapInner.onNext(MonoFlatMap.java:305) io.r2dbc.pool.MonoDiscardOnCancel$MonoDiscardOnCancelSubscriber.onNext(MonoDiscardOnCancel.java:92) reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onNext(FluxOnErrorResume.java:79) reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.complete(MonoIgnoreThen.java:292) reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.onNext(MonoIgnoreThen.java:187) reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:236) reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.onComplete(MonoIgnoreThen.java:203) reactor.core.publisher.MonoIgnoreElements$IgnoreElementsSubscriber.onComplete(MonoIgnoreElements.java:89) reactor.core.publisher.FluxHandleFuseable$HandleFuseableSubscriber.onComplete(FluxHandleFuseable.java:238) reactor.core.publisher.MonoSupplier$MonoSupplierSubscription.request(MonoSupplier.java:148) reactor.core.publisher.FluxHandleFuseable$HandleFuseableSubscriber.request(FluxHandleFuseable.java:259) reactor.core.publisher.MonoIgnoreElements$IgnoreElementsSubscriber.onSubscribe(MonoIgnoreElements.java:72) reactor.core.publisher.FluxHandleFuseable$HandleFuseableSubscriber.onSubscribe(FluxHandleFuseable.java:163) reactor.core.publisher.MonoSupplier.subscribe(MonoSupplier.java:48) reactor.core.publisher.Mono.subscribe(Mono.java:4485) reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:263) reactor.core.publisher.MonoIgnoreThen.subscribe(MonoIgnoreThen.java:51) reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) io.r2dbc.pool.MonoDiscardOnCancel.subscribe(MonoDiscardOnCancel.java:50) reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:165) reactor.pool.AbstractPool$Borrower.deliver(AbstractPool.java:467) reactor.pool.SimpleDequePool.lambda$drainLoop$8(SimpleDequePool.java:368) reactor.core.scheduler.ImmediateScheduler.schedule(ImmediateScheduler.java:52) reactor.pool.SimpleDequePool.drainLoop(SimpleDequePool.java:368) reactor.pool.SimpleDequePool.drain(SimpleDequePool.java:300) reactor.pool.SimpleDequePool.maybeRecycleAndDrain(SimpleDequePool.java:532) reactor.pool.SimpleDequePool$QueuePoolRecyclerInner.onComplete(SimpleDequePool.java:761) reactor.core.publisher.Operators.complete(Operators.java:137) reactor.core.publisher.MonoEmpty.subscribe(MonoEmpty.java:46) reactor.core.publisher.Mono.subscribe(Mono.java:4485) reactor.pool.SimpleDequePool$QueuePoolRecyclerMono.subscribe(SimpleDequePool.java:873) reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:52) reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:240) reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.onComplete(MonoIgnoreThen.java:203) reactor.core.publisher.FluxPeek$PeekSubscriber.onComplete(FluxPeek.java:260) reactor.core.publisher.Operators.complete(Operators.java:137) reactor.core.publisher.MonoEmpty.subscribe(MonoEmpty.java:46) reactor.core.publisher.Mono.subscribe(Mono.java:4485) reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:263) reactor.core.publisher.MonoIgnoreThen.subscribe(MonoIgnoreThen.java:51) reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:52) reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:240) reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.onComplete(MonoIgnoreThen.java:203) reactor.core.publisher.MonoIgnoreElements$IgnoreElementsSubscriber.onComplete(MonoIgnoreElements.java:89) reactor.core.publisher.FluxHandleFuseable$HandleFuseableSubscriber.onComplete(FluxHandleFuseable.java:238) reactor.core.publisher.MonoSupplier$MonoSupplierSubscription.request(MonoSupplier.java:148) reactor.core.publisher.FluxHandleFuseable$HandleFuseableSubscriber.request(FluxHandleFuseable.java:259) reactor.core.publisher.MonoIgnoreElements$IgnoreElementsSubscriber.onSubscribe(MonoIgnoreElements.java:72) reactor.core.publisher.FluxHandleFuseable$HandleFuseableSubscriber.onSubscribe(FluxHandleFuseable.java:163) reactor.core.publisher.MonoSupplier.subscribe(MonoSupplier.java:48) reactor.core.publisher.Mono.subscribe(Mono.java:4485) reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:263) reactor.core.publisher.MonoIgnoreThen.subscribe(MonoIgnoreThen.java:51) reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:52) reactor.core.publisher.Mono.subscribe(Mono.java:4485) reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onError(FluxOnErrorResume.java:103) reactor.core.publisher.MonoIgnoreElements$IgnoreElementsSubscriber.onError(MonoIgnoreElements.java:84) reactor.core.publisher.FluxMap$MapSubscriber.onError(FluxMap.java:134) reactor.core.publisher.FluxFilter$FilterSubscriber.onError(FluxFilter.java:157) reactor.core.publisher.FluxFilter$FilterConditionalSubscriber.onError(FluxFilter.java:291) reactor.core.publisher.FluxMap$MapConditionalSubscriber.onError(FluxMap.java:265) reactor.core.publisher.Operators.error(Operators.java:198) reactor.core.publisher.MonoError.subscribe(MonoError.java:53) reactor.core.publisher.MonoDeferContextual.subscribe(MonoDeferContextual.java:55) reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:52) reactor.core.publisher.FluxFromMonoOperator.subscribe(FluxFromMonoOperator.java:83) reactor.core.publisher.FluxUsingWhen$UsingWhenSubscriber.cancel(FluxUsingWhen.java:330) reactor.core.publisher.Operators$DeferredSubscription.cancel(Operators.java:1670) reactor.core.publisher.FluxUsingWhen$ResourceSubscriber.cancel(FluxUsingWhen.java:248) reactor.core.publisher.Operators$MultiSubscriptionSubscriber.drainLoop(Operators.java:2399) reactor.core.publisher.Operators$MultiSubscriptionSubscriber.drain(Operators.java:2367) reactor.core.publisher.Operators$MultiSubscriptionSubscriber.cancel(Operators.java:2179) reactor.core.publisher.FluxBuffer$BufferExactSubscriber.cancel(FluxBuffer.java:121) reactor.core.publisher.FluxFlatMap$FlatMapMain.cancel(FluxFlatMap.java:359) reactor.core.publisher.MonoNext$NextSubscriber.cancel(MonoNext.java:114) reactor.core.publisher.FluxHandle$HandleSubscriber.cancel(FluxHandle.java:276) reactor.core.publisher.MonoFlatMap$FlatMapMain.cancel(MonoFlatMap.java:199) reactor.core.publisher.Operators.terminate(Operators.java:1277) reactor.core.publisher.MonoFlatMapMany$FlatMapManyMain.cancel(MonoFlatMapMany.java:131) reactor.core.publisher.FluxUsingWhen$UsingWhenSubscriber.cancel(FluxUsingWhen.java:326) reactor.core.publisher.MonoNext$NextSubscriber.cancel(MonoNext.java:114) reactor.core.publisher.Operators.set(Operators.java:1197) reactor.core.publisher.FluxMergeSequential$MergeSequentialInner.cancel(FluxMergeSequential.java:601) reactor.core.publisher.FluxMergeSequential$MergeSequentialMain.cancelAll(FluxMergeSequential.java:290) reactor.core.publisher.FluxMergeSequential$MergeSequentialMain.drain(FluxMergeSequential.java:385) reactor.core.publisher.FluxMergeSequential$MergeSequentialMain.innerNext(FluxMergeSequential.java:304) reactor.core.publisher.FluxMergeSequential$MergeSequentialInner.onNext(FluxMergeSequential.java:571) reactor.core.publisher.MonoNext$NextSubscriber.onNext(MonoNext.java:82) reactor.core.publisher.FluxUsingWhen$UsingWhenSubscriber.onNext(FluxUsingWhen.java:345) reactor.core.publisher.MonoFlatMapMany$FlatMapManyInner.onNext(MonoFlatMapMany.java:250) reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:158) reactor.core.publisher.FluxHandle$HandleSubscriber.onNext(FluxHandle.java:128) reactor.core.publisher.MonoNext$NextSubscriber.onNext(MonoNext.java:82) reactor.core.publisher.FluxFlatMap$FlatMapMain.tryEmitScalar(FluxFlatMap.java:489) reactor.core.publisher.FluxFlatMap$FlatMapMain.onNext(FluxFlatMap.java:422) reactor.core.publisher.FluxBuffer$BufferExactSubscriber.onComplete(FluxBuffer.java:185) reactor.core.publisher.Operators$MultiSubscriptionSubscriber.onComplete(Operators.java:2205) reactor.core.publisher.FluxUsingWhen$UsingWhenSubscriber.deferredComplete(FluxUsingWhen.java:392) reactor.core.publisher.FluxUsingWhen$CommitInner.onComplete(FluxUsingWhen.java:527) reactor.core.publisher.Operators$MultiSubscriptionSubscriber.onComplete(Operators.java:2205) reactor.core.publisher.FluxPeek$PeekSubscriber.onComplete(FluxPeek.java:260) reactor.core.publisher.Operators$MultiSubscriptionSubscriber.onComplete(Operators.java:2205) reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.onComplete(MonoIgnoreThen.java:209) reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.onComplete(MonoIgnoreThen.java:209) reactor.pool.SimpleDequePool.maybeRecycleAndDrain(SimpleDequePool.java:531) reactor.pool.SimpleDequePool$QueuePoolRecyclerInner.onComplete(SimpleDequePool.java:761) reactor.core.publisher.Operators.complete(Operators.java:137) reactor.core.publisher.MonoEmpty.subscribe(MonoEmpty.java:46) reactor.core.publisher.Mono.subscribe(Mono.java:4485) reactor.pool.SimpleDequePool$QueuePoolRecyclerMono.subscribe(SimpleDequePool.java:873) reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:52) reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:240) reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.onComplete(MonoIgnoreThen.java:203) reactor.core.publisher.FluxPeek$PeekSubscriber.onComplete(FluxPeek.java:260) reactor.core.publisher.Operators.complete(Operators.java:137) reactor.core.publisher.MonoEmpty.subscribe(MonoEmpty.java:46) reactor.core.publisher.Mono.subscribe(Mono.java:4485) reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:263) reactor.core.publisher.MonoIgnoreThen.subscribe(MonoIgnoreThen.java:51) reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:52) reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:240) reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.onComplete(MonoIgnoreThen.java:203) reactor.core.publisher.MonoIgnoreElements$IgnoreElementsSubscriber.onComplete(MonoIgnoreElements.java:89) reactor.core.publisher.FluxHandleFuseable$HandleFuseableSubscriber.onComplete(FluxHandleFuseable.java:238) reactor.core.publisher.MonoSupplier$MonoSupplierSubscription.request(MonoSupplier.java:148) reactor.core.publisher.FluxHandleFuseable$HandleFuseableSubscriber.request(FluxHandleFuseable.java:259) reactor.core.publisher.MonoIgnoreElements$IgnoreElementsSubscriber.onSubscribe(MonoIgnoreElements.java:72) reactor.core.publisher.FluxHandleFuseable$HandleFuseableSubscriber.onSubscribe(FluxHandleFuseable.java:163) reactor.core.publisher.MonoSupplier.subscribe(MonoSupplier.java:48) reactor.core.publisher.Mono.subscribe(Mono.java:4485) reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:263) reactor.core.publisher.MonoIgnoreThen.subscribe(MonoIgnoreThen.java:51) reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:52) reactor.core.publisher.Mono.subscribe(Mono.java:4485) reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onError(FluxOnErrorResume.java:103) reactor.core.publisher.MonoIgnoreElements$IgnoreElementsSubscriber.onError(MonoIgnoreElements.java:84) reactor.core.publisher.FluxMap$MapSubscriber.onError(FluxMap.java:134) reactor.core.publisher.FluxFilter$FilterSubscriber.onError(FluxFilter.java:157) reactor.core.publisher.FluxFilter$FilterConditionalSubscriber.onError(FluxFilter.java:291) reactor.core.publisher.FluxMap$MapConditionalSubscriber.onError(FluxMap.java:265) reactor.core.publisher.Operators.error(Operators.java:198) reactor.core.publisher.MonoError.subscribe(MonoError.java:53) reactor.core.publisher.MonoDeferContextual.subscribe(MonoDeferContextual.java:55) reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:52) reactor.core.publisher.Mono.subscribe(Mono.java:4485) reactor.core.publisher.FluxUsingWhen$UsingWhenSubscriber.onComplete(FluxUsingWhen.java:384) reactor.core.publisher.FluxFlatMap$FlatMapMain.checkTerminated(FluxFlatMap.java:847) reactor.core.publisher.FluxFlatMap$FlatMapMain.drainLoop(FluxFlatMap.java:609) reactor.core.publisher.FluxFlatMap$FlatMapMain.innerComplete(FluxFlatMap.java:895) reactor.core.publisher.FluxFlatMap$FlatMapInner.onComplete(FluxFlatMap.java:998) reactor.core.publisher.FluxHandle$HandleSubscriber.onComplete(FluxHandle.java:222) reactor.core.publisher.MonoFlatMapMany$FlatMapManyInner.onComplete(MonoFlatMapMany.java:260) reactor.core.publisher.FluxHandleFuseable$HandleFuseableSubscriber.onComplete(FluxHandleFuseable.java:238) reactor.core.publisher.FluxFilterFuseable$FilterFuseableConditionalSubscriber.onComplete(FluxFilterFuseable.java:391) reactor.core.publisher.FluxContextWrite$ContextWriteSubscriber.onComplete(FluxContextWrite.java:126) reactor.core.publisher.FluxPeekFuseable$PeekConditionalSubscriber.onComplete(FluxPeekFuseable.java:940) reactor.core.publisher.FluxPeekFuseable$PeekConditionalSubscriber.onComplete(FluxPeekFuseable.java:940) io.r2dbc.postgresql.util.FluxDiscardOnCancel$FluxDiscardOnCancelSubscriber.onComplete(FluxDiscardOnCancel.java:104) reactor.core.publisher.FluxDoFinally$DoFinallySubscriber.onComplete(FluxDoFinally.java:128) reactor.core.publisher.FluxHandle$HandleSubscriber.onComplete(FluxHandle.java:222) reactor.core.publisher.FluxCreate$BaseSink.complete(FluxCreate.java:460) reactor.core.publisher.FluxCreate$BufferAsyncSink.drain(FluxCreate.java:805) reactor.core.publisher.FluxCreate$BufferAsyncSink.complete(FluxCreate.java:753) reactor.core.publisher.FluxCreate$SerializedFluxSink.drainLoop(FluxCreate.java:247) reactor.core.publisher.FluxCreate$SerializedFluxSink.drain(FluxCreate.java:213) reactor.core.publisher.FluxCreate$SerializedFluxSink.complete(FluxCreate.java:204) io.r2dbc.postgresql.client.ReactorNettyClient$Conversation.complete(ReactorNettyClient.java:671) io.r2dbc.postgresql.client.ReactorNettyClient$BackendMessageSubscriber.emit(ReactorNettyClient.java:937) io.r2dbc.postgresql.client.ReactorNettyClient$BackendMessageSubscriber.onNext(ReactorNettyClient.java:813) io.r2dbc.postgresql.client.ReactorNettyClient$BackendMessageSubscriber.onNext(ReactorNettyClient.java:719) reactor.core.publisher.FluxHandle$HandleSubscriber.onNext(FluxHandle.java:128) reactor.core.publisher.FluxPeekFuseable$PeekConditionalSubscriber.onNext(FluxPeekFuseable.java:854) reactor.core.publisher.FluxMap$MapConditionalSubscriber.onNext(FluxMap.java:224) reactor.core.publisher.FluxMap$MapConditionalSubscriber.onNext(FluxMap.java:224) reactor.netty.channel.FluxReceive.drainReceiver(FluxReceive.java:294) reactor.netty.channel.FluxReceive.onInboundNext(FluxReceive.java:403) reactor.netty.channel.ChannelOperations.onInboundNext(ChannelOperations.java:411) reactor.netty.channel.ChannelOperationsHandler.channelRead(ChannelOperationsHandler.java:113) io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:346) io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:318) io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) io.netty.handler.ssl.SslHandler.unwrap(SslHandler.java:1382) io.netty.handler.ssl.SslHandler.decodeJdkCompatible(SslHandler.java:1245) io.netty.handler.ssl.SslHandler.decode(SslHandler.java:1294) io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:529) io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:468) io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:290) io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410) io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:440) io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919) io.netty.channel.epoll.AbstractEpollStreamChannel$EpollStreamUnsafe.epollInReady(AbstractEpollStreamChannel.java:800) io.netty.channel.epoll.EpollEventLoop.processReady(EpollEventLoop.java:499) io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:397) io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997) io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) java.base/java.lang.Thread.run(Unknown Source) ```
Sulasdeli commented 1 year ago

We also encountered the same issue. Any solution/workaround for this ? (besides increasing memory)

Squiry commented 1 year ago

Is it the only error in logs? We kind of have leak in BackendMessageSubscriber.addConversation on if (!isConnected.get()) branch so there, since we are releasing encoded parameters only on encoding part. The may be other places like that, but all of them would require some kind of connection errors to appear before.

colinwd commented 1 year ago

Wanted to drop some info here in case it's helpful in tracking this down. I maintain a Spring Boot Webflux service (3.0.0) and am also seeing these leak issues from r2dbc-postgres, but more specifically when requests to the service are canceled.

A client of my service will make a burst of requests all at once, and will sometimes cancel a big batch of them upon some failure on their end. Every time that happens, I get a burst of kotlinx.coroutines.JobCancellationException: MonoCoroutine was cancelled from my own error handling, and it's reliably accompanied by a handful of Netty leak logs as well. The logs are slightly different than what's been posted above so I'll include them here.

ByteBuf.release() was not called ``` 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.SimpleLeakAwareByteBuf.unwrappedDerived(SimpleLeakAwareByteBuf.java:143) io.netty.buffer.SimpleLeakAwareByteBuf.readRetainedSlice(SimpleLeakAwareByteBuf.java:67) io.r2dbc.postgresql.message.backend.DataRow.decodeColumn(DataRow.java:149) io.r2dbc.postgresql.message.backend.DataRow.decode(DataRow.java:139) io.r2dbc.postgresql.message.backend.BackendMessageDecoder.decodeBody(BackendMessageDecoder.java:65) io.r2dbc.postgresql.message.backend.BackendMessageDecoder.decode(BackendMessageDecoder.java:39) reactor.core.publisher.FluxMap$MapConditionalSubscriber.onNext(FluxMap.java:208) reactor.core.publisher.FluxMap$MapConditionalSubscriber.onNext(FluxMap.java:224) reactor.netty.channel.FluxReceive.drainReceiver(FluxReceive.java:292) reactor.netty.channel.FluxReceive.onInboundNext(FluxReceive.java:401) reactor.netty.channel.ChannelOperations.onInboundNext(ChannelOperations.java:411) reactor.netty.channel.ChannelOperationsHandler.channelRead(ChannelOperationsHandler.java:113) io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:346) io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:333) io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:454) io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:290) io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) io.netty.handler.ssl.SslHandler.unwrap(SslHandler.java:1373) io.netty.handler.ssl.SslHandler.decodeJdkCompatible(SslHandler.java:1236) io.netty.handler.ssl.SslHandler.decode(SslHandler.java:1285) io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:529) io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:468) io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:290) io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410) io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:440) io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919) io.netty.channel.epoll.AbstractEpollStreamChannel$EpollStreamUnsafe.epollInReady(AbstractEpollStreamChannel.java:800) io.netty.channel.epoll.EpollEventLoop.processReady(EpollEventLoop.java:499) io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:397) io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997) io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) java.base/java.lang.Thread.run(Unknown Source) ```
DataRow.release() was not called ``` LEAK: DataRow.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.r2dbc.postgresql.message.backend.DataRow.(DataRow.java:37) io.r2dbc.postgresql.message.backend.DataRow.decode(DataRow.java:141) io.r2dbc.postgresql.message.backend.BackendMessageDecoder.decodeBody(BackendMessageDecoder.java:65) io.r2dbc.postgresql.message.backend.BackendMessageDecoder.decode(BackendMessageDecoder.java:39) reactor.core.publisher.FluxMap$MapConditionalSubscriber.onNext(FluxMap.java:208) reactor.core.publisher.FluxMap$MapConditionalSubscriber.onNext(FluxMap.java:224) reactor.netty.channel.FluxReceive.drainReceiver(FluxReceive.java:292) reactor.netty.channel.FluxReceive.onInboundNext(FluxReceive.java:401) reactor.netty.channel.ChannelOperations.onInboundNext(ChannelOperations.java:411) reactor.netty.channel.ChannelOperationsHandler.channelRead(ChannelOperationsHandler.java:113) io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:346) io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:333) io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:454) io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:290) io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) io.netty.handler.ssl.SslHandler.unwrap(SslHandler.java:1373) io.netty.handler.ssl.SslHandler.decodeJdkCompatible(SslHandler.java:1236) io.netty.handler.ssl.SslHandler.decode(SslHandler.java:1285) io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:529) io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:468) io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:290) io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410) io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:440) io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919) io.netty.channel.epoll.AbstractEpollStreamChannel$EpollStreamUnsafe.epollInReady(AbstractEpollStreamChannel.java:800) io.netty.channel.epoll.EpollEventLoop.processReady(EpollEventLoop.java:499) io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:397) io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997) io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) java.base/java.lang.Thread.run(Unknown Source) ```

I've been able to reproduce this synthetically as well with a load test where requests start to time out on the client side under enough load. Hope this helps!

re-thc commented 1 year ago

Getting the same issue. Are we sure this is an r2dbc issue and not reactor-netty? Perhaps to do with https://github.com/reactor/reactor-netty/issues/881?

Vellani commented 1 year ago

Getting the same "DataRow.Release() was not called", which under paranoid debugging shows up as "ByteBuf.release() was not called". Happens under load usually when a subscriber closes the connection prematurely, but not necessarily under that specific condition. With the limited testing and debugging we could do, it doesn't seem to actually affect the service's performance or stability for now, but the errors do pile up quite a bit and it does scare anyone who looks at the logs.

Edit. The connections to the database remain open, unfortunately. We decided to abandon r2dbc until this issue is resolved.

oemergenc commented 1 year ago

Hi,

we are running into a similar problem using spring 3.1.3 and r2db2 1.0.1. Our service logs this every now and then:

LEAK: ByteBuf.release() was not called before it's garbage-collected. See https://netty.io/wiki/reference-counted-objects.html for more information.
    io.netty.buffer.SimpleLeakAwareByteBuf.unwrappedDerived(SimpleLeakAwareByteBuf.java:144)
    io.netty.buffer.SimpleLeakAwareByteBuf.readRetainedSlice(SimpleLeakAwareByteBuf.java:67)
    io.r2dbc.postgresql.message.backend.DataRow.decodeColumn(DataRow.java:149)
    io.r2dbc.postgresql.message.backend.DataRow.decode(DataRow.java:139)
    io.r2dbc.postgresql.message.backend.BackendMessageDecoder.decodeBody(BackendMessageDecoder.java:65)
    io.r2dbc.postgresql.message.backend.BackendMessageDecoder.decode(BackendMessageDecoder.java:39)
    reactor.core.publisher.FluxMap$MapConditionalSubscriber.onNext(FluxMap.java:208)
    reactor.core.publisher.FluxMap$MapConditionalSubscriber.onNext(FluxMap.java:224)
    reactor.netty.channel.FluxReceive.drainReceiver(FluxReceive.java:292)
    reactor.netty.channel.FluxReceive.onInboundNext(FluxReceive.java:401)
    reactor.netty.channel.ChannelOperations.onInboundNext(ChannelOperations.java:404)
    reactor.netty.channel.ChannelOperationsHandler.channelRead(ChannelOperationsHandler.java:114)
    io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444)
    io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)
    io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)
    io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:346)
    io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:333)
    io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:454)
    io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:290)
    io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444)
    io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)
    io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)
    io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410)
    io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:440)
    io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)
    io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919)
    io.netty.channel.epoll.AbstractEpollStreamChannel$EpollStreamUnsafe.epollInReady(AbstractEpollStreamChannel.java:800)
    io.netty.channel.epoll.EpollEventLoop.processReady(EpollEventLoop.java:509)
    io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:407)
    io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997)
    io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
    io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
    java.base/java.lang.Thread.run(Unknown Source)"
siegfried-chaisson commented 1 year ago

Hello, i use io.r2dbc:r2dbc-pool:1.0.1.RELEASE and io.r2dbc:r2dbc-postgresql:0.8.13.RELEASE with org.springframework.data:spring-data-r2dbc:3.0.2, I've got a similar problem, but ~before the LEAK: ByteBuf.release(), i usualy get a LEAK: DataRow.release() first :~

EDIT : I resolved this in my app by refactoring a supid code causing very high accesses to the database.

2023-09-26T15:14:08.473+02:00 ERROR 1 --- [tor-tcp-epoll-4] io.netty.util.ResourceLeakDetector : LEAK: DataRow.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.r2dbc.postgresql.message.backend.DataRow.(DataRow.java:37) io.r2dbc.postgresql.message.backend.DataRow.decode(DataRow.java:134) io.r2dbc.postgresql.message.backend.BackendMessageDecoder.decodeBody(BackendMessageDecoder.java:65) io.r2dbc.postgresql.message.backend.BackendMessageDecoder.decode(BackendMessageDecoder.java:39) reactor.core.publisher.FluxMap$MapConditionalSubscriber.onNext(FluxMap.java:208) reactor.core.publisher.FluxMap$MapConditionalSubscriber.onNext(FluxMap.java:224) reactor.netty.channel.FluxReceive.drainReceiver(FluxReceive.java:294) reactor.netty.channel.FluxReceive.onInboundNext(FluxReceive.java:403) reactor.netty.channel.ChannelOperations.onInboundNext(ChannelOperations.java:411) reactor.netty.channel.ChannelOperationsHandler.channelRead(ChannelOperationsHandler.java:113) io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:346) io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:333) io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:454) io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:290) io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410) io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:440) io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919) io.netty.channel.epoll.AbstractEpollStreamChannel$EpollStreamUnsafe.epollInReady(AbstractEpollStreamChannel.java:800) io.netty.channel.epoll.EpollEventLoop.processReady(EpollEventLoop.java:499) io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:397) io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997) io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) java.base/java.lang.Thread.run(Thread.java:833) 2023-09-26T15:17:50.169+02:00 ERROR 1 --- [tor-tcp-epoll-2] io.netty.util.ResourceLeakDetector : 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:403) io.netty.buffer.AbstractByteBufAllocator.directBuffer(AbstractByteBufAllocator.java:188) io.netty.buffer.AbstractByteBufAllocator.directBuffer(AbstractByteBufAllocator.java:179) io.netty.channel.unix.PreferredDirectByteBufAllocator.ioBuffer(PreferredDirectByteBufAllocator.java:53) io.netty.channel.DefaultMaxMessagesRecvByteBufAllocator$MaxMessageHandle.allocate(DefaultMaxMessagesRecvByteBufAllocator.java:120) io.netty.channel.epoll.EpollRecvByteAllocatorHandle.allocate(EpollRecvByteAllocatorHandle.java:75) io.netty.channel.epoll.AbstractEpollStreamChannel$EpollStreamUnsafe.epollInReady(AbstractEpollStreamChannel.java:785) io.netty.channel.epoll.EpollEventLoop.processReady(EpollEventLoop.java:499) io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:397) io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997) io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) java.base/java.lang.Thread.run(Thread.java:833) 2023-09-26T15:20:36.134+02:00 ERROR 1 --- [or-http-epoll-4] io.netty.util.ResourceLeakDetector : 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.SimpleLeakAwareByteBuf.unwrappedDerived(SimpleLeakAwareByteBuf.java:143) io.netty.buffer.SimpleLeakAwareByteBuf.retainedSlice(SimpleLeakAwareByteBuf.java:57) io.netty.handler.codec.LengthFieldBasedFrameDecoder.extractFrame(LengthFieldBasedFrameDecoder.java:502) io.netty.handler.codec.LengthFieldBasedFrameDecoder.decode(LengthFieldBasedFrameDecoder.java:440) io.netty.handler.codec.LengthFieldBasedFrameDecoder.decode(LengthFieldBasedFrameDecoder.java:333) io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:529) io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:468) io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:290) io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410) io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:440) io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919) io.netty.channel.epoll.AbstractEpollStreamChannel$EpollStreamUnsafe.epollInReady(AbstractEpollStreamChannel.java:800) io.netty.channel.epoll.EpollEventLoop.processReady(EpollEventLoop.java:499) io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:397) io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997) io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) java.base/java.lang.Thread.run(Thread.java:833)

mp911de commented 1 year ago

@siegfried-chaisson Can you post a bit more detail? With knowing, what caused the issue, we could get some insights on what end we need to investigate.

kressi commented 1 year ago

The impact of this issue remains a consistent problem in several applications. Since no resolutions is in sight, we intend to switch over to JDBC for the meantime and wrap queries in Mono.fromCallable(() -> repository.query(id)).subscribeOn(Schedulers.boundedElastic()). Are there any other workarounds?

siegfried-chaisson commented 1 year ago

@siegfried-chaisson Can you post a bit more detail? With knowing, what caused the issue, we could get some insights on what end we need to investigate.

I'm sorry, but the bug is still occurring 😓. I switched to an H2 database with no issues, so perhaps the problem isn't related to my code. As mentioned earlier, it seems to happen under heavy load. I've tried various connection pool parameters, such as max-idle-time: -1 and max-life-time: -1, with no success. I initially thought the issue might be related to connection timeouts, but at this point, I don't have any concrete information.

siegfried-chaisson commented 1 year ago

Hello everyone, I wanted share to a workaround I implemented to address it, and i hope it could help you to investigate.

The problem was related to the timing of updates, which were occurring too rapidly. This resulted in a situation where an update was attempted before a create operation had been completed. In my case, I'm using a UUID as the primary key (@Id).

In the initial approach: Initially, the entity.isNew() method generated a random UUID. During the first 'update,' the findByName method returned an empty result because the first entity hadn't been saved yet, and the saved created a second Id for the same entity.name On the second update, the findByName method returned multiple entities with the same name, leading to an error that expected a single result. This situation finally cause the Leak. (I don't know why)

In the second approach: Similar to the first approach, the entity.isNew() method generated a deterministic UUID, based on the name field. During the first 'update,' the findById method again returned an empty result. However, during the first update, the save operation returned an error because the key already existed in the database, causing again the Leak.

Finally, to resolve this issue, I decided not to merge entities too quickly. Instead, I get back to random UUID and performed a simple save operation. Additionally, I had to implement a grouping mechanism when reading the data. This approach successfully eliminated the leak issue for me. I'll probably use a kafka topic for those too quicky updated entites, then stream the groupby operation. I don't know yet.

Here's a code snippet example that shows the change I made in the save method:

public Mono\<Void> save(MyEntity entity) { return repository.findByName(entity.getName()) .defaultIfEmpty(new MyEntity ()) .flatMap(currentEntity -> { entity.setId(currentEntity.getId()); return repository.save(entity); }) .then(); }

changed in :

public Mono\<Void> save(MyEntity entity) { return repository.save(entity).then(); }

kressi commented 1 year ago

Leaks do occur in integration tests as well. At random locations though. :sweat_smile:

siegfried-chaisson commented 1 year ago

Hello, this isn't happening on my side since I read the Netty docs and found un-released ByteBuf(s) in my code or suscribers not completed (map/flatMap/then/subscribe and more)😅

Special thanks to the paranoid level detector from netty, sorry but in my case it wasn't an r2dbc-postgresql issue.