Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
akoufa opened this issue Jan 28, 2023 · 17 comments
Open

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

akoufa opened this issue Jan 28, 2023 · 17 comments
Labels
type: bug A general bug

Comments

@akoufa
Copy link

akoufa commented Jan 28, 2023

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?

@akoufa akoufa added the status: waiting-for-triage An issue we've not yet triaged label Jan 28, 2023
@mp911de
Copy link
Collaborator

mp911de commented Jan 30, 2023

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

@mp911de mp911de added type: bug A general bug and removed status: waiting-for-triage An issue we've not yet triaged labels Jan 30, 2023
@akoufa
Copy link
Author

akoufa commented Jan 30, 2023

@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
Copy link
Collaborator

mp911de commented Jan 30, 2023

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
Copy link
Contributor

kressi commented Feb 26, 2023

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
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
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
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
Copy link

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

@Squiry
Copy link
Collaborator

Squiry commented Apr 13, 2023

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
Copy link

colinwd commented Apr 28, 2023

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.<init>(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
Copy link

re-thc commented May 1, 2023

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

@Vellani
Copy link

Vellani commented May 12, 2023

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
Copy link

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
Copy link

siegfried-chaisson commented Sep 26, 2023

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
Copy link
Collaborator

mp911de commented Sep 28, 2023

@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
Copy link
Contributor

kressi commented Sep 28, 2023

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
Copy link

@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
Copy link

siegfried-chaisson commented Oct 6, 2023

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
Copy link
Contributor

kressi commented Oct 7, 2023

@siegfried-chaisson
Copy link

siegfried-chaisson commented Oct 10, 2023

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
type: bug A general bug
Projects
None yet
Development

No branches or pull requests

10 participants