halo-dev / halo

强大易用的开源建站工具。
https://www.halo.run
GNU General Public License v3.0
33.83k stars 9.67k forks source link

恢复失败时给出更具体的提示 #4457

Open wan92hen opened 1 year ago

wan92hen commented 1 year ago

你当前使用的版本

v2.8.0

描述一下此特性

当上传不正常的 zip 文件进行恢复时(例如使用 1.x 版本的备份文件),系统提示 服务器内部错误: 服务器内部发生错误,请稍候再试。建议给出更具体的错误提示信息,例如备份文件异常等。 image

附加信息

No response

JohnNiang commented 1 year ago

可以提供一下详细的错误日志方便我们排查一下。

/kind improvement /area core

wan92hen commented 1 year ago
2023-08-22T18:12:14.801+08:00 ERROR 7 --- [or-tcp-epoll-14] a.w.r.e.AbstractErrorWebExceptionHandler : [96e2f3fb-5133]  500 Server Error for HTTP POST "/apis/api.console.migration.halo.run/v1alpha1/restorations"

java.io.FileNotFoundException: /tmp/halo-restore-7021591487262167371/extensions.data (No such file or directory)
        at java.base/java.io.FileInputStream.open0(Native Method) ~[na:na]
        Suppressed: reactor.core.publisher.FluxOnAssembly$OnAssemblyException:
Error has been observed at the following site(s):
        *__checkpoint ⇢ run.halo.app.security.InitializeRedirectionWebFilter [DefaultWebFilterChain]
        *__checkpoint ⇢ run.halo.app.security.authentication.login.UsernamePasswordLogoutHandler [DefaultWebFilterChain]
        *__checkpoint ⇢ run.halo.app.security.authentication.login.DelegatingLogoutPageGeneratingWebFilter [DefaultWebFilterChain]
        *__checkpoint ⇢ run.halo.app.security.authentication.login.UsernamePasswordAuthenticator [DefaultWebFilterChain]
        *__checkpoint ⇢ AuthorizationWebFilter [DefaultWebFilterChain]
        *__checkpoint ⇢ ExceptionTranslationWebFilter [DefaultWebFilterChain]
        *__checkpoint ⇢ LogoutWebFilter [DefaultWebFilterChain]
        *__checkpoint ⇢ ServerRequestCacheWebFilter [DefaultWebFilterChain]
        *__checkpoint ⇢ SecurityContextServerWebExchangeWebFilter [DefaultWebFilterChain]
        *__checkpoint ⇢ AnonymousAuthenticationWebFilter [DefaultWebFilterChain]
        *__checkpoint ⇢ AuthenticationWebFilter [DefaultWebFilterChain]
        *__checkpoint ⇢ ReactorContextWebFilter [DefaultWebFilterChain]
        *__checkpoint ⇢ CsrfWebFilter [DefaultWebFilterChain]
        *__checkpoint ⇢ CorsWebFilter [DefaultWebFilterChain]
        *__checkpoint ⇢ HttpHeaderWriterWebFilter [DefaultWebFilterChain]
        *__checkpoint ⇢ ServerWebExchangeReactorContextWebFilter [DefaultWebFilterChain]
        *__checkpoint ⇢ OrderedWebFilter [DefaultWebFilterChain]
        *__checkpoint ⇢ OrderedWebFilter [DefaultWebFilterChain]
        *__checkpoint ⇢ OrderedWebFilter [DefaultWebFilterChain]
        *__checkpoint ⇢ OrderedWebFilter [DefaultWebFilterChain]
        *__checkpoint ⇢ OrderedWebFilter [DefaultWebFilterChain]
        *__checkpoint ⇢ org.springframework.security.web.server.WebFilterChainProxy [DefaultWebFilterChain]
        *__checkpoint ⇢ org.springframework.web.filter.reactive.ServerHttpObservationFilter [DefaultWebFilterChain]
        *__checkpoint ⇢ HTTP POST "/apis/api.console.migration.halo.run/v1alpha1/restorations" [ExceptionHandlingWebHandler]
Original Stack Trace:
                at java.base/java.io.FileInputStream.open0(Native Method) ~[na:na]
                at java.base/java.io.FileInputStream.open(Unknown Source) ~[na:na]
                at java.base/java.io.FileInputStream.<init>(Unknown Source) ~[na:na]
                at com.fasterxml.jackson.core.TokenStreamFactory._fileInputStream(TokenStreamFactory.java:278) ~[jackson-core-2.15.2.jar:2.15.2]
                at com.fasterxml.jackson.core.JsonFactory.createParser(JsonFactory.java:1089) ~[jackson-core-2.15.2.jar:2.15.2]
                at com.fasterxml.jackson.databind.ObjectReader.createParser(ObjectReader.java:1077) ~[jackson-databind-2.15.2.jar:2.15.2]
                at com.fasterxml.jackson.databind.ObjectReader.readValues(ObjectReader.java:1979) ~[jackson-databind-2.15.2.jar:2.15.2]
                at run.halo.app.migration.impl.MigrationServiceImpl.lambda$restoreExtensions$5(MigrationServiceImpl.java:179) ~[classes/:2.8.0]
                at reactor.core.publisher.MonoUsing.subscribe(MonoUsing.java:75) ~[reactor-core-3.5.8.jar:3.5.8]
                at reactor.core.publisher.Mono.subscribe(Mono.java:4495) ~[reactor-core-3.5.8.jar:3.5.8]
                at reactor.core.publisher.MonoWhen$WhenCoordinator.request(MonoWhen.java:227) ~[reactor-core-3.5.8.jar:3.5.8]
                at reactor.core.publisher.FluxDoFinally$DoFinallySubscriber.request(FluxDoFinally.java:140) ~[reactor-core-3.5.8.jar:3.5.8]
                at reactor.core.publisher.MonoSubscribeOn$SubscribeOnSubscriber.trySchedule(MonoSubscribeOn.java:189) ~[reactor-core-3.5.8.jar:3.5.8]
                at reactor.core.publisher.MonoSubscribeOn$SubscribeOnSubscriber.onSubscribe(MonoSubscribeOn.java:134) ~[reactor-core-3.5.8.jar:3.5.8]
                at reactor.core.publisher.FluxDoFinally$DoFinallySubscriber.onSubscribe(FluxDoFinally.java:107) ~[reactor-core-3.5.8.jar:3.5.8]
                at reactor.core.publisher.MonoWhen.subscribe(MonoWhen.java:99) ~[reactor-core-3.5.8.jar:3.5.8]
                at reactor.core.publisher.Mono.subscribe(Mono.java:4495) ~[reactor-core-3.5.8.jar:3.5.8]
                at reactor.core.publisher.MonoSubscribeOn$SubscribeOnSubscriber.run(MonoSubscribeOn.java:126) ~[reactor-core-3.5.8.jar:3.5.8]
                at reactor.core.scheduler.WorkerTask.call(WorkerTask.java:84) ~[reactor-core-3.5.8.jar:3.5.8]
                at reactor.core.scheduler.WorkerTask.call(WorkerTask.java:37) ~[reactor-core-3.5.8.jar:3.5.8]
                at java.base/java.util.concurrent.FutureTask.run(Unknown Source) ~[na:na]
                at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.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]