Skip to content

Random IllegalReferenceCountException: refCnt: 0 #245

@dstepanov

Description

@dstepanov

We have a randomly failing test on Github Actions, unfortunately, no steps to reproduce.

Versions

  • Driver: Arabba-SR12 - io.r2dbc:r2dbc-mssql:0.8.8.RELEASE
  • Java: 1.8
  • OS: Linux - Github Actions
io.micronaut.data.r2dbc.sqlserver.SqlServerRepositoryPoolSpec test custom delete FAILED

  java.lang.RuntimeException: Async resource cleanup failed after onComplete
      at reactor.core.publisher.FluxUsingWhen$CommitInner.onError(FluxUsingWhen.java:533)
      at reactor.core.publisher.FluxDoFinally$DoFinallySubscriber.onError(FluxDoFinally.java:136)
      at reactor.core.publisher.FluxPeek$PeekSubscriber.onError(FluxPeek.java:222)
      at reactor.core.publisher.MonoIgnoreElements$IgnoreElementsSubscriber.onError(MonoIgnoreElements.java:84)
      at reactor.core.publisher.MonoIgnoreElements$IgnoreElementsSubscriber.onError(MonoIgnoreElements.java:84)
      at reactor.core.publisher.FluxContextWrite$ContextWriteSubscriber.onError(FluxContextWrite.java:121)
      at io.r2dbc.mssql.util.FluxDiscardOnCancel$FluxDiscardOnCancelSubscriber.onError(FluxDiscardOnCancel.java:97)
      at reactor.core.publisher.FluxHandle$HandleSubscriber.onError(FluxHandle.java:203)
      at reactor.core.publisher.FluxHandle$HandleConditionalSubscriber.onError(FluxHandle.java:414)
      at reactor.core.publisher.FluxPeekFuseable$PeekConditionalSubscriber.onError(FluxPeekFuseable.java:903)
      at reactor.core.publisher.FluxPeekFuseable$PeekConditionalSubscriber.onError(FluxPeekFuseable.java:903)
      at reactor.core.publisher.FluxPeekFuseable$PeekConditionalSubscriber.onError(FluxPeekFuseable.java:903)
      at reactor.core.publisher.FluxHandle$HandleConditionalSubscriber.onError(FluxHandle.java:414)
      at reactor.core.publisher.MonoFlatMapMany$FlatMapManyInner.onError(MonoFlatMapMany.java:255)
      at reactor.core.publisher.FluxPeek$PeekSubscriber.onError(FluxPeek.java:222)
      at reactor.core.publisher.EmitterProcessor.checkTerminated(EmitterProcessor.java:548)
      at reactor.core.publisher.EmitterProcessor.drain(EmitterProcessor.java:415)
      at reactor.core.publisher.EmitterProcessor.subscribe(EmitterProcessor.java:209)
      at reactor.core.publisher.Flux.subscribe(Flux.java:8468)
      at reactor.core.publisher.MonoFlatMapMany$FlatMapManyMain.onNext(MonoFlatMapMany.java:195)
      at reactor.core.publisher.MonoCreate$DefaultMonoSink.success(MonoCreate.java:165)
      at io.r2dbc.mssql.client.ReactorNettyClient$ExchangeRequest$1.onSuccess(ReactorNettyClient.java:753)
      at io.r2dbc.mssql.client.ReactorNettyClient$RequestQueue.submit(ReactorNettyClient.java:689)
      at io.r2dbc.mssql.client.ReactorNettyClient$ExchangeRequest.submit(ReactorNettyClient.java:749)
      at io.r2dbc.mssql.client.ReactorNettyClient.lambda$exchange$14(ReactorNettyClient.java:586)
      at reactor.core.publisher.MonoCreate.subscribe(MonoCreate.java:57)
      at reactor.core.publisher.InternalFluxOperator.subscribe(InternalFluxOperator.java:62)
      at io.r2dbc.mssql.util.FluxDiscardOnCancel.subscribe(FluxDiscardOnCancel.java:52)
      at reactor.core.publisher.FluxFromMonoOperator.subscribe(FluxFromMonoOperator.java:83)
      at reactor.core.publisher.FluxDefer.subscribe(FluxDefer.java:54)
      at reactor.core.publisher.Mono.subscribe(Mono.java:4399)
      at reactor.core.publisher.FluxUsingWhen.subscribe(FluxUsingWhen.java:103)
      at reactor.core.publisher.Flux.subscribe(Flux.java:8468)
      at reactor.core.publisher.FluxUsingWhen$ResourceSubscriber.onNext(FluxUsingWhen.java:202)
      at reactor.core.publisher.FluxRetry$RetrySubscriber.onNext(FluxRetry.java:87)
      at reactor.core.publisher.Operators$MonoSubscriber.complete(Operators.java:1816)
      at reactor.core.publisher.MonoFlatMap$FlatMapInner.onNext(MonoFlatMap.java:249)
      at io.r2dbc.pool.MonoDiscardOnCancel$MonoDiscardOnCancelSubscriber.onNext(MonoDiscardOnCancel.java:92)
      at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onNext(FluxOnErrorResume.java:79)
      at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.complete(MonoIgnoreThen.java:284)
      at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.onNext(MonoIgnoreThen.java:187)
      at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:232)
      at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.onComplete(MonoIgnoreThen.java:203)
      at reactor.core.publisher.MonoIgnoreElements$IgnoreElementsSubscriber.onComplete(MonoIgnoreElements.java:89)
      at reactor.core.publisher.FluxHandleFuseable$HandleFuseableSubscriber.onComplete(FluxHandleFuseable.java:229)
      at reactor.core.publisher.Operators$MonoSubscriber.complete(Operators.java:1817)
      at reactor.core.publisher.MonoSupplier.subscribe(MonoSupplier.java:62)
      at reactor.core.publisher.Mono.subscribe(Mono.java:4399)
      at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:255)
      at reactor.core.publisher.MonoIgnoreThen.subscribe(MonoIgnoreThen.java:51)
      at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64)
      at io.r2dbc.pool.MonoDiscardOnCancel.subscribe(MonoDiscardOnCancel.java:50)
      at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:157)
      at reactor.pool.AbstractPool$Borrower.deliver(AbstractPool.java:464)
      at reactor.pool.SimpleDequePool.lambda$drainLoop$8(SimpleDequePool.java:340)
      at reactor.core.scheduler.ImmediateScheduler.schedule(ImmediateScheduler.java:52)
      at reactor.pool.SimpleDequePool.drainLoop(SimpleDequePool.java:340)
      at reactor.pool.SimpleDequePool.pendingOffer(SimpleDequePool.java:558)
      at reactor.pool.SimpleDequePool.doAcquire(SimpleDequePool.java:268)
      at reactor.pool.AbstractPool$Borrower.request(AbstractPool.java:427)
      at reactor.core.publisher.MonoFlatMap$FlatMapMain.onSubscribe(MonoFlatMap.java:110)
      at reactor.pool.SimpleDequePool$QueueBorrowerMono.subscribe(SimpleDequePool.java:676)
      at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64)
      at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:52)
      at reactor.core.publisher.FluxRetry$RetrySubscriber.resubscribe(FluxRetry.java:117)
      at reactor.core.publisher.MonoRetry.subscribeOrReturn(MonoRetry.java:50)
      at reactor.core.publisher.Mono.subscribe(Mono.java:4384)
      at reactor.core.publisher.FluxUsingWhen.subscribe(FluxUsingWhen.java:103)
      at reactor.core.publisher.FluxDeferContextual.subscribe(FluxDeferContextual.java:57)
      at reactor.core.publisher.Mono.subscribe(Mono.java:4399)
      at reactor.core.publisher.Mono.blockOptional(Mono.java:1750)
      at io.micronaut.data.operations.reactive.BlockingReactorRepositoryOperations.executeUpdate(BlockingReactorRepositoryOperations.java:92)
      at io.micronaut.data.operations.RepositoryOperations.executeDelete(RepositoryOperations.java:195)
      at io.micronaut.data.runtime.intercept.DefaultDeleteAllInterceptor.intercept(DefaultDeleteAllInterceptor.java:53)
      at io.micronaut.data.runtime.intercept.DefaultDeleteAllInterceptor.intercept(DefaultDeleteAllInterceptor.java:35)
      at io.micronaut.data.intercept.DataIntroductionAdvice.intercept(DataIntroductionAdvice.java:114)
      at io.micronaut.data.intercept.DataIntroductionAdvice.intercept(DataIntroductionAdvice.java:75)
      at io.micronaut.aop.chain.MethodInterceptorChain.proceed(MethodInterceptorChain.java:137)
      at io.micronaut.validation.ValidatingInterceptor.intercept(ValidatingInterceptor.java:138)
      at io.micronaut.aop.chain.MethodInterceptorChain.proceed(MethodInterceptorChain.java:137)
      at io.micronaut.data.tck.tests.AbstractRepositorySpec.cleanupData(AbstractRepositorySpec.groovy:129)
      at io.micronaut.data.tck.tests.AbstractRepositorySpec.cleanup(AbstractRepositorySpec.groovy:141)
  Caused by: io.r2dbc.mssql.client.ReactorNettyClient$MssqlConnectionException
      at io.r2dbc.mssql.client.ReactorNettyClient.lambda$handleConnectionError$17(ReactorNettyClient.java:619)
      at io.r2dbc.mssql.client.ReactorNettyClient.drainError(ReactorNettyClient.java:629)
      at io.r2dbc.mssql.client.ReactorNettyClient.handleConnectionError(ReactorNettyClient.java:619)
      at io.r2dbc.mssql.client.ReactorNettyClient.resumeError(ReactorNettyClient.java:317)
      at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onError(FluxOnErrorResume.java:94)
      at reactor.core.publisher.FluxFlattenIterable$FlattenIterableSubscriber.drainAsync(FluxFlattenIterable.java:321)
      at reactor.core.publisher.FluxFlattenIterable$FlattenIterableSubscriber.drain(FluxFlattenIterable.java:686)
      at reactor.core.publisher.FluxFlattenIterable$FlattenIterableSubscriber.request(FluxFlattenIterable.java:274)
      at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.request(Operators.java:2158)
      at reactor.core.publisher.EmitterProcessor.drain(EmitterProcessor.java:503)
      ... 65 more
  Caused by: io.netty.util.IllegalReferenceCountException: refCnt: 0
      at io.netty.buffer.AbstractByteBuf.ensureAccessible(AbstractByteBuf.java:1454)
      at io.netty.buffer.PooledUnsafeDirectByteBuf.memoryAddress(PooledUnsafeDirectByteBuf.java:241)
      at io.netty.buffer.UnsafeByteBufUtil.setBytes(UnsafeByteBufUtil.java:524)
      at io.netty.buffer.PooledUnsafeDirectByteBuf.setBytes(PooledUnsafeDirectByteBuf.java:193)
      at io.netty.buffer.AbstractByteBuf.writeBytes(AbstractByteBuf.java:1104)
      at io.netty.buffer.AbstractByteBuf.writeBytes(AbstractByteBuf.java:1096)
      at io.netty.buffer.AbstractByteBuf.writeBytes(AbstractByteBuf.java:1087)
      at io.r2dbc.mssql.client.StreamDecoder$DecoderState.initial(StreamDecoder.java:180)
      at io.r2dbc.mssql.client.StreamDecoder.decode(StreamDecoder.java:85)
      at io.r2dbc.mssql.client.StreamDecoder.decode(StreamDecoder.java:64)
      at io.r2dbc.mssql.client.ReactorNettyClient.lambda$new$6(ReactorNettyClient.java:255)
      at reactor.core.publisher.FluxFlattenIterable$FlattenIterableSubscriber.drainAsync(FluxFlattenIterable.java:351)
      ... 69 more

Metadata

Metadata

Assignees

Labels

type: bugSomething isn't working

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions