Introduce assertions to guard against concurrent session openings in … #69
GitHub Actions / Build summary for a0c97a10f712c49b0a00a33f4a57c3e3a089f8fd
completed
Dec 13, 2024 in 0s
Build summary for a0c97a10f712c49b0a00a33f4a57c3e3a089f8fd
Details
Test Failures
⚙️ JVM Tests - JDK 17 #
- Failing: extensions/panache/hibernate-reactive-panache/deployment
! Skipped: extensions/panache/hibernate-reactive-panache-kotlin/deployment extensions/panache/hibernate-reactive-rest-data-panache/deployment extensions/security-jpa-reactive/deployment and 5 more
📦 extensions/panache/hibernate-reactive-panache/deployment
# Tests: 10
+ Success: 9
- Failures: 0
- Errors: 1
! Skipped: 0
✖ io.quarkus.hibernate.reactive.panache.test.WithSessionOnDemandTest.testSharedSession(UniAsserter)
- Source on GitHub - 🠅
io.smallrye.mutiny.CompositeException:
Multiple exceptions caught:
[Exception 0] java.lang.IllegalStateException: Attempting to open two sessions within the same vert.x context: this suggests a lack of correct chaining of operations.
[Exception 1] java.lang.NullPointerException: Cannot invoke "org.hibernate.reactive.session.ReactiveSession.isOpen()" because "this.delegate" is null
at io.smallrye.mutiny.operators.uni.UniOnTerminationCall$UniOnTerminationCallProcessor.lambda$onFailure$4(UniOnTerminationCall.java:80)
at io.smallrye.context.impl.wrappers.SlowContextualConsumer.accept(SlowContextualConsumer.java:21)
at io.smallrye.mutiny.helpers.UniCallbackSubscriber.onFailure(UniCallbackSubscriber.java:62)
at io.smallrye.mutiny.operators.uni.builders.UniCreateFromKnownFailure$KnownFailureSubscription.forward(UniCreateFromKnownFailure.java:38)
⚙️ JVM Tests - JDK 21 #
- Failing: extensions/panache/hibernate-reactive-panache/deployment
! Skipped: extensions/panache/hibernate-reactive-panache-kotlin/deployment extensions/panache/hibernate-reactive-rest-data-panache/deployment extensions/security-jpa-reactive/deployment and 5 more
📦 extensions/panache/hibernate-reactive-panache/deployment
# Tests: 10
+ Success: 9
- Failures: 0
- Errors: 1
! Skipped: 0
✖ io.quarkus.hibernate.reactive.panache.test.WithSessionOnDemandTest.testSharedSession(UniAsserter)
- Source on GitHub - 🠅
io.smallrye.mutiny.CompositeException:
Multiple exceptions caught:
[Exception 0] java.lang.IllegalStateException: Attempting to open two sessions within the same vert.x context: this suggests a lack of correct chaining of operations.
[Exception 1] java.lang.NullPointerException: Cannot invoke "org.hibernate.reactive.session.ReactiveSession.isOpen()" because "this.delegate" is null
at io.smallrye.mutiny.operators.uni.UniOnTerminationCall$UniOnTerminationCallProcessor.lambda$onFailure$4(UniOnTerminationCall.java:80)
at io.smallrye.context.impl.wrappers.SlowContextualConsumer.accept(SlowContextualConsumer.java:21)
at io.smallrye.mutiny.helpers.UniCallbackSubscriber.onFailure(UniCallbackSubscriber.java:62)
at io.smallrye.mutiny.operators.uni.builders.UniCreateFromKnownFailure$KnownFailureSubscription.forward(UniCreateFromKnownFailure.java:38)
Annotations
github-actions / Build summary for a0c97a10f712c49b0a00a33f4a57c3e3a089f8fd
JVM Tests - JDK 17
io.smallrye.mutiny.CompositeException:
Multiple exceptions caught:
[Exception 0] java.lang.IllegalStateException: Attempting to open two sessions within the same vert.x context: this suggests a lack of correct chaining of operations.
Raw output
io.smallrye.mutiny.CompositeException:
Multiple exceptions caught:
[Exception 0] java.lang.IllegalStateException: Attempting to open two sessions within the same vert.x context: this suggests a lack of correct chaining of operations.
[Exception 1] java.lang.NullPointerException: Cannot invoke "org.hibernate.reactive.session.ReactiveSession.isOpen()" because "this.delegate" is null
at io.smallrye.mutiny.operators.uni.UniOnTerminationCall$UniOnTerminationCallProcessor.lambda$onFailure$4(UniOnTerminationCall.java:80)
at io.smallrye.context.impl.wrappers.SlowContextualConsumer.accept(SlowContextualConsumer.java:21)
at io.smallrye.mutiny.helpers.UniCallbackSubscriber.onFailure(UniCallbackSubscriber.java:62)
at io.smallrye.mutiny.operators.uni.builders.UniCreateFromKnownFailure$KnownFailureSubscription.forward(UniCreateFromKnownFailure.java:38)
at io.smallrye.mutiny.operators.uni.builders.UniCreateFromKnownFailure.subscribe(UniCreateFromKnownFailure.java:23)
at io.smallrye.mutiny.operators.AbstractUni.subscribe(AbstractUni.java:36)
at io.smallrye.mutiny.groups.UniSubscribe.withSubscriber(UniSubscribe.java:51)
at io.smallrye.mutiny.groups.UniSubscribe.with(UniSubscribe.java:110)
at io.smallrye.mutiny.groups.UniSubscribe.with(UniSubscribe.java:88)
at io.smallrye.mutiny.operators.uni.UniOnTerminationCall$UniOnTerminationCallProcessor.onFailure(UniOnTerminationCall.java:78)
at io.smallrye.mutiny.operators.uni.builders.UniCreateFromKnownFailure$KnownFailureSubscription.forward(UniCreateFromKnownFailure.java:38)
at io.smallrye.mutiny.operators.uni.builders.UniCreateFromKnownFailure.subscribe(UniCreateFromKnownFailure.java:23)
at io.smallrye.mutiny.operators.AbstractUni.subscribe(AbstractUni.java:36)
at io.smallrye.mutiny.groups.UniSubscribe.withSubscriber(UniSubscribe.java:51)
at io.smallrye.mutiny.operators.uni.UniOnTerminationCall.subscribe(UniOnTerminationCall.java:28)
at io.smallrye.mutiny.operators.AbstractUni.subscribe(AbstractUni.java:36)
at io.smallrye.mutiny.operators.uni.UniOnItemTransformToUni$UniOnItemTransformToUniProcessor.performInnerSubscription(UniOnItemTransformToUni.java:81)
at io.smallrye.mutiny.operators.uni.UniOnItemTransformToUni$UniOnItemTransformToUniProcessor.onItem(UniOnItemTransformToUni.java:57)
at io.smallrye.mutiny.operators.uni.builders.UniCreateFromKnownItem$KnownItemSubscription.forward(UniCreateFromKnownItem.java:38)
at io.smallrye.mutiny.operators.uni.builders.UniCreateFromKnownItem.subscribe(UniCreateFromKnownItem.java:23)
at io.smallrye.mutiny.operators.AbstractUni.subscribe(AbstractUni.java:36)
at io.smallrye.mutiny.operators.uni.UniOnItemTransformToUni.subscribe(UniOnItemTransformToUni.java:25)
at io.smallrye.mutiny.operators.AbstractUni.subscribe(AbstractUni.java:36)
at io.smallrye.mutiny.operators.uni.UniOnItemConsume.subscribe(UniOnItemConsume.java:30)
at io.smallrye.mutiny.operators.AbstractUni.subscribe(AbstractUni.java:36)
at io.smallrye.mutiny.groups.UniSubscribe.withSubscriber(UniSubscribe.java:51)
at io.smallrye.mutiny.groups.UniSubscribe.with(UniSubscribe.java:110)
at io.smallrye.mutiny.groups.UniSubscribe.with(UniSubscribe.java:88)
at io.quarkus.test.vertx.RunOnVertxContextTestMethodInvoker$RunTestMethodOnVertxEventLoopContextHandler.doRun(RunOnVertxContextTestMethodInvoker.java:191)
at io.quarkus.test.vertx.RunOnVertxContextTestMethodInvoker$RunTestMethodOnVertxEventLoopContextHandler.handle(RunOnVertxContextTestMethodInvoker.java:178)
at io.quarkus.test.vertx.RunOnVertxContextTestMethodInvoker$RunTestMethodOnVertxEventLoopContextHandler.handle(RunOnVertxContextTestMethodInvoker.java:149)
at io.vertx.core.impl.ContextInternal.dispatch(ContextInternal.java:270)
at io.vertx.core.impl.ContextInternal.dispatch(ContextInternal.java:252)
at io.vertx.core.impl.ContextInternal.lambda$runOnContext$0(ContextInternal.java:50)
at io.netty.util.concurrent.AbstractEventExecutor.runTask(AbstractEventExecutor.java:173)
at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:166)
at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:472)
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:569)
at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997)
at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
at java.base/java.lang.Thread.run(Thread.java:840)
Suppressed: java.lang.NullPointerException: Cannot invoke "org.hibernate.reactive.session.ReactiveSession.isOpen()" because "this.delegate" is null
at org.hibernate.reactive.mutiny.impl.MutinySessionImpl.isOpen(MutinySessionImpl.java:543)
at io.quarkus.hibernate.reactive.panache.common.runtime.SessionOperations.closeSession(SessionOperations.java:224)
at io.quarkus.hibernate.reactive.panache.common.runtime.SessionOperations.lambda$withSessionOnDemand$0(SessionOperations.java:81)
at io.smallrye.mutiny.Uni.lambda$eventually$1(Uni.java:582)
at io.smallrye.mutiny.context.BaseContextPropagationInterceptor.lambda$decorate$0(BaseContextPropagationInterceptor.java:107)
at io.smallrye.context.impl.wrappers.SlowContextualFunction.apply(SlowContextualFunction.java:21)
at io.smallrye.mutiny.context.BaseContextPropagationInterceptor$ContextualizedFunction3.apply(BaseContextPropagationInterceptor.java:121)
at io.smallrye.mutiny.operators.uni.UniOnTerminationCall$UniOnTerminationCallProcessor.execute(UniOnTerminationCall.java:90)
... 33 more
Caused by: java.lang.IllegalStateException: Attempting to open two sessions within the same vert.x context: this suggests a lack of correct chaining of operations.
at io.quarkus.hibernate.reactive.panache.common.runtime.SessionOperations.guardAgainstDuplicateOpenRequest(SessionOperations.java:145)
at io.quarkus.hibernate.reactive.panache.common.runtime.SessionOperations.getSession(SessionOperations.java:168)
at io.quarkus.hibernate.reactive.panache.Panache.getSession(Panache.java:38)
at io.quarkus.hibernate.reactive.panache.test.WithSessionOnDemandTest$MrBean.ping(WithSessionOnDemandTest.java:40)
at io.quarkus.hibernate.reactive.panache.test.WithSessionOnDemandTest_MrBean_Subclass.ping$$superforward(Unknown Source)
at io.quarkus.hibernate.reactive.panache.test.WithSessionOnDemandTest_MrBean_Subclass$$function$$1.apply(Unknown Source)
at io.quarkus.arc.impl.AroundInvokeInvocationContext.proceed(AroundInvokeInvocationContext.java:73)
at io.quarkus.arc.impl.AroundInvokeInvocationContext.proceed(AroundInvokeInvocationContext.java:62)
at io.quarkus.hibernate.reactive.panache.common.runtime.AbstractUniInterceptor.proceedUni(AbstractUniInterceptor.java:12)
at io.quarkus.hibernate.reactive.panache.common.runtime.WithSessionOnDemandInterceptor.lambda$intercept$0(WithSessionOnDemandInterceptor.java:20)
at io.quarkus.hibernate.reactive.panache.common.runtime.SessionOperations.withSessionOnDemand(SessionOperations.java:78)
at io.quarkus.hibernate.reactive.panache.common.runtime.WithSessionOnDemandInterceptor.intercept(WithSessionOnDemandInterceptor.java:20)
at io.quarkus.hibernate.reactive.panache.common.runtime.WithSessionOnDemandInterceptor_Bean.intercept(Unknown Source)
at io.quarkus.arc.impl.InterceptorInvocation.invoke(InterceptorInvocation.java:42)
at io.quarkus.arc.impl.AroundInvokeInvocationContext.perform(AroundInvokeInvocationContext.java:30)
at io.quarkus.arc.impl.InvocationContexts.performAroundInvoke(InvocationContexts.java:27)
at io.quarkus.hibernate.reactive.panache.test.WithSessionOnDemandTest_MrBean_Subclass.ping(Unknown Source)
at io.quarkus.hibernate.reactive.panache.test.WithSessionOnDemandTest_MrBean_ClientProxy.ping(Unknown Source)
at io.quarkus.hibernate.reactive.panache.test.WithSessionOnDemandTest.lambda$testSharedSession$1(WithSessionOnDemandTest.java:30)
at io.quarkus.test.vertx.DefaultUniAsserter$4.apply(DefaultUniAsserter.java:94)
at io.quarkus.test.vertx.DefaultUniAsserter$4.apply(DefaultUniAsserter.java:91)
at io.smallrye.context.impl.wrappers.SlowContextualFunction.apply(SlowContextualFunction.java:21)
at io.smallrye.mutiny.operators.uni.UniOnItemTransformToUni$UniOnItemTransformToUniProcessor.performInnerSubscription(UniOnItemTransformToUni.java:68)
... 25 more
github-actions / Build summary for a0c97a10f712c49b0a00a33f4a57c3e3a089f8fd
JVM Tests - JDK 21
io.smallrye.mutiny.CompositeException:
Multiple exceptions caught:
[Exception 0] java.lang.IllegalStateException: Attempting to open two sessions within the same vert.x context: this suggests a lack of correct chaining of operations.
Raw output
io.smallrye.mutiny.CompositeException:
Multiple exceptions caught:
[Exception 0] java.lang.IllegalStateException: Attempting to open two sessions within the same vert.x context: this suggests a lack of correct chaining of operations.
[Exception 1] java.lang.NullPointerException: Cannot invoke "org.hibernate.reactive.session.ReactiveSession.isOpen()" because "this.delegate" is null
at io.smallrye.mutiny.operators.uni.UniOnTerminationCall$UniOnTerminationCallProcessor.lambda$onFailure$4(UniOnTerminationCall.java:80)
at io.smallrye.context.impl.wrappers.SlowContextualConsumer.accept(SlowContextualConsumer.java:21)
at io.smallrye.mutiny.helpers.UniCallbackSubscriber.onFailure(UniCallbackSubscriber.java:62)
at io.smallrye.mutiny.operators.uni.builders.UniCreateFromKnownFailure$KnownFailureSubscription.forward(UniCreateFromKnownFailure.java:38)
at io.smallrye.mutiny.operators.uni.builders.UniCreateFromKnownFailure.subscribe(UniCreateFromKnownFailure.java:23)
at io.smallrye.mutiny.operators.AbstractUni.subscribe(AbstractUni.java:36)
at io.smallrye.mutiny.groups.UniSubscribe.withSubscriber(UniSubscribe.java:51)
at io.smallrye.mutiny.groups.UniSubscribe.with(UniSubscribe.java:110)
at io.smallrye.mutiny.groups.UniSubscribe.with(UniSubscribe.java:88)
at io.smallrye.mutiny.operators.uni.UniOnTerminationCall$UniOnTerminationCallProcessor.onFailure(UniOnTerminationCall.java:78)
at io.smallrye.mutiny.operators.uni.builders.UniCreateFromKnownFailure$KnownFailureSubscription.forward(UniCreateFromKnownFailure.java:38)
at io.smallrye.mutiny.operators.uni.builders.UniCreateFromKnownFailure.subscribe(UniCreateFromKnownFailure.java:23)
at io.smallrye.mutiny.operators.AbstractUni.subscribe(AbstractUni.java:36)
at io.smallrye.mutiny.groups.UniSubscribe.withSubscriber(UniSubscribe.java:51)
at io.smallrye.mutiny.operators.uni.UniOnTerminationCall.subscribe(UniOnTerminationCall.java:28)
at io.smallrye.mutiny.operators.AbstractUni.subscribe(AbstractUni.java:36)
at io.smallrye.mutiny.operators.uni.UniOnItemTransformToUni$UniOnItemTransformToUniProcessor.performInnerSubscription(UniOnItemTransformToUni.java:81)
at io.smallrye.mutiny.operators.uni.UniOnItemTransformToUni$UniOnItemTransformToUniProcessor.onItem(UniOnItemTransformToUni.java:57)
at io.smallrye.mutiny.operators.uni.builders.UniCreateFromKnownItem$KnownItemSubscription.forward(UniCreateFromKnownItem.java:38)
at io.smallrye.mutiny.operators.uni.builders.UniCreateFromKnownItem.subscribe(UniCreateFromKnownItem.java:23)
at io.smallrye.mutiny.operators.AbstractUni.subscribe(AbstractUni.java:36)
at io.smallrye.mutiny.operators.uni.UniOnItemTransformToUni.subscribe(UniOnItemTransformToUni.java:25)
at io.smallrye.mutiny.operators.AbstractUni.subscribe(AbstractUni.java:36)
at io.smallrye.mutiny.operators.uni.UniOnItemConsume.subscribe(UniOnItemConsume.java:30)
at io.smallrye.mutiny.operators.AbstractUni.subscribe(AbstractUni.java:36)
at io.smallrye.mutiny.groups.UniSubscribe.withSubscriber(UniSubscribe.java:51)
at io.smallrye.mutiny.groups.UniSubscribe.with(UniSubscribe.java:110)
at io.smallrye.mutiny.groups.UniSubscribe.with(UniSubscribe.java:88)
at io.quarkus.test.vertx.RunOnVertxContextTestMethodInvoker$RunTestMethodOnVertxEventLoopContextHandler.doRun(RunOnVertxContextTestMethodInvoker.java:191)
at io.quarkus.test.vertx.RunOnVertxContextTestMethodInvoker$RunTestMethodOnVertxEventLoopContextHandler.handle(RunOnVertxContextTestMethodInvoker.java:178)
at io.quarkus.test.vertx.RunOnVertxContextTestMethodInvoker$RunTestMethodOnVertxEventLoopContextHandler.handle(RunOnVertxContextTestMethodInvoker.java:149)
at io.vertx.core.impl.ContextInternal.dispatch(ContextInternal.java:270)
at io.vertx.core.impl.ContextInternal.dispatch(ContextInternal.java:252)
at io.vertx.core.impl.ContextInternal.lambda$runOnContext$0(ContextInternal.java:50)
at io.netty.util.concurrent.AbstractEventExecutor.runTask(AbstractEventExecutor.java:173)
at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:166)
at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:472)
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:569)
at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997)
at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
at java.base/java.lang.Thread.run(Thread.java:1583)
Suppressed: java.lang.NullPointerException: Cannot invoke "org.hibernate.reactive.session.ReactiveSession.isOpen()" because "this.delegate" is null
at org.hibernate.reactive.mutiny.impl.MutinySessionImpl.isOpen(MutinySessionImpl.java:543)
at io.quarkus.hibernate.reactive.panache.common.runtime.SessionOperations.closeSession(SessionOperations.java:224)
at io.quarkus.hibernate.reactive.panache.common.runtime.SessionOperations.lambda$withSessionOnDemand$0(SessionOperations.java:81)
at io.smallrye.mutiny.Uni.lambda$eventually$1(Uni.java:582)
at io.smallrye.mutiny.context.BaseContextPropagationInterceptor.lambda$decorate$0(BaseContextPropagationInterceptor.java:107)
at io.smallrye.context.impl.wrappers.SlowContextualFunction.apply(SlowContextualFunction.java:21)
at io.smallrye.mutiny.context.BaseContextPropagationInterceptor$ContextualizedFunction3.apply(BaseContextPropagationInterceptor.java:121)
at io.smallrye.mutiny.operators.uni.UniOnTerminationCall$UniOnTerminationCallProcessor.execute(UniOnTerminationCall.java:90)
... 33 more
Caused by: java.lang.IllegalStateException: Attempting to open two sessions within the same vert.x context: this suggests a lack of correct chaining of operations.
at io.quarkus.hibernate.reactive.panache.common.runtime.SessionOperations.guardAgainstDuplicateOpenRequest(SessionOperations.java:145)
at io.quarkus.hibernate.reactive.panache.common.runtime.SessionOperations.getSession(SessionOperations.java:168)
at io.quarkus.hibernate.reactive.panache.Panache.getSession(Panache.java:38)
at io.quarkus.hibernate.reactive.panache.test.WithSessionOnDemandTest$MrBean.ping(WithSessionOnDemandTest.java:40)
at io.quarkus.hibernate.reactive.panache.test.WithSessionOnDemandTest_MrBean_Subclass.ping$$superforward(Unknown Source)
at io.quarkus.hibernate.reactive.panache.test.WithSessionOnDemandTest_MrBean_Subclass$$function$$1.apply(Unknown Source)
at io.quarkus.arc.impl.AroundInvokeInvocationContext.proceed(AroundInvokeInvocationContext.java:73)
at io.quarkus.arc.impl.AroundInvokeInvocationContext.proceed(AroundInvokeInvocationContext.java:62)
at io.quarkus.hibernate.reactive.panache.common.runtime.AbstractUniInterceptor.proceedUni(AbstractUniInterceptor.java:12)
at io.quarkus.hibernate.reactive.panache.common.runtime.WithSessionOnDemandInterceptor.lambda$intercept$0(WithSessionOnDemandInterceptor.java:20)
at io.quarkus.hibernate.reactive.panache.common.runtime.SessionOperations.withSessionOnDemand(SessionOperations.java:78)
at io.quarkus.hibernate.reactive.panache.common.runtime.WithSessionOnDemandInterceptor.intercept(WithSessionOnDemandInterceptor.java:20)
at io.quarkus.hibernate.reactive.panache.common.runtime.WithSessionOnDemandInterceptor_Bean.intercept(Unknown Source)
at io.quarkus.arc.impl.InterceptorInvocation.invoke(InterceptorInvocation.java:42)
at io.quarkus.arc.impl.AroundInvokeInvocationContext.perform(AroundInvokeInvocationContext.java:30)
at io.quarkus.arc.impl.InvocationContexts.performAroundInvoke(InvocationContexts.java:27)
at io.quarkus.hibernate.reactive.panache.test.WithSessionOnDemandTest_MrBean_Subclass.ping(Unknown Source)
at io.quarkus.hibernate.reactive.panache.test.WithSessionOnDemandTest_MrBean_ClientProxy.ping(Unknown Source)
at io.quarkus.hibernate.reactive.panache.test.WithSessionOnDemandTest.lambda$testSharedSession$1(WithSessionOnDemandTest.java:30)
at io.quarkus.test.vertx.DefaultUniAsserter$4.apply(DefaultUniAsserter.java:94)
at io.quarkus.test.vertx.DefaultUniAsserter$4.apply(DefaultUniAsserter.java:91)
at io.smallrye.context.impl.wrappers.SlowContextualFunction.apply(SlowContextualFunction.java:21)
at io.smallrye.mutiny.operators.uni.UniOnItemTransformToUni$UniOnItemTransformToUniProcessor.performInnerSubscription(UniOnItemTransformToUni.java:68)
... 25 more
Loading