halo
halo copied to clipboard
使用docker运行,控制台报错
是什么版本出现了此问题?
2.0.0-alpha.2
使用的什么数据库?
H2
使用的哪种方式部署?
Docker
在线站点地址
No response
发生了什么?
2022-10-18T11:05:28.744+08:00 ERROR 7 --- [pool-5-thread-1] r.h.a.e.controller.DefaultController : Reconciler aborted with an error, re-enqueuing...
org.springframework.dao.OptimisticLockingFailureException: Failed to update table [extensions]; Version does not match for row with Id [/registry/roles/anonymous]
at org.springframework.data.r2dbc.core.R2dbcEntityTemplate.lambda$doUpdate$12(R2dbcEntityTemplate.java:711) ~[spring-data-r2dbc-3.0.0-M6.jar:3.0.0-M6]
at reactor.core.publisher.FluxHandle$HandleSubscriber.onNext(FluxHandle.java:110) ~[reactor-core-3.5.0-M6.jar:3.5.0-M6]
at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onNext(FluxOnErrorResume.java:79) ~[reactor-core-3.5.0-M6.jar:3.5.0-M6]
at reactor.core.publisher.MonoUsingWhen$MonoUsingWhenSubscriber.deferredComplete(MonoUsingWhen.java:268) ~[reactor-core-3.5.0-M6.jar:3.5.0-M6]
at reactor.core.publisher.FluxUsingWhen$CommitInner.onComplete(FluxUsingWhen.java:527) ~[reactor-core-3.5.0-M6.jar:3.5.0-M6]
at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.onComplete(Operators.java:2203) ~[reactor-core-3.5.0-M6.jar:3.5.0-M6]
at reactor.core.publisher.FluxPeek$PeekSubscriber.onComplete(FluxPeek.java:260) ~[reactor-core-3.5.0-M6.jar:3.5.0-M6]
at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.onComplete(Operators.java:2203) ~[reactor-core-3.5.0-M6.jar:3.5.0-M6]
at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.onComplete(MonoIgnoreThen.java:209) ~[reactor-core-3.5.0-M6.jar:3.5.0-M6]
at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.onComplete(MonoIgnoreThen.java:209) ~[reactor-core-3.5.0-M6.jar:3.5.0-M6]
at reactor.pool.SimpleDequePool.maybeRecycleAndDrain(SimpleDequePool.java:531) ~[reactor-pool-1.0.0-M6.jar:1.0.0-M6]
at reactor.pool.SimpleDequePool$QueuePoolRecyclerInner.onComplete(SimpleDequePool.java:761) ~[reactor-pool-1.0.0-M6.jar:1.0.0-M6]
at reactor.core.publisher.Operators.complete(Operators.java:137) ~[reactor-core-3.5.0-M6.jar:3.5.0-M6]
at reactor.core.publisher.MonoEmpty.subscribe(MonoEmpty.java:46) ~[reactor-core-3.5.0-M6.jar:3.5.0-M6]
at reactor.core.publisher.Mono.subscribe(Mono.java:4379) ~[reactor-core-3.5.0-M6.jar:3.5.0-M6]
at reactor.pool.SimpleDequePool$QueuePoolRecyclerMono.subscribe(SimpleDequePool.java:873) ~[reactor-pool-1.0.0-M6.jar:1.0.0-M6]
at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:52) ~[reactor-core-3.5.0-M6.jar:3.5.0-M6]
at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:240) ~[reactor-core-3.5.0-M6.jar:3.5.0-M6]
at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.onComplete(MonoIgnoreThen.java:203) ~[reactor-core-3.5.0-M6.jar:3.5.0-M6]
at reactor.core.publisher.FluxPeek$PeekSubscriber.onComplete(FluxPeek.java:260) ~[reactor-core-3.5.0-M6.jar:3.5.0-M6]
at reactor.core.publisher.Operators.complete(Operators.java:137) ~[reactor-core-3.5.0-M6.jar:3.5.0-M6]
at reactor.core.publisher.MonoEmpty.subscribe(MonoEmpty.java:46) ~[reactor-core-3.5.0-M6.jar:3.5.0-M6]
at reactor.core.publisher.Mono.subscribe(Mono.java:4379) ~[reactor-core-3.5.0-M6.jar:3.5.0-M6]
at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:263) ~[reactor-core-3.5.0-M6.jar:3.5.0-M6]
at reactor.core.publisher.MonoIgnoreThen.subscribe(MonoIgnoreThen.java:51) ~[reactor-core-3.5.0-M6.jar:3.5.0-M6]
at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:52) ~[reactor-core-3.5.0-M6.jar:3.5.0-M6]
at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:240) ~[reactor-core-3.5.0-M6.jar:3.5.0-M6]
at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.onComplete(MonoIgnoreThen.java:203) ~[reactor-core-3.5.0-M6.jar:3.5.0-M6]
at reactor.core.publisher.MonoIgnoreElements$IgnoreElementsSubscriber.onComplete(MonoIgnoreElements.java:89) ~[reactor-core-3.5.0-M6.jar:3.5.0-M6]
at reactor.core.publisher.FluxHandle$HandleSubscriber.onComplete(FluxHandle.java:220) ~[reactor-core-3.5.0-M6.jar:3.5.0-M6]
at reactor.core.publisher.FluxSwitchIfEmpty$SwitchIfEmptySubscriber.onComplete(FluxSwitchIfEmpty.java:85) ~[reactor-core-3.5.0-M6.jar:3.5.0-M6]
at reactor.core.publisher.MonoCallable$MonoCallableSubscription.request(MonoCallable.java:159) ~[reactor-core-3.5.0-M6.jar:3.5.0-M6]
at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.set(Operators.java:2339) ~[reactor-core-3.5.0-M6.jar:3.5.0-M6]
at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.onSubscribe(Operators.java:2213) ~[reactor-core-3.5.0-M6.jar:3.5.0-M6]
at reactor.core.publisher.MonoCallable.subscribe(MonoCallable.java:48) ~[reactor-core-3.5.0-M6.jar:3.5.0-M6]
at reactor.core.publisher.Mono.subscribe(Mono.java:4379) ~[reactor-core-3.5.0-M6.jar:3.5.0-M6]
at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:263) ~[reactor-core-3.5.0-M6.jar:3.5.0-M6]
at reactor.core.publisher.MonoIgnoreThen.subscribe(MonoIgnoreThen.java:51) ~[reactor-core-3.5.0-M6.jar:3.5.0-M6]
at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) ~[reactor-core-3.5.0-M6.jar:3.5.0-M6]
at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:52) ~[reactor-core-3.5.0-M6.jar:3.5.0-M6]
at reactor.core.publisher.Mono.subscribe(Mono.java:4379) ~[reactor-core-3.5.0-M6.jar:3.5.0-M6]
at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onError(FluxOnErrorResume.java:103) ~[reactor-core-3.5.0-M6.jar:3.5.0-M6]
at reactor.core.publisher.MonoIgnoreElements$IgnoreElementsSubscriber.onError(MonoIgnoreElements.java:84) ~[reactor-core-3.5.0-M6.jar:3.5.0-M6]
at reactor.core.publisher.FluxMap$MapSubscriber.onError(FluxMap.java:134) ~[reactor-core-3.5.0-M6.jar:3.5.0-M6]
at reactor.core.publisher.FluxFilter$FilterSubscriber.onError(FluxFilter.java:157) ~[reactor-core-3.5.0-M6.jar:3.5.0-M6]
at reactor.core.publisher.FluxFilter$FilterConditionalSubscriber.onError(FluxFilter.java:291) ~[reactor-core-3.5.0-M6.jar:3.5.0-M6]
at reactor.core.publisher.FluxMap$MapConditionalSubscriber.onError(FluxMap.java:265) ~[reactor-core-3.5.0-M6.jar:3.5.0-M6]
at reactor.core.publisher.Operators.error(Operators.java:198) ~[reactor-core-3.5.0-M6.jar:3.5.0-M6]
at reactor.core.publisher.MonoError.subscribe(MonoError.java:53) ~[reactor-core-3.5.0-M6.jar:3.5.0-M6]
at reactor.core.publisher.MonoDeferContextual.subscribe(MonoDeferContextual.java:55) ~[reactor-core-3.5.0-M6.jar:3.5.0-M6]
at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) ~[reactor-core-3.5.0-M6.jar:3.5.0-M6]
at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:52) ~[reactor-core-3.5.0-M6.jar:3.5.0-M6]
at reactor.core.publisher.Mono.subscribe(Mono.java:4379) ~[reactor-core-3.5.0-M6.jar:3.5.0-M6]
at reactor.core.publisher.FluxUsingWhen$UsingWhenSubscriber.onComplete(FluxUsingWhen.java:384) ~[reactor-core-3.5.0-M6.jar:3.5.0-M6]
at reactor.core.publisher.Operators$BaseFluxToMonoOperator.completePossiblyEmpty(Operators.java:2070) ~[reactor-core-3.5.0-M6.jar:3.5.0-M6]
at reactor.core.publisher.MonoStreamCollector$StreamCollectorSubscriber.onComplete(MonoStreamCollector.java:159) ~[reactor-core-3.5.0-M6.jar:3.5.0-M6]
at reactor.core.publisher.FluxMap$MapSubscriber.onComplete(FluxMap.java:144) ~[reactor-core-3.5.0-M6.jar:3.5.0-M6]
at reactor.core.publisher.FluxFlatMap$FlatMapMain.checkTerminated(FluxFlatMap.java:846) ~[reactor-core-3.5.0-M6.jar:3.5.0-M6]
at reactor.core.publisher.FluxFlatMap$FlatMapMain.drainLoop(FluxFlatMap.java:608) ~[reactor-core-3.5.0-M6.jar:3.5.0-M6]
at reactor.core.publisher.FluxFlatMap$FlatMapMain.drain(FluxFlatMap.java:588) ~[reactor-core-3.5.0-M6.jar:3.5.0-M6]
at reactor.core.publisher.FluxFlatMap$FlatMapMain.onComplete(FluxFlatMap.java:465) ~[reactor-core-3.5.0-M6.jar:3.5.0-M6]
at reactor.core.publisher.FluxOnAssembly$OnAssemblySubscriber.onComplete(FluxOnAssembly.java:549) ~[reactor-core-3.5.0-M6.jar:3.5.0-M6]
at reactor.core.publisher.FluxMap$MapSubscriber.onComplete(FluxMap.java:144) ~[reactor-core-3.5.0-M6.jar:3.5.0-M6]
at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onComplete(FluxMapFuseable.java:152) ~[reactor-core-3.5.0-M6.jar:3.5.0-M6]
at reactor.core.publisher.FluxIterable$IterableSubscription.slowPath(FluxIterable.java:294) ~[reactor-core-3.5.0-M6.jar:3.5.0-M6]
at reactor.core.publisher.FluxIterable$IterableSubscription.request(FluxIterable.java:230) ~[reactor-core-3.5.0-M6.jar:3.5.0-M6]
at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.request(FluxMapFuseable.java:171) ~[reactor-core-3.5.0-M6.jar:3.5.0-M6]
at reactor.core.publisher.FluxMap$MapSubscriber.request(FluxMap.java:164) ~[reactor-core-3.5.0-M6.jar:3.5.0-M6]
at reactor.core.publisher.FluxOnAssembly$OnAssemblySubscriber.request(FluxOnAssembly.java:649) ~[reactor-core-3.5.0-M6.jar:3.5.0-M6]
at reactor.core.publisher.FluxFlatMap$FlatMapMain.onSubscribe(FluxFlatMap.java:371) ~[reactor-core-3.5.0-M6.jar:3.5.0-M6]
at reactor.core.publisher.FluxOnAssembly$OnAssemblySubscriber.onSubscribe(FluxOnAssembly.java:633) ~[reactor-core-3.5.0-M6.jar:3.5.0-M6]
at reactor.core.publisher.FluxMap$MapSubscriber.onSubscribe(FluxMap.java:92) ~[reactor-core-3.5.0-M6.jar:3.5.0-M6]
at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onSubscribe(FluxMapFuseable.java:96) ~[reactor-core-3.5.0-M6.jar:3.5.0-M6]
at reactor.core.publisher.FluxIterable.subscribe(FluxIterable.java:165) ~[reactor-core-3.5.0-M6.jar:3.5.0-M6]
at reactor.core.publisher.FluxIterable.subscribe(FluxIterable.java:87) ~[reactor-core-3.5.0-M6.jar:3.5.0-M6]
at reactor.core.publisher.Flux.subscribe(Flux.java:8515) ~[reactor-core-3.5.0-M6.jar:3.5.0-M6]
at reactor.core.publisher.FluxFlatMap.trySubscribeScalarMap(FluxFlatMap.java:200) ~[reactor-core-3.5.0-M6.jar:3.5.0-M6]
at reactor.core.publisher.FluxFlatMap.subscribeOrReturn(FluxFlatMap.java:93) ~[reactor-core-3.5.0-M6.jar:3.5.0-M6]
at reactor.core.publisher.MonoFromFluxOperator.subscribe(MonoFromFluxOperator.java:74) ~[reactor-core-3.5.0-M6.jar:3.5.0-M6]
at reactor.core.publisher.MonoUsingWhen$ResourceSubscriber.onNext(MonoUsingWhen.java:183) ~[reactor-core-3.5.0-M6.jar:3.5.0-M6]
at reactor.core.publisher.FluxMap$MapSubscriber.onNext(FluxMap.java:122) ~[reactor-core-3.5.0-M6.jar:3.5.0-M6]
at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onNext(FluxOnErrorResume.java:79) ~[reactor-core-3.5.0-M6.jar:3.5.0-M6]
at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onNext(FluxOnErrorResume.java:79) ~[reactor-core-3.5.0-M6.jar:3.5.0-M6]
at reactor.core.publisher.FluxRetry$RetrySubscriber.onNext(FluxRetry.java:87) ~[reactor-core-3.5.0-M6.jar:3.5.0-M6]
at reactor.core.publisher.MonoFlatMap$FlatMapMain.secondComplete(MonoFlatMap.java:245) ~[reactor-core-3.5.0-M6.jar:3.5.0-M6]
at reactor.core.publisher.MonoFlatMap$FlatMapInner.onNext(MonoFlatMap.java:305) ~[reactor-core-3.5.0-M6.jar:3.5.0-M6]
at io.r2dbc.pool.MonoDiscardOnCancel$MonoDiscardOnCancelSubscriber.onNext(MonoDiscardOnCancel.java:92) ~[r2dbc-pool-1.0.0.RC1.jar:1.0.0.RC1]
at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onNext(FluxOnErrorResume.java:79) ~[reactor-core-3.5.0-M6.jar:3.5.0-M6]
at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.complete(MonoIgnoreThen.java:292) ~[reactor-core-3.5.0-M6.jar:3.5.0-M6]
at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.onNext(MonoIgnoreThen.java:187) ~[reactor-core-3.5.0-M6.jar:3.5.0-M6]
at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:236) ~[reactor-core-3.5.0-M6.jar:3.5.0-M6]
at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.onComplete(MonoIgnoreThen.java:203) ~[reactor-core-3.5.0-M6.jar:3.5.0-M6]
at reactor.core.publisher.MonoIgnoreElements$IgnoreElementsSubscriber.onComplete(MonoIgnoreElements.java:89) ~[reactor-core-3.5.0-M6.jar:3.5.0-M6]
at reactor.core.publisher.FluxHandle$HandleSubscriber.onComplete(FluxHandle.java:220) ~[reactor-core-3.5.0-M6.jar:3.5.0-M6]
at reactor.core.publisher.FluxSwitchIfEmpty$SwitchIfEmptySubscriber.onComplete(FluxSwitchIfEmpty.java:85) ~[reactor-core-3.5.0-M6.jar:3.5.0-M6]
at reactor.core.publisher.MonoCallable$MonoCallableSubscription.request(MonoCallable.java:159) ~[reactor-core-3.5.0-M6.jar:3.5.0-M6]
at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.set(Operators.java:2339) ~[reactor-core-3.5.0-M6.jar:3.5.0-M6]
at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.onSubscribe(Operators.java:2213) ~[reactor-core-3.5.0-M6.jar:3.5.0-M6]
at reactor.core.publisher.MonoCallable.subscribe(MonoCallable.java:48) ~[reactor-core-3.5.0-M6.jar:3.5.0-M6]
at reactor.core.publisher.Mono.subscribe(Mono.java:4379) ~[reactor-core-3.5.0-M6.jar:3.5.0-M6]
at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:263) ~[reactor-core-3.5.0-M6.jar:3.5.0-M6]
at reactor.core.publisher.MonoIgnoreThen.subscribe(MonoIgnoreThen.java:51) ~[reactor-core-3.5.0-M6.jar:3.5.0-M6]
at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) ~[reactor-core-3.5.0-M6.jar:3.5.0-M6]
at io.r2dbc.pool.MonoDiscardOnCancel.subscribe(MonoDiscardOnCancel.java:50) ~[r2dbc-pool-1.0.0.RC1.jar:1.0.0.RC1]
at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:165) ~[reactor-core-3.5.0-M6.jar:3.5.0-M6]
at reactor.pool.AbstractPool$Borrower.deliver(AbstractPool.java:467) ~[reactor-pool-1.0.0-M6.jar:1.0.0-M6]
at reactor.pool.SimpleDequePool.lambda$drainLoop$8(SimpleDequePool.java:368) ~[reactor-pool-1.0.0-M6.jar:1.0.0-M6]
at reactor.core.scheduler.ImmediateScheduler.schedule(ImmediateScheduler.java:52) ~[reactor-core-3.5.0-M6.jar:3.5.0-M6]
at reactor.pool.SimpleDequePool.drainLoop(SimpleDequePool.java:368) ~[reactor-pool-1.0.0-M6.jar:1.0.0-M6]
at reactor.pool.SimpleDequePool.pendingOffer(SimpleDequePool.java:598) ~[reactor-pool-1.0.0-M6.jar:1.0.0-M6]
at reactor.pool.SimpleDequePool.doAcquire(SimpleDequePool.java:294) ~[reactor-pool-1.0.0-M6.jar:1.0.0-M6]
at reactor.pool.AbstractPool$Borrower.request(AbstractPool.java:430) ~[reactor-pool-1.0.0-M6.jar:1.0.0-M6]
at reactor.core.publisher.MonoFlatMap$FlatMapMain.request(MonoFlatMap.java:194) ~[reactor-core-3.5.0-M6.jar:3.5.0-M6]
at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.set(Operators.java:2339) ~[reactor-core-3.5.0-M6.jar:3.5.0-M6]
at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.onSubscribe(Operators.java:2213) ~[reactor-core-3.5.0-M6.jar:3.5.0-M6]
at reactor.core.publisher.MonoFlatMap$FlatMapMain.onSubscribe(MonoFlatMap.java:117) ~[reactor-core-3.5.0-M6.jar:3.5.0-M6]
at reactor.pool.SimpleDequePool$QueueBorrowerMono.subscribe(SimpleDequePool.java:716) ~[reactor-pool-1.0.0-M6.jar:1.0.0-M6]
at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) ~[reactor-core-3.5.0-M6.jar:3.5.0-M6]
at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:52) ~[reactor-core-3.5.0-M6.jar:3.5.0-M6]
at reactor.core.publisher.FluxRetry$RetrySubscriber.resubscribe(FluxRetry.java:117) ~[reactor-core-3.5.0-M6.jar:3.5.0-M6]
at reactor.core.publisher.MonoRetry.subscribeOrReturn(MonoRetry.java:50) ~[reactor-core-3.5.0-M6.jar:3.5.0-M6]
at reactor.core.publisher.Mono.subscribe(Mono.java:4364) ~[reactor-core-3.5.0-M6.jar:3.5.0-M6]
at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onError(FluxOnErrorResume.java:103) ~[reactor-core-3.5.0-M6.jar:3.5.0-M6]
at reactor.core.publisher.MonoFlatMap$FlatMapMain.onError(MonoFlatMap.java:180) ~[reactor-core-3.5.0-M6.jar:3.5.0-M6]
at reactor.core.publisher.FluxMap$MapSubscriber.onError(FluxMap.java:134) ~[reactor-core-3.5.0-M6.jar:3.5.0-M6]
at reactor.core.publisher.Operators.error(Operators.java:198) ~[reactor-core-3.5.0-M6.jar:3.5.0-M6]
at reactor.core.publisher.MonoError.subscribe(MonoError.java:53) ~[reactor-core-3.5.0-M6.jar:3.5.0-M6]
at reactor.core.publisher.MonoDeferContextual.subscribe(MonoDeferContextual.java:55) ~[reactor-core-3.5.0-M6.jar:3.5.0-M6]
at reactor.core.publisher.Mono.subscribe(Mono.java:4379) ~[reactor-core-3.5.0-M6.jar:3.5.0-M6]
at reactor.core.publisher.FluxUsingWhen.subscribe(FluxUsingWhen.java:104) ~[reactor-core-3.5.0-M6.jar:3.5.0-M6]
at reactor.core.publisher.Flux.subscribe(Flux.java:8515) ~[reactor-core-3.5.0-M6.jar:3.5.0-M6]
at reactor.core.publisher.FluxFlatMap.trySubscribeScalarMap(FluxFlatMap.java:200) ~[reactor-core-3.5.0-M6.jar:3.5.0-M6]
at reactor.core.publisher.MonoFlatMapMany.subscribeOrReturn(MonoFlatMapMany.java:49) ~[reactor-core-3.5.0-M6.jar:3.5.0-M6]
at reactor.core.publisher.Flux.subscribe(Flux.java:8501) ~[reactor-core-3.5.0-M6.jar:3.5.0-M6]
at reactor.core.publisher.FluxFlatMap.trySubscribeScalarMap(FluxFlatMap.java:200) ~[reactor-core-3.5.0-M6.jar:3.5.0-M6]
at reactor.core.publisher.MonoFlatMapMany.subscribeOrReturn(MonoFlatMapMany.java:49) ~[reactor-core-3.5.0-M6.jar:3.5.0-M6]
at reactor.core.publisher.Flux.subscribe(Flux.java:8501) ~[reactor-core-3.5.0-M6.jar:3.5.0-M6]
at reactor.core.publisher.FluxUsingWhen.subscribe(FluxUsingWhen.java:94) ~[reactor-core-3.5.0-M6.jar:3.5.0-M6]
at reactor.core.publisher.Mono.subscribe(Mono.java:4379) ~[reactor-core-3.5.0-M6.jar:3.5.0-M6]
at reactor.core.publisher.Mono.block(Mono.java:1674) ~[reactor-core-3.5.0-M6.jar:3.5.0-M6]
at run.halo.app.extension.store.ExtensionStoreClientJPAImpl.listByNamePrefix(ExtensionStoreClientJPAImpl.java:25) ~[classes/:2.0.0-alpha.2]
at run.halo.app.extension.DefaultExtensionClient.list(DefaultExtensionClient.java:46) ~[classes/:2.0.0-alpha.2]
at run.halo.app.extension.controller.RequestSynchronizer.start(RequestSynchronizer.java:51) ~[classes/:2.0.0-alpha.2]
at run.halo.app.extension.controller.DefaultController.run(DefaultController.java:93) ~[classes/:2.0.0-alpha.2]
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) ~[na:na]
at java.base/java.util.concurrent.FutureTask.run(Unknown Source) ~[na:na]
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) ~[na:na]
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) ~[na:na]
at java.base/java.lang.Thread.run(Unknown Source) ~[na:na]
Suppressed: java.lang.Exception: #block terminated with an error
at reactor.core.publisher.BlockingSingleSubscriber.blockingGet(BlockingSingleSubscriber.java:99) ~[reactor-core-3.5.0-M6.jar:3.5.0-M6]
at reactor.core.publisher.Mono.block(Mono.java:1675) ~[reactor-core-3.5.0-M6.jar:3.5.0-M6]
at run.halo.app.extension.store.ExtensionStoreClientJPAImpl.update(ExtensionStoreClientJPAImpl.java:42) ~[classes/:2.0.0-alpha.2]
at run.halo.app.extension.DefaultExtensionClient.update(DefaultExtensionClient.java:105) ~[classes/:2.0.0-alpha.2]
at run.halo.app.core.extension.reconciler.RoleReconciler.lambda$reconcile$0(RoleReconciler.java:62) ~[classes/:2.0.0-alpha.2]
at java.base/java.util.Optional.ifPresent(Unknown Source) ~[na:na]
at run.halo.app.core.extension.reconciler.RoleReconciler.reconcile(RoleReconciler.java:39) ~[classes/:2.0.0-alpha.2]
at run.halo.app.core.extension.reconciler.RoleReconciler.reconcile(RoleReconciler.java:25) ~[classes/:2.0.0-alpha.2]
at run.halo.app.extension.controller.DefaultController.run(DefaultController.java:102) ~[classes/:2.0.0-alpha.2]
... 5 common frames omitted
相关日志输出
No response
附加信息
No response
这算是一个正常的错误,会重复执行上一次操作,直到成功。请看:
https://github.com/halo-dev/halo/blob/a3448adee28b954f6c20f87df500f5d32cc95761/src/main/java/run/halo/app/extension/controller/DefaultController.java#L94-L113
/triage unresolved
Hi @JohnNiang ,是否可以像下面这样优化一下 OptimisticLockingFailureException 这个异常的日志级别,使得用户不会刻意关注到它,如果可以的话我很乐意提一个 PR 来解决它。
} catch (Throwable t) {
if (t instanceof OptimisticLockingFailureException) {
log.debug(
"Optimistic locking failure when reconciling request: {}",
t.getMessage());
} else {
log.error("Reconciler in " + this.name
+ " aborted with an error, re-enqueuing...",
t);
}
result = new Reconciler.Result(true, null);
} finally {
queue.done(entry.getEntry());
}
/assign
乐观锁错误建议用 log.warn 记录,有时候我们在生产环境下需要知道确实发生了乐观锁的问题。
/kind improvement /area core /remove-triage unresolved
/milestone 2.1.x