每次启动 halo 后(docker-compose)都会有这一类错误
mariadb 10.8
halo_next | org.springframework.dao.OptimisticLockingFailureException: Failed to update table [extensions]; Version does not match for row with Id [/registry/roles/anonymous]
halo_next | at org.springframework.data.r2dbc.core.R2dbcEntityTemplate.lambda$doUpdate$13(R2dbcEntityTemplate.java:636) ~[spring-data-r2dbc-3.0.0-RC2.jar:3.0.0-RC2]
halo_next | at reactor.core.publisher.FluxHandle$HandleSubscriber.onNext(FluxHandle.java:112) ~[reactor-core-3.5.0.jar:3.5.0]
halo_next | at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onNext(FluxOnErrorResume.java:79) ~[reactor-core-3.5.0.jar:3.5.0]
halo_next | at reactor.core.publisher.MonoUsingWhen$MonoUsingWhenSubscriber.deferredComplete(MonoUsingWhen.java:268) ~[reactor-core-3.5.0.jar:3.5.0]
halo_next | at reactor.core.publisher.FluxUsingWhen$CommitInner.onComplete(FluxUsingWhen.java:527) ~[reactor-core-3.5.0.jar:3.5.0]
halo_next | at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.onComplete(Operators.java:2168) ~[reactor-core-3.5.0.jar:3.5.0]
halo_next | at reactor.core.publisher.FluxPeek$PeekSubscriber.onComplete(FluxPeek.java:260) ~[reactor-core-3.5.0.jar:3.5.0]
halo_next | at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.onComplete(Operators.java:2168) ~[reactor-core-3.5.0.jar:3.5.0]
halo_next | at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.onComplete(MonoIgnoreThen.java:209) ~[reactor-core-3.5.0.jar:3.5.0]
halo_next | at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.onComplete(MonoIgnoreThen.java:209) ~[reactor-core-3.5.0.jar:3.5.0]
halo_next | at reactor.pool.SimpleDequePool.maybeRecycleAndDrain(SimpleDequePool.java:531) ~[reactor-pool-1.0.0.jar:1.0.0]
halo_next | at reactor.pool.SimpleDequePool$QueuePoolRecyclerInner.onComplete(SimpleDequePool.java:761) ~[reactor-pool-1.0.0.jar:1.0.0]
halo_next | at reactor.core.publisher.Operators.complete(Operators.java:137) ~[reactor-core-3.5.0.jar:3.5.0]
halo_next | at reactor.core.publisher.MonoEmpty.subscribe(MonoEmpty.java:46) ~[reactor-core-3.5.0.jar:3.5.0]
halo_next | at reactor.core.publisher.Mono.subscribe(Mono.java:4444) ~[reactor-core-3.5.0.jar:3.5.0]
halo_next | at reactor.pool.SimpleDequePool$QueuePoolRecyclerMono.subscribe(SimpleDequePool.java:873) ~[reactor-pool-1.0.0.jar:1.0.0]
halo_next | at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:52) ~[reactor-core-3.5.0.jar:3.5.0]
halo_next | at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:240) ~[reactor-core-3.5.0.jar:3.5.0]
halo_next | at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.onComplete(MonoIgnoreThen.java:203) ~[reactor-core-3.5.0.jar:3.5.0]
halo_next | at reactor.core.publisher.FluxPeek$PeekSubscriber.onComplete(FluxPeek.java:260) ~[reactor-core-3.5.0.jar:3.5.0]
halo_next | at reactor.core.publisher.Operators.complete(Operators.java:137) ~[reactor-core-3.5.0.jar:3.5.0]
halo_next | at reactor.core.publisher.MonoEmpty.subscribe(MonoEmpty.java:46) ~[reactor-core-3.5.0.jar:3.5.0]
halo_next | at reactor.core.publisher.Mono.subscribe(Mono.java:4444) ~[reactor-core-3.5.0.jar:3.5.0]
halo_next | at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:263) ~[reactor-core-3.5.0.jar:3.5.0]
halo_next | at reactor.core.publisher.MonoIgnoreThen.subscribe(MonoIgnoreThen.java:51) ~[reactor-core-3.5.0.jar:3.5.0]
halo_next | at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:52) ~[reactor-core-3.5.0.jar:3.5.0]
halo_next | at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:240) ~[reactor-core-3.5.0.jar:3.5.0]
halo_next | at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.onComplete(MonoIgnoreThen.java:203) ~[reactor-core-3.5.0.jar:3.5.0]
halo_next | at reactor.core.publisher.MonoIgnoreElements$IgnoreElementsSubscriber.onComplete(MonoIgnoreElements.java:89) ~[reactor-core-3.5.0.jar:3.5.0]
halo_next | at reactor.core.publisher.FluxHandleFuseable$HandleFuseableSubscriber.onComplete(FluxHandleFuseable.java:238) ~[reactor-core-3.5.0.jar:3.5.0]
halo_next | at reactor.core.publisher.Operators$ScalarSubscription.request(Operators.java:2510) ~[reactor-core-3.5.0.jar:3.5.0]
halo_next | at reactor.core.publisher.FluxHandleFuseable$HandleFuseableSubscriber.request(FluxHandleFuseable.java:259) ~[reactor-core-3.5.0.jar:3.5.0]
halo_next | at reactor.core.publisher.MonoIgnoreElements$IgnoreElementsSubscriber.onSubscribe(MonoIgnoreElements.java:72) ~[reactor-core-3.5.0.jar:3.5.0]
halo_next | at reactor.core.publisher.FluxHandleFuseable$HandleFuseableSubscriber.onSubscribe(FluxHandleFuseable.java:163) ~[reactor-core-3.5.0.jar:3.5.0]
halo_next | at reactor.core.publisher.FluxJust.subscribe(FluxJust.java:68) ~[reactor-core-3.5.0.jar:3.5.0]
halo_next | at reactor.core.publisher.Mono.subscribe(Mono.java:4444) ~[reactor-core-3.5.0.jar:3.5.0]
halo_next | at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:263) ~[reactor-core-3.5.0.jar:3.5.0]
halo_next | at reactor.core.publisher.MonoIgnoreThen.subscribe(MonoIgnoreThen.java:51) ~[reactor-core-3.5.0.jar:3.5.0]
halo_next | at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) ~[reactor-core-3.5.0.jar:3.5.0]
halo_next | at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:52) ~[reactor-core-3.5.0.jar:3.5.0]
halo_next | at reactor.core.publisher.Mono.subscribe(Mono.java:4444) ~[reactor-core-3.5.0.jar:3.5.0]
halo_next | at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onError(FluxOnErrorResume.java:103) ~[reactor-core-3.5.0.jar:3.5.0]
halo_next | at reactor.core.publisher.MonoIgnoreElements$IgnoreElementsSubscriber.onError(MonoIgnoreElements.java:84) ~[reactor-core-3.5.0.jar:3.5.0]
halo_next | at reactor.core.publisher.FluxMap$MapSubscriber.onError(FluxMap.java:134) ~[reactor-core-3.5.0.jar:3.5.0]
halo_next | at reactor.core.publisher.FluxFilter$FilterSubscriber.onError(FluxFilter.java:157) ~[reactor-core-3.5.0.jar:3.5.0]
halo_next | at reactor.core.publisher.FluxFilter$FilterConditionalSubscriber.onError(FluxFilter.java:291) ~[reactor-core-3.5.0.jar:3.5.0]
halo_next | at reactor.core.publisher.FluxMap$MapConditionalSubscriber.onError(FluxMap.java:265) ~[reactor-core-3.5.0.jar:3.5.0]
halo_next | at reactor.core.publisher.Operators.error(Operators.java:198) ~[reactor-core-3.5.0.jar:3.5.0]
halo_next | at reactor.core.publisher.MonoError.subscribe(MonoError.java:53) ~[reactor-core-3.5.0.jar:3.5.0]
halo_next | at reactor.core.publisher.MonoDeferContextual.subscribe(MonoDeferContextual.java:55) ~[reactor-core-3.5.0.jar:3.5.0]
halo_next | at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) ~[reactor-core-3.5.0.jar:3.5.0]
halo_next | at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:52) ~[reactor-core-3.5.0.jar:3.5.0]
halo_next | at reactor.core.publisher.Mono.subscribe(Mono.java:4444) ~[reactor-core-3.5.0.jar:3.5.0]
halo_next | at reactor.core.publisher.FluxUsingWhen$UsingWhenSubscriber.onComplete(FluxUsingWhen.java:384) ~[reactor-core-3.5.0.jar:3.5.0]
halo_next | at reactor.core.publisher.Operators$BaseFluxToMonoOperator.completePossiblyEmpty(Operators.java:2035) ~[reactor-core-3.5.0.jar:3.5.0]
halo_next | at reactor.core.publisher.MonoStreamCollector$StreamCollectorSubscriber.onComplete(MonoStreamCollector.java:159) ~[reactor-core-3.5.0.jar:3.5.0]
halo_next | at reactor.core.publisher.FluxMap$MapSubscriber.onComplete(FluxMap.java:144) ~[reactor-core-3.5.0.jar:3.5.0]
halo_next | at reactor.core.publisher.FluxFlatMap$FlatMapMain.checkTerminated(FluxFlatMap.java:846) ~[reactor-core-3.5.0.jar:3.5.0]
halo_next | at reactor.core.publisher.FluxFlatMap$FlatMapMain.drainLoop(FluxFlatMap.java:608) ~[reactor-core-3.5.0.jar:3.5.0]
halo_next | at reactor.core.publisher.FluxFlatMap$FlatMapMain.drain(FluxFlatMap.java:588) ~[reactor-core-3.5.0.jar:3.5.0]
halo_next | at reactor.core.publisher.FluxFlatMap$FlatMapMain.onComplete(FluxFlatMap.java:465) ~[reactor-core-3.5.0.jar:3.5.0]
halo_next | at reactor.core.publisher.FluxOnAssembly$OnAssemblySubscriber.onComplete(FluxOnAssembly.java:549) ~[reactor-core-3.5.0.jar:3.5.0]
halo_next | at reactor.core.publisher.FluxMap$MapSubscriber.onComplete(FluxMap.java:144) ~[reactor-core-3.5.0.jar:3.5.0]
halo_next | at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.onComplete(Operators.java:2168) ~[reactor-core-3.5.0.jar:3.5.0]
halo_next | at reactor.core.publisher.FluxMap$MapSubscriber.onComplete(FluxMap.java:144) ~[reactor-core-3.5.0.jar:3.5.0]
halo_next | at reactor.core.publisher.FluxConcatMapNoPrefetch$FluxConcatMapNoPrefetchSubscriber.innerComplete(FluxConcatMapNoPrefetch.java:286) ~[reactor-core-3.5.0.jar:3.5.0]
halo_next | at reactor.core.publisher.FluxConcatMap$ConcatMapInner.onComplete(FluxConcatMap.java:887) ~[reactor-core-3.5.0.jar:3.5.0]
halo_next | at reactor.core.publisher.MonoCompletionStage$MonoCompletionStageSubscription.apply(MonoCompletionStage.java:121) ~[reactor-core-3.5.0.jar:3.5.0]
halo_next | at reactor.core.publisher.MonoCompletionStage$MonoCompletionStageSubscription.apply(MonoCompletionStage.java:64) ~[reactor-core-3.5.0.jar:3.5.0]
halo_next | at java.base/java.util.concurrent.CompletableFuture.uniHandle(Unknown Source) ~[na:na]
halo_next | at java.base/java.util.concurrent.CompletableFuture$UniHandle.tryFire(Unknown Source) ~[na:na]
halo_next | at java.base/java.util.concurrent.CompletableFuture.postComplete(Unknown Source) ~[na:na]
halo_next | at java.base/java.util.concurrent.CompletableFuture.complete(Unknown Source) ~[na:na]
halo_next | at com.github.jasync.sql.db.util.FutureUtilsKt.success(FutureUtils.kt:16) ~[jasync-pool-2.1.7.jar:na]
halo_next | at com.github.jasync.sql.db.mysql.MySQLConnection.succeedQueryPromise$lambda-12(MySQLConnection.kt:361) ~[jasync-mysql-2.1.7.jar:na]
halo_next | at java.base/java.util.Optional.ifPresent(Unknown Source) ~[na:na]
halo_next | at com.github.jasync.sql.db.mysql.MySQLConnection.succeedQueryPromise(MySQLConnection.kt:360) ~[jasync-mysql-2.1.7.jar:na]
halo_next | at com.github.jasync.sql.db.mysql.MySQLConnection.onOk(MySQLConnection.kt:227) ~[jasync-mysql-2.1.7.jar:na]
halo_next | at com.github.jasync.sql.db.mysql.codec.MySQLConnectionHandler.channelRead0(MySQLConnectionHandler.kt:121) ~[jasync-mysql-2.1.7.jar:na]
halo_next | at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:99) ~[netty-transport-4.1.84.Final.jar:4.1.84.Final]
halo_next | at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) ~[netty-transport-4.1.84.Final.jar:4.1.84.Final]
halo_next | at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) ~[netty-transport-4.1.84.Final.jar:4.1.84.Final]
halo_next | at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) ~[netty-transport-4.1.84.Final.jar:4.1.84.Final]
halo_next | at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:336) ~[netty-codec-4.1.84.Final.jar:4.1.84.Final]
halo_next | at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:308) ~[netty-codec-4.1.84.Final.jar:4.1.84.Final]
halo_next | at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) ~[netty-transport-4.1.84.Final.jar:4.1.84.Final]
halo_next | at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) ~[netty-transport-4.1.84.Final.jar:4.1.84.Final]
halo_next | at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) ~[netty-transport-4.1.84.Final.jar:4.1.84.Final]
halo_next | at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410) ~[netty-transport-4.1.84.Final.jar:4.1.84.Final]
halo_next | at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:440) ~[netty-transport-4.1.84.Final.jar:4.1.84.Final]
halo_next | at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) ~[netty-transport-4.1.84.Final.jar:4.1.84.Final]
halo_next | at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919) ~[netty-transport-4.1.84.Final.jar:4.1.84.Final]
halo_next | at io.netty.channel.epoll.AbstractEpollStreamChannel$EpollStreamUnsafe.epollInReady(AbstractEpollStreamChannel.java:800) ~[netty-transport-classes-epoll-4.1.84.Final.jar:4.1.84.Final]
halo_next | at io.netty.channel.epoll.EpollEventLoop.processReady(EpollEventLoop.java:499) ~[netty-transport-classes-epoll-4.1.84.Final.jar:4.1.84.Final]
halo_next | at io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:397) ~[netty-transport-classes-epoll-4.1.84.Final.jar:4.1.84.Final]
halo_next | at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997) ~[netty-common-4.1.84.Final.jar:4.1.84.Final]
halo_next | at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) ~[netty-common-4.1.84.Final.jar:4.1.84.Final]
halo_next | at java.base/java.lang.Thread.run(Unknown Source) ~[na:na]
halo_next | Suppressed: java.lang.Exception: #block terminated with an error
halo_next | at reactor.core.publisher.BlockingSingleSubscriber.blockingGet(BlockingSingleSubscriber.java:99) ~[reactor-core-3.5.0.jar:3.5.0]
halo_next | at reactor.core.publisher.Mono.block(Mono.java:1710) ~[reactor-core-3.5.0.jar:3.5.0]
halo_next | at run.halo.app.extension.store.ExtensionStoreClientJPAImpl.update(ExtensionStoreClientJPAImpl.java:42) ~[classes/:2.0.0-rc.1]
halo_next | at run.halo.app.extension.DefaultExtensionClient.update(DefaultExtensionClient.java:105) ~[classes/:2.0.0-rc.1]
halo_next | at run.halo.app.core.extension.reconciler.RoleReconciler.lambda$reconcile$0(RoleReconciler.java:62) ~[classes/:2.0.0-rc.1]
halo_next | at java.base/java.util.Optional.ifPresent(Unknown Source) ~[na:na]
halo_next | at run.halo.app.core.extension.reconciler.RoleReconciler.reconcile(RoleReconciler.java:39) ~[classes/:2.0.0-rc.1]
halo_next | at run.halo.app.core.extension.reconciler.RoleReconciler.reconcile(RoleReconciler.java:25) ~[classes/:2.0.0-rc.1]
halo_next | at run.halo.app.extension.controller.DefaultController$Worker.run(DefaultController.java:158) ~[classes/:2.0.0-rc.1]
halo_next | at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) ~[na:na]
halo_next | at java.base/java.util.concurrent.FutureTask.run(Unknown Source) ~[na:na]
halo_next | at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) ~[na:na]
halo_next | at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) ~[na:na]
halo_next | ... 1 common frames omitted