azure-sdk-for-java
azure-sdk-for-java copied to clipboard
[BUG] Encountering "java.lang.IllegalStateException: block()/blockFirst()/blockLast() are blocking, which is not supported in thread parallel-3" during delete operation after upgrading to latest Cosmos SDK and Spring Boot 3
Describe the bug We have upgraded to latest SDK and Spring Boot 3 following https://github.com/Azure-Samples/azure-spring-boot-samples/tree/main/cosmos/azure-spring-data-cosmos/spring3-samples/cosmos-quickstart-samples. But the existing delete operation is encountering the exception below. But if I keep everything the same and just downgrade to
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-spring-data-cosmos</artifactId>
<version>5.5.0</version>
</dependency>
then it works fine. Versions 5.6.0 through 5.9.1 of artifact azure-spring-data-cosmos are exhibiting this issue.
Exception or Stack Trace
2024-02-21 09:23:55,790 ERROR [WA-PF1372W8-parallel-3] a.w.r.e.AbstractErrorWebExceptionHandler- [7eba5e5c-1] 500 Server Error for HTTP DELETE "/nag_responses/na_id/1234"
java.lang.IllegalStateException: block()/blockFirst()/blockLast() are blocking, which is not supported in thread parallel-3
at reactor.core.publisher.BlockingSingleSubscriber.blockingGet(BlockingSingleSubscriber.java:86) ~[reactor-core-3.6.2.jar!/:3.6.2]
Suppressed: reactor.core.publisher.FluxOnAssembly$OnAssemblyException:
Error has been observed at the following site(s):
*__checkpoint ? AuthorizationWebFilter [DefaultWebFilterChain]
*__checkpoint ? ExceptionTranslationWebFilter [DefaultWebFilterChain]
*__checkpoint ? ServerRequestCacheWebFilter [DefaultWebFilterChain]
*__checkpoint ? SecurityContextServerWebExchangeWebFilter [DefaultWebFilterChain]
*__checkpoint ? AuthenticationWebFilter [DefaultWebFilterChain]
*__checkpoint ? ReactorContextWebFilter [DefaultWebFilterChain]
*__checkpoint ? HttpHeaderWriterWebFilter [DefaultWebFilterChain]
*__checkpoint ? ServerWebExchangeReactorContextWebFilter [DefaultWebFilterChain]
*__checkpoint ? org.springframework.security.web.server.WebFilterChainProxy [DefaultWebFilterChain]
*__checkpoint ? HTTP DELETE "/nag_responses/na_id/1234" [ExceptionHandlingWebHandler]
Original Stack Trace:
at reactor.core.publisher.BlockingSingleSubscriber.blockingGet(BlockingSingleSubscriber.java:86) ~[reactor-core-3.6.2.jar!/:3.6.2]
at reactor.core.publisher.Mono.block(Mono.java:1728) ~[reactor-core-3.6.2.jar!/:3.6.2]
at com.azure.spring.data.cosmos.core.ReactiveCosmosTemplate.delete(ReactiveCosmosTemplate.java:802) ~[azure-spring-data-cosmos-5.9.0.jar!/:5.9.0]
at com.azure.spring.data.cosmos.repository.query.ReactiveCosmosQueryExecution$DeleteExecution.execute(ReactiveCosmosQueryExecution.java:143) ~[azure-spring-data-cosmos-5.9.0.jar!/:5.9.0]
at com.azure.spring.data.cosmos.repository.query.AbstractReactiveCosmosQuery.execute(AbstractReactiveCosmosQuery.java:54) ~[azure-spring-data-cosmos-5.9.0.jar!/:5.9.0]
at org.springframework.data.repository.core.support.RepositoryMethodInvoker.doInvoke(RepositoryMethodInvoker.java:170) ~[spring-data-commons-3.2.2.jar!/:3.2.2]
at org.springframework.data.repository.core.support.RepositoryMethodInvoker.invoke(RepositoryMethodInvoker.java:158) ~[spring-data-commons-3.2.2.jar!/:3.2.2]
at org.springframework.data.repository.core.support.QueryExecutorMethodInterceptor.doInvoke(QueryExecutorMethodInterceptor.java:164) ~[spring-data-commons-3.2.2.jar!/:3.2.2]
at org.springframework.data.repository.core.support.QueryExecutorMethodInterceptor.invoke(QueryExecutorMethodInterceptor.java:143) ~[spring-data-commons-3.2.2.jar!/:3.2.2]
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184) ~[spring-aop-6.1.3.jar!/:6.1.3]
at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97) ~[spring-aop-6.1.3.jar!/:6.1.3]
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184) ~[spring-aop-6.1.3.jar!/:6.1.3]
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:220) ~[spring-aop-6.1.3.jar!/:6.1.3]
at jdk.proxy2/jdk.proxy2.$Proxy123.deleteByNaId(Unknown Source) ~[?:?]
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?]
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[?:?]
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
at java.base/java.lang.reflect.Method.invoke(Method.java:568) ~[?:?]
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351) ~[spring-aop-6.1.3.jar!/:6.1.3]
at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196) ~[spring-aop-6.1.3.jar!/:6.1.3]
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163) ~[spring-aop-6.1.3.jar!/:6.1.3]
at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:137) ~[spring-tx-6.1.3.jar!/:6.1.3]
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184) ~[spring-aop-6.1.3.jar!/:6.1.3]
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:220) ~[spring-aop-6.1.3.jar!/:6.1.3]
at jdk.proxy2/jdk.proxy2.$Proxy123.deleteByNaId(Unknown Source) ~[?:?]
at com.xxxxxxxx.nag.cacheapi.NagResponseController.deleteByNaId(NagResponseController.java:84) ~[!/:2023.1.1-SNAPSHOT]
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?]
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[?:?]
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
at java.base/java.lang.reflect.Method.invoke(Method.java:568) ~[?:?]
at org.springframework.web.reactive.result.method.InvocableHandlerMethod.lambda$invoke$1(InvocableHandlerMethod.java:182) ~[spring-webflux-6.1.3.jar!/:6.1.3]
at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:132) [reactor-core-3.6.2.jar!/:3.6.2]
at reactor.core.publisher.MonoZip$ZipCoordinator.signal(MonoZip.java:297) [reactor-core-3.6.2.jar!/:3.6.2]
at reactor.core.publisher.MonoZip$ZipInner.onNext(MonoZip.java:478) [reactor-core-3.6.2.jar!/:3.6.2]
at reactor.core.publisher.MonoPeekTerminal$MonoTerminalPeekSubscriber.onNext(MonoPeekTerminal.java:180) [reactor-core-3.6.2.jar!/:3.6.2]
at reactor.core.publisher.FluxDefaultIfEmpty$DefaultIfEmptySubscriber.onNext(FluxDefaultIfEmpty.java:122) [reactor-core-3.6.2.jar!/:3.6.2]
at reactor.core.publisher.FluxSwitchIfEmpty$SwitchIfEmptySubscriber.onNext(FluxSwitchIfEmpty.java:74) [reactor-core-3.6.2.jar!/:3.6.2]
at reactor.core.publisher.Operators$ScalarSubscription.request(Operators.java:2571) [reactor-core-3.6.2.jar!/:3.6.2]
at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.set(Operators.java:2367) [reactor-core-3.6.2.jar!/:3.6.2]
at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.onSubscribe(Operators.java:2241) [reactor-core-3.6.2.jar!/:3.6.2]
at reactor.core.publisher.FluxFlatMap.trySubscribeScalarMap(FluxFlatMap.java:193) [reactor-core-3.6.2.jar!/:3.6.2]
at reactor.core.publisher.MonoFlatMap.subscribeOrReturn(MonoFlatMap.java:53) [reactor-core-3.6.2.jar!/:3.6.2]
at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:63) [reactor-core-3.6.2.jar!/:3.6.2]
at reactor.core.publisher.MonoZip$ZipCoordinator.request(MonoZip.java:220) [reactor-core-3.6.2.jar!/:3.6.2]
at reactor.core.publisher.MonoFlatMap$FlatMapMain.request(MonoFlatMap.java:194) [reactor-core-3.6.2.jar!/:3.6.2]
at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.onSubscribe(MonoIgnoreThen.java:135) [reactor-core-3.6.2.jar!/:3.6.2]
at reactor.core.publisher.MonoFlatMap$FlatMapMain.onSubscribe(MonoFlatMap.java:117) [reactor-core-3.6.2.jar!/:3.6.2]
at reactor.core.publisher.MonoZip.subscribe(MonoZip.java:129) [reactor-core-3.6.2.jar!/:3.6.2]
at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:76) [reactor-core-3.6.2.jar!/:3.6.2]
at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) [reactor-core-3.6.2.jar!/:3.6.2]
at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:241) [reactor-core-3.6.2.jar!/:3.6.2]
at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.onComplete(MonoIgnoreThen.java:204) [reactor-core-3.6.2.jar!/:3.6.2]
at reactor.core.publisher.MonoFlatMap$FlatMapMain.onComplete(MonoFlatMap.java:189) [reactor-core-3.6.2.jar!/:3.6.2]
at reactor.core.publisher.Operators.complete(Operators.java:137) [reactor-core-3.6.2.jar!/:3.6.2]
at reactor.core.publisher.MonoZip.subscribe(MonoZip.java:121) [reactor-core-3.6.2.jar!/:3.6.2]
at reactor.core.publisher.Mono.subscribe(Mono.java:4512) [reactor-core-3.6.2.jar!/:3.6.2]
at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:265) [reactor-core-3.6.2.jar!/:3.6.2]
at reactor.core.publisher.MonoIgnoreThen.subscribe(MonoIgnoreThen.java:51) [reactor-core-3.6.2.jar!/:3.6.2]
at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:76) [reactor-core-3.6.2.jar!/:3.6.2]
at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:165) [reactor-core-3.6.2.jar!/:3.6.2]
at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onNext(FluxOnErrorResume.java:79) [reactor-core-3.6.2.jar!/:3.6.2]
at reactor.core.publisher.FluxSwitchIfEmpty$SwitchIfEmptySubscriber.onNext(FluxSwitchIfEmpty.java:74) [reactor-core-3.6.2.jar!/:3.6.2]
at reactor.core.publisher.MonoNext$NextSubscriber.onNext(MonoNext.java:82) [reactor-core-3.6.2.jar!/:3.6.2]
at reactor.core.publisher.FluxConcatMapNoPrefetch$FluxConcatMapNoPrefetchSubscriber.innerNext(FluxConcatMapNoPrefetch.java:259) [reactor-core-3.6.2.jar!/:3.6.2]
at reactor.core.publisher.FluxConcatMap$ConcatMapInner.onNext(FluxConcatMap.java:865) [reactor-core-3.6.2.jar!/:3.6.2]
at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:129) [reactor-core-3.6.2.jar!/:3.6.2]
at reactor.core.publisher.MonoPeekTerminal$MonoTerminalPeekSubscriber.onNext(MonoPeekTerminal.java:180) [reactor-core-3.6.2.jar!/:3.6.2]
at reactor.core.publisher.Operators$ScalarSubscription.request(Operators.java:2571) [reactor-core-3.6.2.jar!/:3.6.2]
at reactor.core.publisher.MonoPeekTerminal$MonoTerminalPeekSubscriber.request(MonoPeekTerminal.java:139) [reactor-core-3.6.2.jar!/:3.6.2]
at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.request(FluxMapFuseable.java:171) [reactor-core-3.6.2.jar!/:3.6.2]
at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.request(Operators.java:2331) [reactor-core-3.6.2.jar!/:3.6.2]
at reactor.core.publisher.FluxConcatMapNoPrefetch$FluxConcatMapNoPrefetchSubscriber.request(FluxConcatMapNoPrefetch.java:339) [reactor-core-3.6.2.jar!/:3.6.2]
at reactor.core.publisher.MonoNext$NextSubscriber.request(MonoNext.java:108) [reactor-core-3.6.2.jar!/:3.6.2]
at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.set(Operators.java:2367) [reactor-core-3.6.2.jar!/:3.6.2]
at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.onSubscribe(Operators.java:2241) [reactor-core-3.6.2.jar!/:3.6.2]
at reactor.core.publisher.MonoNext$NextSubscriber.onSubscribe(MonoNext.java:70) [reactor-core-3.6.2.jar!/:3.6.2]
at reactor.core.publisher.FluxConcatMapNoPrefetch$FluxConcatMapNoPrefetchSubscriber.onSubscribe(FluxConcatMapNoPrefetch.java:164) [reactor-core-3.6.2.jar!/:3.6.2]
at reactor.core.publisher.FluxIterable.subscribe(FluxIterable.java:201) [reactor-core-3.6.2.jar!/:3.6.2]
at reactor.core.publisher.FluxIterable.subscribe(FluxIterable.java:83) [reactor-core-3.6.2.jar!/:3.6.2]
at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:76) [reactor-core-3.6.2.jar!/:3.6.2]
at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) [reactor-core-3.6.2.jar!/:3.6.2]
at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:76) [reactor-core-3.6.2.jar!/:3.6.2]
at reactor.core.publisher.MonoDeferContextual.subscribe(MonoDeferContextual.java:55) [reactor-core-3.6.2.jar!/:3.6.2]
at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) [reactor-core-3.6.2.jar!/:3.6.2]
at reactor.core.publisher.Mono.subscribe(Mono.java:4512) [reactor-core-3.6.2.jar!/:3.6.2]
at reactor.core.publisher.FluxSwitchIfEmpty$SwitchIfEmptySubscriber.onComplete(FluxSwitchIfEmpty.java:82) [reactor-core-3.6.2.jar!/:3.6.2]
at reactor.core.publisher.MonoPeekTerminal$MonoTerminalPeekSubscriber.onComplete(MonoPeekTerminal.java:299) [reactor-core-3.6.2.jar!/:3.6.2]
at reactor.core.publisher.MonoPeekTerminal$MonoTerminalPeekSubscriber.onComplete(MonoPeekTerminal.java:299) [reactor-core-3.6.2.jar!/:3.6.2]
at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:155) [reactor-core-3.6.2.jar!/:3.6.2]
at reactor.core.publisher.FluxSwitchIfEmpty$SwitchIfEmptySubscriber.onNext(FluxSwitchIfEmpty.java:74) [reactor-core-3.6.2.jar!/:3.6.2]
at reactor.core.publisher.FluxFilter$FilterSubscriber.onNext(FluxFilter.java:113) [reactor-core-3.6.2.jar!/:3.6.2]
at reactor.core.publisher.MonoPeekTerminal$MonoTerminalPeekSubscriber.onNext(MonoPeekTerminal.java:180) [reactor-core-3.6.2.jar!/:3.6.2]
at reactor.core.publisher.FluxPeekFuseable$PeekFuseableConditionalSubscriber.onNext(FluxPeekFuseable.java:503) [reactor-core-3.6.2.jar!/:3.6.2]
at reactor.core.publisher.MonoPeekTerminal$MonoTerminalPeekSubscriber.onNext(MonoPeekTerminal.java:180) [reactor-core-3.6.2.jar!/:3.6.2]
at reactor.core.publisher.FluxDefaultIfEmpty$DefaultIfEmptySubscriber.onNext(FluxDefaultIfEmpty.java:122) [reactor-core-3.6.2.jar!/:3.6.2]
at reactor.core.publisher.MonoNext$NextSubscriber.onNext(MonoNext.java:82) [reactor-core-3.6.2.jar!/:3.6.2]
at reactor.core.publisher.FluxConcatMapNoPrefetch$FluxConcatMapNoPrefetchSubscriber.innerNext(FluxConcatMapNoPrefetch.java:259) [reactor-core-3.6.2.jar!/:3.6.2]
at reactor.core.publisher.FluxConcatMap$ConcatMapInner.onNext(FluxConcatMap.java:865) [reactor-core-3.6.2.jar!/:3.6.2]
at reactor.core.publisher.MonoFlatMap$FlatMapMain.secondComplete(MonoFlatMap.java:245) [reactor-core-3.6.2.jar!/:3.6.2]
at reactor.core.publisher.MonoFlatMap$FlatMapInner.onNext(MonoFlatMap.java:305) [reactor-core-3.6.2.jar!/:3.6.2]
at reactor.core.publisher.FluxDefaultIfEmpty$DefaultIfEmptySubscriber.onNext(FluxDefaultIfEmpty.java:122) [reactor-core-3.6.2.jar!/:3.6.2]
at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:129) [reactor-core-3.6.2.jar!/:3.6.2]
at reactor.core.publisher.FluxFilterFuseable$FilterFuseableSubscriber.onNext(FluxFilterFuseable.java:118) [reactor-core-3.6.2.jar!/:3.6.2]
at reactor.core.publisher.FluxMapFuseable$MapFuseableConditionalSubscriber.onNext(FluxMapFuseable.java:299) [reactor-core-3.6.2.jar!/:3.6.2]
at reactor.core.publisher.FluxMapFuseable$MapFuseableConditionalSubscriber.onNext(FluxMapFuseable.java:299) [reactor-core-3.6.2.jar!/:3.6.2]
at reactor.core.publisher.FluxFilterFuseable$FilterFuseableConditionalSubscriber.onNext(FluxFilterFuseable.java:337) [reactor-core-3.6.2.jar!/:3.6.2]
at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:158) [reactor-core-3.6.2.jar!/:3.6.2]
at reactor.core.publisher.FluxFilter$FilterSubscriber.onNext(FluxFilter.java:113) [reactor-core-3.6.2.jar!/:3.6.2]
at reactor.core.publisher.FluxMap$MapConditionalSubscriber.onNext(FluxMap.java:224) [reactor-core-3.6.2.jar!/:3.6.2]
at reactor.core.publisher.Operators$ScalarSubscription.request(Operators.java:2571) [reactor-core-3.6.2.jar!/:3.6.2]
at reactor.core.publisher.FluxMap$MapConditionalSubscriber.request(FluxMap.java:295) [reactor-core-3.6.2.jar!/:3.6.2]
at reactor.core.publisher.FluxFilter$FilterSubscriber.request(FluxFilter.java:186) [reactor-core-3.6.2.jar!/:3.6.2]
at reactor.core.publisher.MonoFlatMap$FlatMapMain.request(MonoFlatMap.java:194) [reactor-core-3.6.2.jar!/:3.6.2]
at reactor.core.publisher.FluxFilterFuseable$FilterFuseableConditionalSubscriber.request(FluxFilterFuseable.java:411) [reactor-core-3.6.2.jar!/:3.6.2]
at reactor.core.publisher.FluxMapFuseable$MapFuseableConditionalSubscriber.request(FluxMapFuseable.java:360) [reactor-core-3.6.2.jar!/:3.6.2]
at reactor.core.publisher.FluxMapFuseable$MapFuseableConditionalSubscriber.request(FluxMapFuseable.java:360) [reactor-core-3.6.2.jar!/:3.6.2]
at reactor.core.publisher.FluxFilterFuseable$FilterFuseableSubscriber.request(FluxFilterFuseable.java:191) [reactor-core-3.6.2.jar!/:3.6.2]
at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.request(FluxMapFuseable.java:171) [reactor-core-3.6.2.jar!/:3.6.2]
at reactor.core.publisher.FluxDefaultIfEmpty$DefaultIfEmptySubscriber.request(FluxDefaultIfEmpty.java:98) [reactor-core-3.6.2.jar!/:3.6.2]
at reactor.core.publisher.MonoFlatMap$FlatMapInner.onSubscribe(MonoFlatMap.java:291) [reactor-core-3.6.2.jar!/:3.6.2]
at reactor.core.publisher.Operators$BaseFluxToMonoOperator.onSubscribe(Operators.java:2051) [reactor-core-3.6.2.jar!/:3.6.2]
at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onSubscribe(FluxMapFuseable.java:96) [reactor-core-3.6.2.jar!/:3.6.2]
at reactor.core.publisher.FluxFilterFuseable$FilterFuseableSubscriber.onSubscribe(FluxFilterFuseable.java:87) [reactor-core-3.6.2.jar!/:3.6.2]
at reactor.core.publisher.FluxMapFuseable$MapFuseableConditionalSubscriber.onSubscribe(FluxMapFuseable.java:265) [reactor-core-3.6.2.jar!/:3.6.2]
at reactor.core.publisher.FluxMapFuseable$MapFuseableConditionalSubscriber.onSubscribe(FluxMapFuseable.java:265) [reactor-core-3.6.2.jar!/:3.6.2]
at reactor.core.publisher.FluxFilterFuseable$FilterFuseableConditionalSubscriber.onSubscribe(FluxFilterFuseable.java:305) [reactor-core-3.6.2.jar!/:3.6.2]
at reactor.core.publisher.MonoFlatMap$FlatMapMain.onSubscribe(MonoFlatMap.java:117) [reactor-core-3.6.2.jar!/:3.6.2]
at reactor.core.publisher.FluxFilter$FilterSubscriber.onSubscribe(FluxFilter.java:85) [reactor-core-3.6.2.jar!/:3.6.2]
at reactor.core.publisher.FluxMap$MapConditionalSubscriber.onSubscribe(FluxMap.java:194) [reactor-core-3.6.2.jar!/:3.6.2]
at reactor.core.publisher.MonoJust.subscribe(MonoJust.java:55) [reactor-core-3.6.2.jar!/:3.6.2]
at reactor.core.publisher.MonoDeferContextual.subscribe(MonoDeferContextual.java:55) [reactor-core-3.6.2.jar!/:3.6.2]
at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:76) [reactor-core-3.6.2.jar!/:3.6.2]
at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:165) [reactor-core-3.6.2.jar!/:3.6.2]
at reactor.core.publisher.FluxMap$MapSubscriber.onNext(FluxMap.java:122) [reactor-core-3.6.2.jar!/:3.6.2]
at reactor.core.publisher.FluxFilter$FilterSubscriber.onNext(FluxFilter.java:113) [reactor-core-3.6.2.jar!/:3.6.2]
at reactor.core.publisher.FluxPeekFuseable$PeekConditionalSubscriber.onNext(FluxPeekFuseable.java:854) [reactor-core-3.6.2.jar!/:3.6.2]
at reactor.core.publisher.FluxSwitchIfEmpty$SwitchIfEmptySubscriber.onNext(FluxSwitchIfEmpty.java:74) [reactor-core-3.6.2.jar!/:3.6.2]
at reactor.core.publisher.MonoNext$NextSubscriber.onNext(MonoNext.java:82) [reactor-core-3.6.2.jar!/:3.6.2]
at reactor.core.publisher.FluxFilter$FilterSubscriber.onNext(FluxFilter.java:113) [reactor-core-3.6.2.jar!/:3.6.2]
at reactor.core.publisher.FluxFlatMap$FlatMapMain.tryEmitScalar(FluxFlatMap.java:492) [reactor-core-3.6.2.jar!/:3.6.2]
at reactor.core.publisher.FluxFlatMap$FlatMapMain.onNext(FluxFlatMap.java:424) [reactor-core-3.6.2.jar!/:3.6.2]
at reactor.core.publisher.FluxPeekFuseable$PeekFuseableSubscriber.onNext(FluxPeekFuseable.java:210) [reactor-core-3.6.2.jar!/:3.6.2]
at reactor.core.publisher.FluxIterable$IterableSubscription.slowPath(FluxIterable.java:335) [reactor-core-3.6.2.jar!/:3.6.2]
at reactor.core.publisher.FluxIterable$IterableSubscription.request(FluxIterable.java:294) [reactor-core-3.6.2.jar!/:3.6.2]
at reactor.core.publisher.FluxPeekFuseable$PeekFuseableSubscriber.request(FluxPeekFuseable.java:144) [reactor-core-3.6.2.jar!/:3.6.2]
at reactor.core.publisher.FluxFlatMap$FlatMapMain.onSubscribe(FluxFlatMap.java:373) [reactor-core-3.6.2.jar!/:3.6.2]
at reactor.core.publisher.FluxPeekFuseable$PeekFuseableSubscriber.onSubscribe(FluxPeekFuseable.java:178) [reactor-core-3.6.2.jar!/:3.6.2]
at reactor.core.publisher.FluxIterable.subscribe(FluxIterable.java:201) [reactor-core-3.6.2.jar!/:3.6.2]
at reactor.core.publisher.FluxIterable.subscribe(FluxIterable.java:83) [reactor-core-3.6.2.jar!/:3.6.2]
at reactor.core.publisher.Mono.subscribe(Mono.java:4512) [reactor-core-3.6.2.jar!/:3.6.2]
at reactor.core.publisher.FluxConcatMapNoPrefetch$FluxConcatMapNoPrefetchSubscriber.onNext(FluxConcatMapNoPrefetch.java:207) [reactor-core-3.6.2.jar!/:3.6.2]
at reactor.core.publisher.FluxIterable$IterableSubscription.slowPath(FluxIterable.java:335) [reactor-core-3.6.2.jar!/:3.6.2]
at reactor.core.publisher.FluxIterable$IterableSubscription.request(FluxIterable.java:294) [reactor-core-3.6.2.jar!/:3.6.2]
at reactor.core.publisher.FluxConcatMapNoPrefetch$FluxConcatMapNoPrefetchSubscriber.innerComplete(FluxConcatMapNoPrefetch.java:275) [reactor-core-3.6.2.jar!/:3.6.2]
at reactor.core.publisher.FluxConcatMap$ConcatMapInner.onComplete(FluxConcatMap.java:889) [reactor-core-3.6.2.jar!/:3.6.2]
at reactor.core.publisher.MonoFlatMap$FlatMapMain.onComplete(MonoFlatMap.java:189) [reactor-core-3.6.2.jar!/:3.6.2]
at reactor.core.publisher.FluxMap$MapSubscriber.onComplete(FluxMap.java:144) [reactor-core-3.6.2.jar!/:3.6.2]
at reactor.core.publisher.FluxFilter$FilterSubscriber.onComplete(FluxFilter.java:166) [reactor-core-3.6.2.jar!/:3.6.2]
at reactor.core.publisher.FluxPeekFuseable$PeekConditionalSubscriber.onComplete(FluxPeekFuseable.java:940) [reactor-core-3.6.2.jar!/:3.6.2]
at reactor.core.publisher.FluxSwitchIfEmpty$SwitchIfEmptySubscriber.onComplete(FluxSwitchIfEmpty.java:85) [reactor-core-3.6.2.jar!/:3.6.2]
at reactor.core.publisher.Operators$ScalarSubscription.request(Operators.java:2573) [reactor-core-3.6.2.jar!/:3.6.2]
at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.set(Operators.java:2367) [reactor-core-3.6.2.jar!/:3.6.2]
at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.onSubscribe(Operators.java:2241) [reactor-core-3.6.2.jar!/:3.6.2]
at reactor.core.publisher.MonoJust.subscribe(MonoJust.java:55) [reactor-core-3.6.2.jar!/:3.6.2]
at reactor.core.publisher.Mono.subscribe(Mono.java:4512) [reactor-core-3.6.2.jar!/:3.6.2]
at reactor.core.publisher.FluxSwitchIfEmpty$SwitchIfEmptySubscriber.onComplete(FluxSwitchIfEmpty.java:82) [reactor-core-3.6.2.jar!/:3.6.2]
at reactor.core.publisher.MonoNext$NextSubscriber.onComplete(MonoNext.java:102) [reactor-core-3.6.2.jar!/:3.6.2]
at reactor.core.publisher.FluxFilter$FilterSubscriber.onComplete(FluxFilter.java:166) [reactor-core-3.6.2.jar!/:3.6.2]
at reactor.core.publisher.FluxFlatMap$FlatMapMain.checkTerminated(FluxFlatMap.java:850) [reactor-core-3.6.2.jar!/:3.6.2]
at reactor.core.publisher.FluxFlatMap$FlatMapMain.drainLoop(FluxFlatMap.java:612) [reactor-core-3.6.2.jar!/:3.6.2]
at reactor.core.publisher.FluxFlatMap$FlatMapMain.drain(FluxFlatMap.java:592) [reactor-core-3.6.2.jar!/:3.6.2]
at reactor.core.publisher.FluxFlatMap$FlatMapMain.request(FluxFlatMap.java:349) [reactor-core-3.6.2.jar!/:3.6.2]
at reactor.core.publisher.FluxFilter$FilterSubscriber.request(FluxFilter.java:186) [reactor-core-3.6.2.jar!/:3.6.2]
at reactor.core.publisher.MonoNext$NextSubscriber.request(MonoNext.java:108) [reactor-core-3.6.2.jar!/:3.6.2]
at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.request(Operators.java:2331) [reactor-core-3.6.2.jar!/:3.6.2]
at reactor.core.publisher.FluxPeekFuseable$PeekConditionalSubscriber.request(FluxPeekFuseable.java:783) [reactor-core-3.6.2.jar!/:3.6.2]
at reactor.core.publisher.FluxFilter$FilterSubscriber.request(FluxFilter.java:186) [reactor-core-3.6.2.jar!/:3.6.2]
at reactor.core.publisher.FluxMap$MapSubscriber.request(FluxMap.java:164) [reactor-core-3.6.2.jar!/:3.6.2]
at reactor.core.publisher.MonoFlatMap$FlatMapMain.request(MonoFlatMap.java:194) [reactor-core-3.6.2.jar!/:3.6.2]
at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.request(Operators.java:2331) [reactor-core-3.6.2.jar!/:3.6.2]
at reactor.core.publisher.FluxConcatMapNoPrefetch$FluxConcatMapNoPrefetchSubscriber.request(FluxConcatMapNoPrefetch.java:339) [reactor-core-3.6.2.jar!/:3.6.2]
at reactor.core.publisher.MonoNext$NextSubscriber.request(MonoNext.java:108) [reactor-core-3.6.2.jar!/:3.6.2]
at reactor.core.publisher.FluxDefaultIfEmpty$DefaultIfEmptySubscriber.request(FluxDefaultIfEmpty.java:98) [reactor-core-3.6.2.jar!/:3.6.2]
at reactor.core.publisher.MonoPeekTerminal$MonoTerminalPeekSubscriber.request(MonoPeekTerminal.java:139) [reactor-core-3.6.2.jar!/:3.6.2]
at reactor.core.publisher.FluxPeekFuseable$PeekFuseableConditionalSubscriber.request(FluxPeekFuseable.java:437) [reactor-core-3.6.2.jar!/:3.6.2]
at reactor.core.publisher.MonoPeekTerminal$MonoTerminalPeekSubscriber.request(MonoPeekTerminal.java:139) [reactor-core-3.6.2.jar!/:3.6.2]
at reactor.core.publisher.FluxFilter$FilterSubscriber.request(FluxFilter.java:186) [reactor-core-3.6.2.jar!/:3.6.2]
at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.set(Operators.java:2367) [reactor-core-3.6.2.jar!/:3.6.2]
at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.onSubscribe(Operators.java:2241) [reactor-core-3.6.2.jar!/:3.6.2]
at reactor.core.publisher.FluxFilter$FilterSubscriber.onSubscribe(FluxFilter.java:85) [reactor-core-3.6.2.jar!/:3.6.2]
at reactor.core.publisher.MonoPeekTerminal$MonoTerminalPeekSubscriber.onSubscribe(MonoPeekTerminal.java:152) [reactor-core-3.6.2.jar!/:3.6.2]
at reactor.core.publisher.FluxPeekFuseable$PeekFuseableConditionalSubscriber.onSubscribe(FluxPeekFuseable.java:471) [reactor-core-3.6.2.jar!/:3.6.2]
at reactor.core.publisher.MonoPeekTerminal$MonoTerminalPeekSubscriber.onSubscribe(MonoPeekTerminal.java:152) [reactor-core-3.6.2.jar!/:3.6.2]
at reactor.core.publisher.Operators$BaseFluxToMonoOperator.onSubscribe(Operators.java:2051) [reactor-core-3.6.2.jar!/:3.6.2]
at reactor.core.publisher.MonoNext$NextSubscriber.onSubscribe(MonoNext.java:70) [reactor-core-3.6.2.jar!/:3.6.2]
at reactor.core.publisher.FluxConcatMapNoPrefetch$FluxConcatMapNoPrefetchSubscriber.onSubscribe(FluxConcatMapNoPrefetch.java:164) [reactor-core-3.6.2.jar!/:3.6.2]
at reactor.core.publisher.FluxIterable.subscribe(FluxIterable.java:201) [reactor-core-3.6.2.jar!/:3.6.2]
at reactor.core.publisher.FluxIterable.subscribe(FluxIterable.java:83) [reactor-core-3.6.2.jar!/:3.6.2]
at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:76) [reactor-core-3.6.2.jar!/:3.6.2]
at reactor.core.publisher.MonoDeferContextual.subscribe(MonoDeferContextual.java:55) [reactor-core-3.6.2.jar!/:3.6.2]
at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:76) [reactor-core-3.6.2.jar!/:3.6.2]
at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) [reactor-core-3.6.2.jar!/:3.6.2]
at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:76) [reactor-core-3.6.2.jar!/:3.6.2]
at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) [reactor-core-3.6.2.jar!/:3.6.2]
at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:165) [reactor-core-3.6.2.jar!/:3.6.2]
at reactor.core.publisher.Operators$BaseFluxToMonoOperator.completePossiblyEmpty(Operators.java:2097) [reactor-core-3.6.2.jar!/:3.6.2]
at reactor.core.publisher.FluxDefaultIfEmpty$DefaultIfEmptySubscriber.onComplete(FluxDefaultIfEmpty.java:134) [reactor-core-3.6.2.jar!/:3.6.2]
at reactor.core.publisher.FluxMap$MapSubscriber.onComplete(FluxMap.java:144) [reactor-core-3.6.2.jar!/:3.6.2]
at reactor.core.publisher.FluxMap$MapSubscriber.onComplete(FluxMap.java:144) [reactor-core-3.6.2.jar!/:3.6.2]
at reactor.core.publisher.FluxFilter$FilterSubscriber.onComplete(FluxFilter.java:166) [reactor-core-3.6.2.jar!/:3.6.2]
at reactor.core.publisher.FluxMap$MapConditionalSubscriber.onComplete(FluxMap.java:275) [reactor-core-3.6.2.jar!/:3.6.2]
at reactor.core.publisher.Operators$MonoSubscriber.complete(Operators.java:1866) [reactor-core-3.6.2.jar!/:3.6.2]
at reactor.core.publisher.MonoCacheTime$CoordinatorSubscriber.signalCached(MonoCacheTime.java:337) [reactor-core-3.6.2.jar!/:3.6.2]
at reactor.core.publisher.MonoCacheTime$CoordinatorSubscriber.onNext(MonoCacheTime.java:354) [reactor-core-3.6.2.jar!/:3.6.2]
at reactor.core.publisher.FluxPeek$PeekSubscriber.onNext(FluxPeek.java:200) [reactor-core-3.6.2.jar!/:3.6.2]
at reactor.core.publisher.FluxSwitchIfEmpty$SwitchIfEmptySubscriber.onNext(FluxSwitchIfEmpty.java:74) [reactor-core-3.6.2.jar!/:3.6.2]
at reactor.core.publisher.MonoPeekTerminal$MonoTerminalPeekSubscriber.onNext(MonoPeekTerminal.java:180) [reactor-core-3.6.2.jar!/:3.6.2]
at reactor.core.publisher.MonoPublishOn$PublishOnSubscriber.run(MonoPublishOn.java:181) [reactor-core-3.6.2.jar!/:3.6.2]
at reactor.core.scheduler.SchedulerTask.call(SchedulerTask.java:68) [reactor-core-3.6.2.jar!/:3.6.2]
at reactor.core.scheduler.SchedulerTask.call(SchedulerTask.java:28) [reactor-core-3.6.2.jar!/:3.6.2]
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) [?:?]
at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304) [?:?]
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) [?:?]
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) [?:?]
at java.base/java.lang.Thread.run(Thread.java:840) [?:?]
To Reproduce Use below snippets
Code Snippet
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@Container(containerName = "NagResponses")
public class NagResponse {
@Id
@GeneratedValue
private String id;
@PartitionKey
private Integer partitionKey;
private String naId;
@NotNull
private Integer ttl;
@NotNull
private String responseBlob;
}
@Repository
public interface NagResponseRepository extends ReactiveCosmosRepository<NagResponse, String> {
Mono<Void> deleteByNaId(String naId);
}
Expected behavior This should not throw exception in latest SDK.
Setup (please complete the following information):
- OS: Linux, Windows
- IDE: IntelliJ
- Library/Libraries: using latest spring boot and SDK following https://github.com/Azure-Samples/azure-spring-boot-samples/tree/main/cosmos/azure-spring-data-cosmos/spring3-samples/cosmos-quickstart-samples
- Java version: JDK 17
- App Server/Environment: Spring/MVC
- Frameworks: Spring Boot 3
Additional context None
Information Checklist Kindly make sure that you have added all the following information above and checkoff the required fields otherwise we will treat the issuer as an incomplete report
- [x] Bug Description Added
- [x] Repro Steps Added
- [x] Setup information Added
@kushagraThapar could you please help route this customer-reported
issue from @edavedian
@edavedian please note that we recommend filing an Azure Support ticket,
https://github.com/Azure/azure-sdk-for-java/blob/main/SUPPORT.md#azure-support-tickets, if this requires immediate attention. Otherwise someone from the Cosmos DB SDK
team will follow up on GitHub shortly.
@edavedian - this has been fixed and releases as part of this version - https://github.com/Azure/azure-sdk-for-java/blob/main/sdk/spring/azure-spring-data-cosmos/CHANGELOG.md#5100-2024-03-01