#10298·halo

无法恢复备份

Author: Dominic-KKCreated Sep 8, 2026Updated Sep 9, 2026

前置条件

  • 已经在 issues 列表中搜索了相关问题。
  • 这是 Halo 项目本身存在的问题,如果是非项目本身的问题(如:安装部署问题),建议在 Discussions 提交。
  • 已经尝试过停用所有的插件,排除是插件导致的问题。
  • 如果是插件和主题的问题,请在对应的插件和主题仓库提交。

系统信息

使用的哪种方式运行?

Docker Compose

发生了什么?

目前的情况是原系统被攻击了,手里只有两个备份压缩包,只能通过备份包恢复,备份包是8.20的,备份时的halo版本不记得,大概是 2.24.x ~ 2.25.x

现在新装最新的halo,两个备份包都试了,报错日志是如下,如有需要我可以提供备份包文件。

log
halo-1  | 2026-09-08T22:17:20.601+08:00  INFO 1 --- [uginReconciler2] r.h.a.core.reconciler.PluginReconciler   : Resolving main.js and style.css for plugin editor-hyperlink-card
halo-1  | 2026-09-08T22:17:20.602+08:00  INFO 1 --- [uginReconciler2] r.h.a.core.reconciler.PluginReconciler   : Starting plugin editor-hyperlink-card
halo-1  | 2026-09-08T22:17:51.526+08:00 ERROR 1 --- [ration-worker-3] b.w.a.e.AbstractErrorWebExceptionHandler : [3956343e-38]  500 Server Error for HTTP POST "/apis/console.api.migration.halo.run/v1alpha1/restorations"
halo-1  | 
halo-1  | java.lang.IllegalStateException: Request queue is full
halo-1  |       at io.asyncer.r2dbc.mysql.client.RequestQueue.submit(RequestQueue.java:113) ~[r2dbc-mysql-1.4.2.jar:1.4.2]
halo-1  |       Suppressed: The stacktrace has been enhanced by Reactor, refer to additional information below: 
halo-1  | Error has been observed at the following site(s):
halo-1  |       *__checkpoint ⇢ SQL "INSERT INTO extensions (name, data, version) VALUES (?, ?, ?)" [DatabaseClient]
halo-1  |       *__checkpoint ⇢ run.halo.app.security.InitializeRedirectionWebFilter@16cb9989
halo-1  |       *__checkpoint ⇢ SecurityWebFilterChainProxy [DefaultWebFilterChain]
halo-1  |       *__checkpoint ⇢ SwitchUserWebFilter [DefaultWebFilterChain]
halo-1  |       *__checkpoint ⇢ AuthorizationWebFilter [DefaultWebFilterChain]
halo-1  |       *__checkpoint ⇢ ExceptionTranslationWebFilter [DefaultWebFilterChain]
halo-1  |       *__checkpoint ⇢ LogoutWebFilter [DefaultWebFilterChain]
halo-1  |       *__checkpoint ⇢ ServerRequestCacheWebFilter [DefaultWebFilterChain]
halo-1  |       *__checkpoint ⇢ SecurityContextServerWebExchangeWebFilter [DefaultWebFilterChain]
halo-1  |       *__checkpoint ⇢ SecurityWebFilterChainProxy [DefaultWebFilterChain]
halo-1  |       *__checkpoint ⇢ AnonymousAuthenticationWebFilter [DefaultWebFilterChain]
halo-1  |       *__checkpoint ⇢ SecurityWebFilterChainProxy [DefaultWebFilterChain]
halo-1  |       *__checkpoint ⇢ SecurityWebFilterChainProxy [DefaultWebFilterChain]
halo-1  |       *__checkpoint ⇢ AuthenticationWebFilter [DefaultWebFilterChain]
halo-1  |       *__checkpoint ⇢ AuthenticationWebFilter [DefaultWebFilterChain]
halo-1  |       *__checkpoint ⇢ AuthenticationWebFilter [DefaultWebFilterChain]
halo-1  |       *__checkpoint ⇢ DeviceSessionFilter [DefaultWebFilterChain]
halo-1  |       *__checkpoint ⇢ MapOAuth2AuthenticationFilter [DefaultWebFilterChain]
halo-1  |       *__checkpoint ⇢ SecurityWebFilterChainProxy [DefaultWebFilterChain]
halo-1  |       *__checkpoint ⇢  [DefaultWebFilterChain]
halo-1  |       *__checkpoint ⇢ SecurityWebFilterChainProxy [DefaultWebFilterChain]
halo-1  |       *__checkpoint ⇢ ReactorContextWebFilter [DefaultWebFilterChain]
halo-1  |       *__checkpoint ⇢ CsrfWebFilter [DefaultWebFilterChain]
halo-1  |       *__checkpoint ⇢ CorsWebFilter [DefaultWebFilterChain]
halo-1  |       *__checkpoint ⇢ HttpHeaderWriterWebFilter [DefaultWebFilterChain]
halo-1  |       *__checkpoint ⇢ SecurityWebFilterChainProxy [DefaultWebFilterChain]
halo-1  |       *__checkpoint ⇢ ServerWebExchangeReactorContextWebFilter [DefaultWebFilterChain]
halo-1  |       *__checkpoint ⇢ org.springframework.security.web.server.WebFilterChainProxy@251a90ce
halo-1  |       *__checkpoint ⇢ run.halo.comment.widget.captcha.CommentCaptchaFilter@667f9d5d
halo-1  |       *__checkpoint ⇢ run.halo.app.infra.webfilter.AdditionalWebFilterChainProxy@66a82a13
halo-1  |       *__checkpoint ⇢ org.springframework.web.filter.reactive.ServerWebExchangeContextFilter@675ec28b
halo-1  |       *__checkpoint ⇢ run.halo.app.infra.webfilter.LocaleChangeWebFilter@370c9018
halo-1  |       *__checkpoint ⇢ org.springframework.web.filter.reactive.UrlHandlerFilter@58164e9a
halo-1  |       *__checkpoint ⇢ run.halo.app.theme.UserLocaleRequestAttributeWriteFilter@75e80a97
halo-1  |       *__checkpoint ⇢ HTTP POST "/apis/console.api.migration.halo.run/v1alpha1/restorations" [ExceptionHandlingWebHandler]
halo-1  | Original Stack Trace:
halo-1  |               at io.asyncer.r2dbc.mysql.client.RequestQueue.submit(RequestQueue.java:113) ~[r2dbc-mysql-1.4.2.jar:1.4.2]
halo-1  |               at io.asyncer.r2dbc.mysql.client.ReactorNettyClient.lambda$exchange$9(ReactorNettyClient.java:205) ~[r2dbc-mysql-1.4.2.jar:1.4.2]
halo-1  |               at reactor.core.publisher.MonoCreate.subscribe(MonoCreate.java:61) ~[reactor-core-3.8.6.jar:3.8.6]
halo-1  |               at reactor.core.publisher.InternalFluxOperator.subscribe(InternalFluxOperator.java:67) ~[reactor-core-3.8.6.jar:3.8.6]
halo-1  |               at reactor.core.publisher.FluxDefer.subscribe(FluxDefer.java:55) ~[reactor-core-3.8.6.jar:3.8.6]
halo-1  |               at reactor.core.publisher.FluxDefer.subscribe(FluxDefer.java:55) ~[reactor-core-3.8.6.jar:3.8.6]
halo-1  |               at reactor.core.publisher.InternalFluxOperator.subscribe(InternalFluxOperator.java:67) ~[reactor-core-3.8.6.jar:3.8.6]
halo-1  |               at reactor.core.publisher.FluxDefer.subscribe(FluxDefer.java:55) ~[reactor-core-3.8.6.jar:3.8.6]
halo-1  |               at reactor.core.publisher.Flux.subscribe(Flux.java:8888) ~[reactor-core-3.8.6.jar:3.8.6]
halo-1  |               at reactor.core.publisher.FluxUsingWhen$ResourceSubscriber.onNext(FluxUsingWhen.java:201) ~[reactor-core-3.8.6.jar:3.8.6]
halo-1  |               at reactor.core.publisher.FluxMap$MapSubscriber.onNext(FluxMap.java:122) ~[reactor-core-3.8.6.jar:3.8.6]
halo-1  |               at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onNext(FluxOnErrorResume.java:80) ~[reactor-core-3.8.6.jar:3.8.6]
halo-1  |               at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onNext(FluxOnErrorResume.java:80) ~[reactor-core-3.8.6.jar:3.8.6]
halo-1  |               at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:158) ~[reactor-core-3.8.6.jar:3.8.6]
halo-1  |               at reactor.core.publisher.FluxMap$MapSubscriber.onNext(FluxMap.java:122) ~[reactor-core-3.8.6.jar:3.8.6]
halo-1  |               at reactor.core.publisher.Operators$ScalarSubscription.request(Operators.java:2564) ~[reactor-core-3.8.6.jar:3.8.6]
halo-1  |               at reactor.core.publisher.FluxMap$MapSubscriber.request(FluxMap.java:163) ~[reactor-core-3.8.6.jar:3.8.6]
halo-1  |               at reactor.core.publisher.MonoFlatMap$FlatMapMain.request(MonoFlatMap.java:194) ~[reactor-core-3.8.6.jar:3.8.6]
halo-1  |               at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.set(Operators.java:2361) ~[reactor-core-3.8.6.jar:3.8.6]
halo-1  |               at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onSubscribe(FluxOnErrorResume.java:75) ~[reactor-core-3.8.6.jar:3.8.6]
halo-1  |               at reactor.core.publisher.MonoFlatMap$FlatMapMain.onSubscribe(MonoFlatMap.java:117) ~[reactor-core-3.8.6.jar:3.8.6]
halo-1  |               at reactor.core.publisher.FluxMap$MapSubscriber.onSubscribe(FluxMap.java:92) ~[reactor-core-3.8.6.jar:3.8.6]
halo-1  |               at reactor.core.publisher.MonoJust.subscribe(MonoJust.java:56) ~[reactor-core-3.8.6.jar:3.8.6]
halo-1  |               at reactor.core.publisher.MonoDeferContextual.subscribe(MonoDeferContextual.java:56) ~[reactor-core-3.8.6.jar:3.8.6]
halo-1  |               at reactor.core.publisher.Mono.subscribe(Mono.java:4569) ~[reactor-core-3.8.6.jar:3.8.6]
halo-1  |               at reactor.core.publisher.FluxUsingWhen.subscribe(FluxUsingWhen.java:105) ~[reactor-core-3.8.6.jar:3.8.6]
halo-1  |               at reactor.core.publisher.Mono.subscribe(Mono.java:4569) ~[reactor-core-3.8.6.jar:3.8.6]
halo-1  |               at reactor.core.publisher.FluxFlatMap.trySubscribeScalarMap(FluxFlatMap.java:202) ~[reactor-core-3.8.6.jar:3.8.6]
halo-1  |               at reactor.core.publisher.MonoFlatMap.subscribeOrReturn(MonoFlatMap.java:53) ~[reactor-core-3.8.6.jar:3.8.6]
halo-1  |               at reactor.core.publisher.Mono.subscribe(Mono.java:4553) ~[reactor-core-3.8.6.jar:3.8.6]
halo-1  |               at reactor.core.publisher.FluxFlatMap.trySubscribeScalarMap(FluxFlatMap.java:202) ~[reactor-core-3.8.6.jar:3.8.6]
halo-1  |               at reactor.core.publisher.MonoFlatMap.subscribeOrReturn(MonoFlatMap.java:53) ~[reactor-core-3.8.6.jar:3.8.6]
halo-1  |               at reactor.core.publisher.Mono.subscribe(Mono.java:4553) ~[reactor-core-3.8.6.jar:3.8.6]
halo-1  |               at reactor.core.publisher.FluxConcatMapNoPrefetch$FluxConcatMapNoPrefetchSubscriber.onNext(FluxConcatMapNoPrefetch.java:206) ~[reactor-core-3.8.6.jar:3.8.6]
halo-1  |               at reactor.core.publisher.FluxIterable$IterableSubscription.slowPath(FluxIterable.java:335) ~[reactor-core-3.8.6.jar:3.8.6]
halo-1  |               at reactor.core.publisher.FluxIterable$IterableSubscription.request(FluxIterable.java:294) ~[reactor-core-3.8.6.jar:3.8.6]
halo-1  |               at reactor.core.publisher.FluxConcatMapNoPrefetch$FluxConcatMapNoPrefetchSubscriber.request(FluxConcatMapNoPrefetch.java:336) ~[reactor-core-3.8.6.jar:3.8.6]
halo-1  |               at reactor.core.publisher.FluxUsingWhen$UsingWhenSubscriber.request(FluxUsingWhen.java:325) ~[reactor-core-3.8.6.jar:3.8.6]
halo-1  |               at reactor.core.publisher.FluxFlatMap$FlatMapInner.onSubscribe(FluxFlatMap.java:971) ~[reactor-core-3.8.6.jar:3.8.6]
halo-1  |               at reactor.core.publisher.FluxUsingWhen$UsingWhenSubscriber.onSubscribe(FluxUsingWhen.java:414) ~[reactor-core-3.8.6.jar:3.8.6]
halo-1  |               at reactor.core.publisher.FluxConcatMapNoPrefetch$FluxConcatMapNoPrefetchSubscriber.onSubscribe(FluxConcatMapNoPrefetch.java:163) ~[reactor-core-3.8.6.jar:3.8.6]
halo-1  |               at reactor.core.publisher.FluxIterable.subscribe(FluxIterable.java:200) ~[reactor-core-3.8.6.jar:3.8.6]
halo-1  |               at reactor.core.publisher.FluxIterable.subscribe(FluxIterable.java:82) ~[reactor-core-3.8.6.jar:3.8.6]
halo-1  |               at reactor.core.publisher.Flux.subscribe(Flux.java:8888) ~[reactor-core-3.8.6.jar:3.8.6]
halo-1  |               at reactor.core.publisher.FluxUsingWhen.subscribe(FluxUsingWhen.java:94) ~[reactor-core-3.8.6.jar:3.8.6]
halo-1  |               at reactor.core.publisher.Flux.subscribe(Flux.java:8888) ~[reactor-core-3.8.6.jar:3.8.6]
halo-1  |               at reactor.core.publisher.FluxFlatMap$FlatMapMain.onNext(FluxFlatMap.java:431) ~[reactor-core-3.8.6.jar:3.8.6]
halo-1  |               at reactor.core.publisher.FluxBuffer$BufferExactSubscriber.onNext(FluxBuffer.java:160) ~[reactor-core-3.8.6.jar:3.8.6]
halo-1  |               at reactor.core.publisher.FluxPeekFuseable$PeekFuseableSubscriber.onNext(FluxPeekFuseable.java:211) ~[reactor-core-3.8.6.jar:3.8.6]
halo-1  |               at reactor.core.publisher.FluxFilterFuseable$FilterFuseableSubscriber.tryOnNext(FluxFilterFuseable.java:149) ~[reactor-core-3.8.6.jar:3.8.6]
halo-1  |               at reactor.core.publisher.FluxIterable$IterableSubscriptionConditional.slowPath(FluxIterable.java:663) ~[reactor-core-3.8.6.jar:3.8.6]
halo-1  |               at reactor.core.publisher.FluxIterable$IterableSubscriptionConditional.request(FluxIterable.java:622) ~[reactor-core-3.8.6.jar:3.8.6]
halo-1  |               at reactor.core.publisher.FluxFilterFuseable$FilterFuseableSubscriber.request(FluxFilterFuseable.java:191) ~[reactor-core-3.8.6.jar:3.8.6]
halo-1  |               at reactor.core.publisher.FluxPeekFuseable$PeekFuseableSubscriber.request(FluxPeekFuseable.java:144) ~[reactor-core-3.8.6.jar:3.8.6]
halo-1  |               at reactor.core.publisher.FluxBuffer$BufferExactSubscriber.request(FluxBuffer.java:116) ~[reactor-core-3.8.6.jar:3.8.6]
halo-1  |               at reactor.core.publisher.FluxFlatMap$FlatMapMain.onSubscribe(FluxFlatMap.java:374) ~[reactor-core-3.8.6.jar:3.8.6]
halo-1  |               at reactor.core.publisher.FluxBuffer$BufferExactSubscriber.onSubscribe(FluxBuffer.java:131) ~[reactor-core-3.8.6.jar:3.8.6]
halo-1  |               at reactor.core.publisher.FluxPeekFuseable$PeekFuseableSubscriber.onSubscribe(FluxPeekFuseable.java:178) ~[reactor-core-3.8.6.jar:3.8.6]
halo-1  |               at reactor.core.publisher.FluxFilterFuseable$FilterFuseableSubscriber.onSubscribe(FluxFilterFuseable.java:87) ~[reactor-core-3.8.6.jar:3.8.6]
halo-1  |               at reactor.core.publisher.FluxIterable.subscribe(FluxIterable.java:178) ~[reactor-core-3.8.6.jar:3.8.6]
halo-1  |               at reactor.core.publisher.FluxIterable.subscribe(FluxIterable.java:82) ~[reactor-core-3.8.6.jar:3.8.6]
halo-1  |               at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:75) ~[reactor-core-3.8.6.jar:3.8.6]
halo-1  |               at reactor.core.publisher.MonoUsing.subscribe(MonoUsing.java:102) ~[reactor-core-3.8.6.jar:3.8.6]
halo-1  |               at reactor.core.publisher.Mono.subscribe(Mono.java:4569) ~[reactor-core-3.8.6.jar:3.8.6]
halo-1  |               at reactor.core.publisher.MonoSubscribeOn$SubscribeOnSubscriber.run(MonoSubscribeOn.java:127) ~[reactor-core-3.8.6.jar:3.8.6]
halo-1  |               at reactor.core.scheduler.WorkerTask.call(WorkerTask.java:90) ~[reactor-core-3.8.6.jar:3.8.6]
halo-1  |               at reactor.core.scheduler.WorkerTask.call(WorkerTask.java:37) ~[reactor-core-3.8.6.jar:3.8.6]
halo-1  |               at java.base/java.util.concurrent.FutureTask.run(Unknown Source) ~[na:na]
halo-1  |               at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(Unknown Source) ~[na:na]
halo-1  |               at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) ~[na:na]
halo-1  |               at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) ~[na:na]
halo-1  |               at java.base/java.lang.Thread.run(Unknown Source) ~[na:na]
halo-1  | 

复现步骤

No response

相关日志输出

bash

附加信息

No response