29
0
0
一次活生生的教训
2026-08-29
2026-08-29
首先,我一定要警告大家,软件更新之类的东西不要新版一出来就立马更新,一定要在非生产环境使劲造,疯狂搞,没问题了再更新!尤其是像halo这样的博客!
次要,一定不要在一些软件里瞎搞,尤其是乱下载插件,乱搞主题,会直接把你的博客搞崩!!!
首先告诉大家我部署博客docker compose的yaml吧
version: "3"
services:
halo:
image: halohub/halo:2.26.0
restart: on-failure:3
depends_on:
halodb:
condition: service_healthy
networks:
halo_network:
volumes:
- ./halo2:/root/.halo2
ports:
- "8090:8090"
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8090/actuator/health/readiness"]
interval: 30s
timeout: 5s
retries: 5
start_period: 30s
environment:
# JVM 参数,默认为 -Xmx256m -Xms256m,可以根据实际情况做调整,置空表示不添加 JVM 参数
- JVM_OPTS=-Xmx1024m -Xms256m
command:
- --spring.r2dbc.url=r2dbc:pool:postgresql://halodb/halo
- --spring.r2dbc.username=halo
# PostgreSQL 的密码,请保证与下方 POSTGRES_PASSWORD 的变量值一致。
- --spring.r2dbc.password=openpostgresql
- --spring.sql.init.platform=postgresql
# 外部访问地址,请根据实际需要修改
- --halo.external-url=http://localhost:8090/
halodb:
image: postgres:15.4
restart: on-failure:3
networks:
halo_network:
volumes:
- ./db:/var/lib/postgresql/data
healthcheck:
test: [ "CMD", "pg_isready" ]
interval: 10s
timeout: 5s
retries: 5
environment:
- POSTGRES_PASSWORD=openpostgresql
- POSTGRES_USER=halo
- POSTGRES_DB=halo
- PGUSER=halo
networks:
halo_network:以上。
当天晚上,也就是文章发布时的前天晚上,我想要给博客换一个新主题,叫theme-sky-weather-v1.0.27,但我推测问题和主题关系不大。当时我安装完主题之后还打开网页测试了一遍,没有任何问题。之后,我发现这个主题需要很多插件支持,比如友链提交啊,文档啊什么的,于是我就一个一个去下载嘛。就在我安装到halo官方的文档插件的免授权版本时,问题直接就开始了,当时最直观的感受就是很卡,之后就是页面刷不出来,因为文档插件需要开启halo的应用商店,当时是开启失败了,报了点错,我没多想,先把应用商店插件删了,准备去下载最新版,准备直接上传,可我没想到,上传的时候,旧的插件还在"正在删除"状态,然后播客直接就卡死了,我还是没多想,直接重启了容器,当时直接进入了后台,没发现什么问题,结果一访问首页,直接爆了,日志里疯狂报错:
*__checkpoint ⇢ ServerWebExchangeReactorContextWebFilter [DefaultWebFilterChain]
halo-1 | *__checkpoint ⇢ org.springframework.security.web.server.WebFilterChainProxy@6befbb12
halo-1 |
*__checkpoint ⇢ run.halo.moments.rss.OldRssRouteRedirectionFilter@3e86a7b6
halo-1 | *__checkpoint ⇢ site.zzrbk.plugin.captcha.CaptchaWebFilter@de0aa18
halo-1 | *__checkpoint ⇢ io.github.shirainbown.sharelink.protect.UploadProtectFilter@20133623
halo-1 | *__checkpoint ⇢ run.halo.comment.widget.captcha.CommentCaptchaFilter@32be8829
halo-1 |
*__checkpoint ⇢ run.halo.app.infra.webfilter.AdditionalWebFilterChainProxy@79d63a4f
halo-1 | *__checkpoint ⇢ org.springframework.web.filter.reactive.ServerWebExchangeContextFilter@2e2b9f53
halo-1 |
*__checkpoint ⇢ run.halo.app.infra.webfilter.LocaleChangeWebFilter@527937d0
halo-1 | *__checkpoint ⇢ org.springframework.web.filter.reactive.UrlHandlerFilter@21527b8
halo-1 | *__checkpoint ⇢ run.halo.app.theme.UserLocaleRequestAttributeWriteFilter@23121d14
halo-1 | *__checkpoint ⇢ HTTP GET "/" [ExceptionHandlingWebHandler]
halo-1 | Original Stack Trace:
halo-1 |
at org.thymeleaf.spring6.expression.SPELVariableExpressionEvaluator.evaluate(SPELVariableExpressionEvaluator.java:292) ~[thymeleaf-spring6-3.1.3.RELEASE.jar:3.1.3.RELEASE]
halo-1 | at run.halo.app.theme.ReactiveSpelVariableExpressionEvaluator.evaluate(ReactiveSpelVariableExpressionEvaluator.java:40) ~[application.jar:2.26.0]
halo-1 |
at org.thymeleaf.standard.expression.VariableExpression.executeVariableExpression(VariableExpression.java:166) ~[thymeleaf-3.1.3.RELEASE.jar:3.1.3.RELEASE]
halo-1 | at org.thymeleaf.standard.expression.SimpleExpression.executeSimple(SimpleExpression.java:66) ~[thymeleaf-3.1.3.RELEASE.jar:3.1.3.RELEASE]
halo-1 | at org.thymeleaf.standard.expression.Expression.execute(Expression.java:109) ~[thymeleaf-3.1.3.RELEASE.jar:3.1.3.RELEASE]
halo-1 |
at org.thymeleaf.standard.expression.Expression.execute(Expression.java:138) ~[thymeleaf-3.1.3.RELEASE.jar:3.1.3.RELEASE]
halo-1 | at org.thymeleaf.standard.expression.Expression.execute(Expression.java:125) ~[thymeleaf-3.1.3.RELEASE.jar:3.1.3.RELEASE]
halo-1 | at org.thymeleaf.standard.processor.StandardEachTagProcessor.doProcess(StandardEachTagProcessor.java:73) ~[thymeleaf-3.1.3.RELEASE.jar:3.1.3.RELEASE]
halo-1 | at org.thymeleaf.processor.element.AbstractAttributeTagProcessor.doProcess(AbstractAttributeTagProcessor.java:74) ~[thymeleaf-3.1.3.RELEASE.jar:3.1.3.RELEASE]
halo-1 | at org.thymeleaf.processor.element.AbstractElementTagProcessor.process(AbstractElementTagProcessor.java:95) ~[thymeleaf-3.1.3.RELEASE.jar:3.1.3.RELEASE]
halo-1 |
at org.thymeleaf.util.ProcessorConfigurationUtils$ElementTagProcessorWrapper.process(ProcessorConfigurationUtils.java:633) ~[thymeleaf-3.1.3.RELEASE.jar:3.1.3.RELEASE]
halo-1 | at org.thymeleaf.engine.ProcessorTemplateHandler.handleOpenElement(ProcessorTemplateHandler.java:1314) ~[thymeleaf-3.1.3.RELEASE.jar:3.1.3.RELEASE]
halo-1 | at org.thymeleaf.engine.OpenElementTag.beHandled(OpenElementTag.java:205) ~[thymeleaf-3.1.3.RELEASE.jar:3.1.3.RELEASE]
halo-1 | at org.thymeleaf.engine.Model.process(Model.java:300) ~[thymeleaf-3.1.3.RELEASE.jar:3.1.3.RELEASE]
halo-1 | at org.thymeleaf.engine.OpenElementTagModelProcessable.process(OpenElementTagModelProcessable.java:110) ~[thymeleaf-3.1.3.RELEASE.jar:3.1.3.RELEASE]
halo-1 | at org.thymeleaf.engine.ProcessorTemplateHandler.queueProcessable(ProcessorTemplateHandler.java:2106) ~[thymeleaf-3.1.3.RELEASE.jar:3.1.3.RELEASE]
halo-1 |
at org.thymeleaf.engine.ProcessorTemplateHandler.handleOpenElement(ProcessorTemplateHandler.java:1559) ~[thymeleaf-3.1.3.RELEASE.jar:3.1.3.RELEASE]
halo-1 | at org.thymeleaf.engine.OpenElementTag.beHandled(OpenElementTag.java:205) ~[thymeleaf-3.1.3.RELEASE.jar:3.1.3.RELEASE]
halo-1 | at org.thymeleaf.engine.Model.process(Model.java:300) ~[thymeleaf-3.1.3.RELEASE.jar:3.1.3.RELEASE]
halo-1 | at org.thymeleaf.engine.OpenElementTagModelProcessable.process(OpenElementTagModelProcessable.java:110) ~[thymeleaf-3.1.3.RELEASE.jar:3.1.3.RELEASE]
halo-1 | at org.thymeleaf.engine.ProcessorTemplateHandler.handlePending(ProcessorTemplateHandler.java:2054) ~[thymeleaf-3.1.3.RELEASE.jar:3.1.3.RELEASE]
halo-1 | at org.thymeleaf.engine.ThrottledTemplateProcessor.process(ThrottledTemplateProcessor.java:234) ~[thymeleaf-3.1.3.RELEASE.jar:3.1.3.RELEASE]
halo-1 | at org.thymeleaf.engine.ThrottledTemplateProcessor.process(ThrottledTemplateProcessor.java:204) ~[thymeleaf-3.1.3.RELEASE.jar:3.1.3.RELEASE]
halo-1 | at org.thymeleaf.spring6.SpringWebFluxTemplateEngine$StreamThrottledTemplateProcessor.process(SpringWebFluxTemplateEngine.java:739) ~[thymeleaf-spring6-3.1.3.RELEASE.jar:3.1.3.RELEASE]
halo-1 |
at org.thymeleaf.spring6.SpringWebFluxTemplateEngine.lambda$createChunkedStream$2(SpringWebFluxTemplateEngine.java:269) ~[thymeleaf-spring6-3.1.3.RELEASE.jar:3.1.3.RELEASE]
halo-1 | at reactor.core.publisher.FluxGenerate$GenerateSubscription.slowPath(FluxGenerate.java:270) ~[reactor-core-3.8.6.jar:3.8.6]
halo-1 | at reactor.core.publisher.FluxGenerate$GenerateSubscription.request(FluxGenerate.java:212) ~[reactor-core-3.8.6.jar:3.8.6]
halo-1 | at reactor.core.publisher.FluxContextWrite$ContextWriteSubscriber.request(FluxContextWrite.java:138) ~[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.FluxSubscribeOn$SubscribeOnSubscriber.lambda$requestUpstream$0(FluxSubscribeOn.java:138) ~[reactor-core-3.8.6.jar:3.8.6]
halo-1 | at reactor.core.scheduler.BoundedElasticThreadPerTaskScheduler$SchedulerTask.run(BoundedElasticThreadPerTaskScheduler.java:1016) ~[reactor-core-3.8.6.jar:3.8.6]
halo-1 | at java.base/java.lang.VirtualThread.run(Unknown Source) ~[na:na]
halo-1 | Caused by: java.lang.IllegalStateException: Timeout on blocking read for 10000000000 NANOSECONDS
halo-1 | at reactor.core.publisher.BlockingOptionalMonoSubscriber.blockingGet(BlockingOptionalMonoSubscriber.java:154) ~[reactor-core-3.8.6.jar:3.8.6]
halo-1 | at reactor.core.publisher.Mono.blockOptional(Mono.java:1854) ~[reactor-core-3.8.6.jar:3.8.6]
halo-1 | at run.halo.app.infra.utils.ReactiveUtils.blockReactiveValue(ReactiveUtils.java:61) ~[application.jar:2.26.0]
halo-1 | at run.halo.app.infra.utils.ReactiveUtils.bl
ockReactiveValue(ReactiveUtils.java:39) ~[application.jar:2.26.0]
halo-1 | at run.halo.app.theme.dialect.EvaluationContextEnhancer$ReactiveMethodExecutor.lambda$execute$1(EvaluationContextEnhancer.java:204) ~[application.jar:2.26.0]
halo-1 | at java.base/java.util.Optional.map(Unknown Source) ~[na:na]
halo-1 | at run.halo.app.theme.dialect.EvaluationContextEnhancer$ReactiveMethodExecutor.execute(EvaluationContextEnhancer.java:199) ~[application.jar:2.26.0]
halo-1 | at org.springframework.expression.spel.ast.MethodReference.getValueInternal(MethodReference.java:223) ~[spring-expression-7.0.8.jar:7.0.8]
halo-1 | at org.springframework.expression.spel.ast.MethodReference.getValueInternal(MethodReference.java:125) ~[spring-expression-7.0.8.jar:7.0.8]
halo-1 | at org.springframework.expression.spel.ast.CompoundExpression.getValueRef(CompoundExpression.java:66) ~[spring-expression-7.0.8.jar:7.0.8]
halo-1 |
at org.springframework.expression.spel.ast.CompoundExpression.getValueInternal(CompoundExpression.java:96) ~[spring-expression-7.0.8.jar:7.0.8]
halo-1 | at org.springframework.expression.spel.ast.SpelNodeImpl.getValue(SpelNodeImpl.java:114) ~[spring-expression-7.0.8.jar:7.0.8]
halo-1 | at org.springframework.expression.spel.standard.SpelExpression.getValue(SpelExpression.java:330) ~[spring-expression-7.0.8.jar:7.0.8]
halo-1 | at org.thymeleaf.spring6.expression.SPELVariableExpressionEvaluator.evaluate(SPELVariableExpressionEvaluator.java:265) ~[thymeleaf-spring6-3.1.3.RELEASE.jar:3.1.3.RELEASE]
halo-1 |
at run.halo.app.theme.ReactiveSpelVariableExpressionEvaluator.evaluate(ReactiveSpelVariableExpressionEvaluator.java:40) ~[application.jar:2.26.0]
halo-1 | at org.thymeleaf.standard.expression.VariableExpression.executeVariableExpression(VariableExpression.java:166) ~[thymeleaf-3.1.3.RELEASE.jar:3.1.3.RELEASE]
halo-1 | at org.thymeleaf.standard.expression.SimpleExpression.executeSimple(SimpleExpression.java:66) ~[thymeleaf-3.1.3.RELEASE.jar:3.1.3.RELEASE]
halo-1 |
at org.thymeleaf.standard.expression.Expression.execute(Expression.java:109) ~[thymeleaf-3.1.3.RELEASE.jar:3.1.3.RELEASE]
halo-1 | at org.thymeleaf.standard.expression.Expression.execute(Expression.java:138) ~[thymeleaf-3.1.3.RELEASE.jar:3.1.3.RELEASE]
halo-1 | at org.thymeleaf.standard.expression.Expression.execute(Expression.java:125) ~[thymeleaf-3.1.3.RELEASE.jar:3.1.3.RELEASE]
halo-1 | at org.thymeleaf.standard.processor.StandardEachTagProcessor.doProcess(StandardEachTagProcessor.java:73) ~[thymeleaf-3.1.3.RELEASE.jar:3.1.3.RELEASE]
halo-1 |
at org.thymeleaf.processor.element.AbstractAttributeTagProcessor.doProcess(AbstractAttributeTagProcessor.java:74) ~[thymeleaf-3.1.3.RELEASE.jar:3.1.3.RELEASE]
halo-1 |
at org.thymeleaf.processor.element.AbstractElementTagProcessor.process(AbstractElementTagProcessor.java:95) ~[thymeleaf-3.1.3.RELEASE.jar:3.1.3.RELEASE]
halo-1 | at org.thymeleaf.util.ProcessorConfigurationUtils$ElementTagProcessorWrapper.process(ProcessorConfigurationUtils.java:633) ~[thymeleaf-3.1.3.RELEASE.jar:3.1.3.RELEASE]
halo-1 | at org.thymeleaf.engine.ProcessorTemplateHandler.handleOpenElement(ProcessorTemplateHandler.java:1314) ~[thymeleaf-3.1.3.RELEASE.jar:3.1.3.RELEASE]
halo-1 |
at org.thymeleaf.engine.OpenElementTag.beHandled(OpenElementTag.java:205) ~[thymeleaf-3.1.3.RELEASE.jar:3.1.3.RELEASE]
halo-1 | at org.thymeleaf.engine.Model.process(Model.java:300) ~[thymeleaf-3.1.3.RELEASE.jar:3.1.3.RELEASE]
halo-1 | at org.thymeleaf.engine.OpenElementTagModelProcessable.process(OpenElementTagModelProcessable.java:110) ~[thymeleaf-3.1.3.RELEASE.jar:3.1.3.RELEASE]
halo-1 |
at org.thymeleaf.engine.ProcessorTemplateHandler.queueProcessable(ProcessorTemplateHandler.java:2106) ~[thymeleaf-3.1.3.RELEASE.jar:3.1.3.RELEASE]
halo-1 | at org.thymeleaf.engine.ProcessorTemplateHandler.handleOpenElement(ProcessorTemplateHandler.java:1559) ~[thymeleaf-3.1.3.RELEASE.jar:3.1.3.RELEASE]
halo-1 | at org.thymeleaf.engine.OpenElementTag.beHandled(OpenElementTag.java:205) ~[thymeleaf-3.1.3.RELEASE.jar:3.1.3.RELEASE]
halo-1 | at org.thymeleaf.engine.Model.process(Model.java:300) ~[thymeleaf-3.1.3.RELEASE.jar:3.1.3.RELEASE]
halo-1 | at org.thymeleaf.engine.OpenElementTagModelProcessable.process(OpenElementTagModelProcessable.java:110) ~[thymeleaf-3.1.3.RELEASE.jar:3.1.3.RELEASE]
halo-1 | at org.thymeleaf.engine.ProcessorTemplateHandler.handlePending(ProcessorTemplateHandler.java:2054) ~[thymeleaf-3.1.3.RELEASE.jar:3.1.3.RELEASE]
halo-1 | at org.thymeleaf.engine.ThrottledTemplateProcessor.process(ThrottledTemplatePro
cessor.java:234) ~[thymeleaf-3.1.3.RELEASE.jar:3.1.3.RELEASE]
halo-1 | at org.thymeleaf.engine.ThrottledTemplateProcessor.process(ThrottledTemplateProcessor.java:204) ~[thymeleaf-3.1.3.RELEASE.jar:3.1.3.RELEASE]
halo-1 | at org.thymeleaf.spring6.SpringWebFluxTemplateEngine$StreamThrottledTemplateProcessor.process(SpringWebFluxTemplateEngine.java:739) ~[thymeleaf-spring6-3.1.3.RELEASE.jar:3.1.3.RELEASE]
halo-1 | at org.thymeleaf.spring6.SpringWebFluxTemplateEngine.lambda$createChunkedStream$2(SpringWebFluxTemplateEngine.java:269) ~[thymeleaf-spring6-3.1.3.RELEASE.jar:3.1.3.RELEASE]
halo-1 | at reactor.core.publisher.FluxGenerate$GenerateSubscription.slowPath(FluxGenerate.java:270) ~[reactor-core-3.8.6.jar:3.8.6]
halo-1 | at reactor.core.publisher.FluxGenerate$GenerateSubscription.request(FluxGenerate.java:212) ~[reactor-core-3.8.6.jar:3.8.6]
halo-1 | at reactor.core.publisher.FluxContextWrite$ContextWriteSubscriber.request(Flux
ContextWrite.java:138) ~[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.FluxSubscribeOn$SubscribeOnSubscriber.lambda$requestUpstream$0(FluxSubscribeOn.java:138) ~[reactor-core-3.8.6.jar:3.8.6]
halo-1 | at reactor.core.scheduler.BoundedElasticThreadPerTaskScheduler$SchedulerTask.run(BoundedElasticThreadPerTaskScheduler.java:1016) ~[reactor-core-3.8.6.jar:3.8.6]
halo-1 | at java.base/java.lang.VirtualThread.run(Unknown Source) ~[na:na]
halo-1 | Caused by: java.util.concurrent.TimeoutException: Timeout on blocking read for 10000000000 NANOSECONDS
halo-1 | ... 45 common frames omitted
halo-1 |
halo-1 | 2026-08-26T22:05:07.220+08:00 ERROR 1 --- [ctor-http-nio-4] o.s.w.s.adapter.HttpWebHandlerAdapter : [13963857-63] Error [org.thymeleaf.exceptions.TemplateProcessingException: Exception evaluating SpringEL expression: "menuFinder.getPrimary().menuItems" (template: "modules/header" - line 13, col 19)] for HTTP GET "/", but ServerHttpResponse already committed (200 OK)
halo-1 | 2026-08-26T22:05:07.221+08:00 ERROR 1 --- [ctor-http-nio-4] r.n.http.server.HttpServerOperations : [13963857-1, L:/172.18.0.3:8090 - R:/172.18.0.1:34560] Error finishing response. Closing connection
halo-1 |
halo-1 | org.thymeleaf.exceptions.TemplateProcessingException: Exception evaluating SpringEL expression: "menuFinder.getPrimary().menuItems" (template: "modules/header" - line 13, col 19)
halo-1 | at org.thymeleaf.spring6.expression.SPELVariableExpressionEvaluator.evaluate(SPELVariableExpressionEvaluator.java:292) ~[thymeleaf-spring6-3.1.3.RELEASE.jar:3.1.3.RELEASE]
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 ⇢ Handler run.halo.app.theme.router.factories.IndexRouteFactory$$Lambda/0x000000010739b400@937bb41 [DispatcherHandler]
halo-1 |
*__checkpoint ⇢ run.halo.app.security.InitializeRedirectionWebFilter@1eb85a47
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 ⇢ ProfileCompletionFilter [DefaultWebFilterChain]
halo-1 | *__checkpoint ⇢ AnonymousAuthenticationWebFilter [DefaultWebFilterChain]
halo-1 | *__checkpoint ⇢ SecurityWebFilterChainProxy [DefaultWebFilterChain]
halo-1 | *__checkpoint ⇢ SecurityWebFilterChainProxy [DefaultWebFilterChain]
halo-1 | *__check
point ⇢ 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 ⇢ AuthenticationWebFilter [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@6befbb12
halo-1 | *__checkpoint ⇢ run.halo.moments.rss.OldRssRouteRedirectionFilter@3e86a7b6
halo-1 | *__checkpoint ⇢ site.zzrbk.plugin.captcha.CaptchaWebFilter@de0aa18
halo-1 | *__checkpoint ⇢ io.github.shirainbown.sharelink.protect.UploadProtectFilter@20133623
halo-1 | *__checkpoint ⇢ run.halo.comment.widget.captcha.CommentCaptchaFilter@32be8829
halo-1 | *__checkpoint ⇢ run.halo.app.infra.webfilter.AdditionalWebFilterChainProxy@79d63a4f
halo-1 | *__checkpoint ⇢ org.springframework.web.filter.reactive.ServerWebExchangeContextFilter@2e2b9f53
hal
o-1 | *__checkpoint ⇢ run.halo.app.infra.webfilter.LocaleChangeWebFilter@527937d0
halo-1 | *__checkpoint ⇢ org.springframework.web.filter.reactive.UrlHandlerFilter@21527b8
halo-1 | *__checkpoint ⇢ run.halo.app.theme.UserLocaleRequestAttributeWriteFilter@23121d14
halo-1 | *__checkpoint ⇢ HTTP GET "/" [ExceptionHandlingWebHandler]
halo-1 | Original Stack Trace:
halo-1 | at org.thymeleaf.spring6.expression.SPELVariableExpressionEvaluator.evaluate(SPELVariableExpressionEvaluator.java:292) ~[thymeleaf-spring6-3.1.3.RELEASE.jar:3.1.3.RELEASE]
halo-1 | at run.halo.app.theme.ReactiveSpelVariableExpressionEvaluator.evaluate(ReactiveSpelVariableExpressionEvaluator.java:40) ~[application.jar:2.26.0]
halo-1 | at org.thymeleaf.standard.expression.VariableExpression.executeVariableExpression(VariableExpression.java:166) ~[thymeleaf-3.1.3.RELEASE.jar:3.1.3.RELEASE]
halo-1 | at org.thymeleaf.stan
dard.expression.SimpleExpression.executeSimple(SimpleExpression.java:66) ~[thymeleaf-3.1.3.RELEASE.jar:3.1.3.RELEASE]
halo-1 | at org.thymeleaf.standard.expression.Expression.execute(Expression.java:109) ~[thymeleaf-3.1.3.RELEASE.jar:3.1.3.RELEASE]
halo-1 | at org.thymeleaf.standard.expression.Expression.execute(Expression.java:138) ~[thymeleaf-3.1.3.RELEASE.jar:3.1.3.RELEASE]
halo-1 | at org.thymeleaf.standard.expression.Expression.execute(Expression.java:125) ~[thymeleaf-3.1.3.RELEASE.jar:3.1.3.RELEASE]
halo-1 | at org.thymeleaf.standard.processor.StandardEachTagProcessor.doProcess(StandardEachTagProcessor.java:73) ~[thymeleaf-3.1.3.RELEASE.jar:3.1.3.RELEASE]
halo-1 | at org.thymeleaf.processor.element.AbstractAttributeTagProcessor.doProcess(AbstractAttributeTagProcessor.java:74) ~[thymeleaf-3.1.3.RELEASE.jar:3.1.3.RELEASE]
halo-1 | at org.thymeleaf.processor.element.AbstractElementTagProcessor.process(AbstractElementT
agProcessor.java:95) ~[thymeleaf-3.1.3.RELEASE.jar:3.1.3.RELEASE]
halo-1 | at org.thymeleaf.util.ProcessorConfigurationUtils$ElementTagProcessorWrapper.process(ProcessorConfigurationUtils.java:633) ~[thymeleaf-3.1.3.RELEASE.jar:3.1.3.RELEASE]
halo-1 | at org.thymeleaf.engine.ProcessorTemplateHandler.handleOpenElement(ProcessorTemplateHandler.java:1314) ~[thymeleaf-3.1.3.RELEASE.jar:3.1.3.RELEASE]
halo-1 | at org.thymeleaf.engine.OpenElementTag.beHandled(OpenElementTag.java:205) ~[thymeleaf-3.1.3.RELEASE.jar:3.1.3.RELEASE]
halo-1 | at org.thymeleaf.engine.Model.process(Model.java:300) ~[thymeleaf-3.1.3.RELEASE.jar:3.1.3.RELEASE]
halo-1 | at org.thymeleaf.engine.OpenElementTagModelProcessable.process(OpenElementTagModelProcessable.java:110) ~[thymeleaf-3.1.3.RELEASE.jar:3.1.3.RELEASE]
halo-1 | at org.thymeleaf.engine.ProcessorTemplateHandler.queueProcessable(ProcessorTemplateHandler.java:2106) ~[thymeleaf-3.1.3.RELEASE.jar
:3.1.3.RELEASE]
halo-1 | at org.thymeleaf.engine.ProcessorTemplateHandler.handleOpenElement(ProcessorTemplateHandler.java:1559) ~[thymeleaf-3.1.3.RELEASE.jar:3.1.3.RELEASE]
halo-1 | at org.thymeleaf.engine.OpenElementTag.beHandled(OpenElementTag.java:205) ~[thymeleaf-3.1.3.RELEASE.jar:3.1.3.RELEASE]
halo-1 | at org.thymeleaf.engine.Model.process(Model.java:300) ~[thymeleaf-3.1.3.RELEASE.jar:3.1.3.RELEASE]
halo-1 | at org.thymeleaf.engine.OpenElementTagModelProcessable.process(OpenElementTagModelProcessable.java:110) ~[thymeleaf-3.1.3.RELEASE.jar:3.1.3.RELEASE]
halo-1 | at org.thymeleaf.engine.ProcessorTemplateHandler.handlePending(ProcessorTemplateHandler.java:2054) ~[thymeleaf-3.1.3.RELEASE.jar:3.1.3.RELEASE]
halo-1 | at org.thymeleaf.engine.ThrottledTemplateProcessor.process(ThrottledTemplateProcessor.java:234) ~[thymeleaf-3.1.3.RELEASE.jar:3.1.3.RELEASE]
halo-1 | at org.thymeleaf.engine.ThrottledTemplat
eProcessor.process(ThrottledTemplateProcessor.java:204) ~[thymeleaf-3.1.3.RELEASE.jar:3.1.3.RELEASE]
halo-1 | at org.thymeleaf.spring6.SpringWebFluxTemplateEngine$StreamThrottledTemplateProcessor.process(SpringWebFluxTemplateEngine.java:739) ~[thymeleaf-spring6-3.1.3.RELEASE.jar:3.1.3.RELEASE]
halo-1 | at org.thymeleaf.spring6.SpringWebFluxTemplateEngine.lambda$createChunkedStream$2(SpringWebFluxTemplateEngine.java:269) ~[thymeleaf-spring6-3.1.3.RELEASE.jar:3.1.3.RELEASE]
halo-1 | at reactor.core.publisher.FluxGenerate$GenerateSubscription.slowPath(FluxGenerate.java:270) ~[reactor-core-3.8.6.jar:3.8.6]
halo-1 | at reactor.core.publisher.FluxGenerate$GenerateSubscription.request(FluxGenerate.java:212) ~[reactor-core-3.8.6.jar:3.8.6]
halo-1 | at reactor.core.publisher.FluxContextWrite$ContextWriteSubscriber.request(FluxContextWrite.java:138) ~[reactor-core-3.8.6.jar:3.8.6]
halo-1 | at reactor.core.publisher.FluxPeekFuseabl
e$PeekFuseableSubscriber.request(FluxPeekFuseable.java:144) ~[reactor-core-3.8.6.jar:3.8.6]
halo-1 | at reactor.core.publisher.FluxSubscribeOn$SubscribeOnSubscriber.lambda$requestUpstream$0(FluxSubscribeOn.java:138) ~[reactor-core-3.8.6.jar:3.8.6]
halo-1 | at reactor.core.scheduler.BoundedElasticThreadPerTaskScheduler$SchedulerTask.run(BoundedElasticThreadPerTaskScheduler.java:1016) ~[reactor-core-3.8.6.jar:3.8.6]
halo-1 | at java.base/java.lang.VirtualThread.run(Unknown Source) ~[na:na]
halo-1 | Caused by: java.lang.IllegalStateException: Timeout on blocking read for 10000000000 NANOSECONDS
halo-1 | at reactor.core.publisher.BlockingOptionalMonoSubscriber.blockingGet(BlockingOptionalMonoSubscriber.java:154) ~[reactor-core-3.8.6.jar:3.8.6]
halo-1 | at reactor.core.publisher.Mono.blockOptional(Mono.java:1854) ~[reactor-core-3.8.6.jar:3.8.6]
halo-1 | at run.halo.app.infra.utils.ReactiveUtils.blockReactiveValue(Re
activeUtils.java:61) ~[application.jar:2.26.0]
halo-1 | at run.halo.app.infra.utils.ReactiveUtils.blockReactiveValue(ReactiveUtils.java:39) ~[application.jar:2.26.0]
halo-1 | at run.halo.app.theme.dialect.EvaluationContextEnhancer$ReactiveMethodExecutor.lambda$execute$1(EvaluationContextEnhancer.java:204) ~[application.jar:2.26.0]
halo-1 | at java.base/java.util.Optional.map(Unknown Source) ~[na:na]
halo-1 | at run.halo.app.theme.dialect.EvaluationContextEnhancer$ReactiveMethodExecutor.execute(EvaluationContextEnhancer.java:199) ~[application.jar:2.26.0]
halo-1 | at org.springframework.expression.spel.ast.MethodReference.getValueInternal(MethodReference.java:223) ~[spring-expression-7.0.8.jar:7.0.8]
halo-1 | at org.springframework.expression.spel.ast.MethodReference.getValueInternal(MethodReference.java:125) ~[spring-expression-7.0.8.jar:7.0.8]
halo-1 | at org.springframework.expression.spel.ast.CompoundExpressio
n.getValueRef(CompoundExpression.java:66) ~[spring-expression-7.0.8.jar:7.0.8]
halo-1 | at org.springframework.expression.spel.ast.CompoundExpression.getValueInternal(CompoundExpression.java:96) ~[spring-expression-7.0.8.jar:7.0.8]
halo-1 | at org.springframework.expression.spel.ast.SpelNodeImpl.getValue(SpelNodeImpl.java:114) ~[spring-expression-7.0.8.jar:7.0.8]
halo-1 | at org.springframework.expression.spel.standard.SpelExpression.getValue(SpelExpression.java:330) ~[spring-expression-7.0.8.jar:7.0.8]
halo-1 | at org.thymeleaf.spring6.expression.SPELVariableExpressionEvaluator.evaluate(SPELVariableExpressionEvaluator.java:265) ~[thymeleaf-spring6-3.1.3.RELEASE.jar:3.1.3.RELEASE]
halo-1 | at run.halo.app.theme.ReactiveSpelVariableExpressionEvaluator.evaluate(ReactiveSpelVariableExpressionEvaluator.java:40) ~[application.jar:2.26.0]
halo-1 | at org.thymeleaf.standard.expression.VariableExpression.executeVariableExpression(Vari
ableExpression.java:166) ~[thymeleaf-3.1.3.RELEASE.jar:3.1.3.RELEASE]
halo-1 | at org.thymeleaf.standard.expression.SimpleExpression.executeSimple(SimpleExpression.java:66) ~[thymeleaf-3.1.3.RELEASE.jar:3.1.3.RELEASE]
halo-1 | at org.thymeleaf.standard.expression.Expression.execute(Expression.java:109) ~[thymeleaf-3.1.3.RELEASE.jar:3.1.3.RELEASE]
halo-1 | at org.thymeleaf.standard.expression.Expression.execute(Expression.java:138) ~[thymeleaf-3.1.3.RELEASE.jar:3.1.3.RELEASE]
halo-1 | at org.thymeleaf.standard.expression.Expression.execute(Expression.java:125) ~[thymeleaf-3.1.3.RELEASE.jar:3.1.3.RELEASE]
halo-1 | at org.thymeleaf.standard.processor.StandardEachTagProcessor.doProcess(StandardEachTagProcessor.java:73) ~[thymeleaf-3.1.3.RELEASE.jar:3.1.3.RELEASE]
halo-1 | at org.thymeleaf.processor.element.AbstractAttributeTagProcessor.doProcess(AbstractAttributeTagProcessor.java:74) ~[thymeleaf-3.1.3.RELEASE.jar:3.1.3.RELEASE]
halo-1 | at org.thymeleaf.processor.element.AbstractElementTagProcessor.process(AbstractElementTagProcessor.java:95) ~[thymeleaf-3.1.3.RELEASE.jar:3.1.3.RELEASE]
halo-1 | at org.thymeleaf.util.ProcessorConfigurationUtils$ElementTagProcessorWrapper.process(ProcessorConfigurationUtils.java:633) ~[thymeleaf-3.1.3.RELEASE.jar:3.1.3.RELEASE]
halo-1 | at org.thymeleaf.engine.ProcessorTemplateHandler.handleOpenElement(ProcessorTemplateHandler.java:1314) ~[thymeleaf-3.1.3.RELEASE.jar:3.1.3.RELEASE]
halo-1 | at org.thymeleaf.engine.OpenElementTag.beHandled(OpenElementTag.java:205) ~[thymeleaf-3.1.3.RELEASE.jar:3.1.3.RELEASE]
halo-1 | at org.thymeleaf.engine.Model.process(Model.java:300) ~[thymeleaf-3.1.3.RELEASE.jar:3.1.3.RELEASE]
halo-1 | at org.thymeleaf.engine.OpenElementTagModelProcessable.process(OpenElementTagModelProcessable.java:110) ~[thymeleaf-3.1.3.RELEASE.jar:3.1.3.RELEASE]
halo-1 | at org.thymeleaf.engine.Proce
ssorTemplateHandler.queueProcessable(ProcessorTemplateHandler.java:2106) ~[thymeleaf-3.1.3.RELEASE.jar:3.1.3.RELEASE]
halo-1 | at org.thymeleaf.engine.ProcessorTemplateHandler.handleOpenElement(ProcessorTemplateHandler.java:1559) ~[thymeleaf-3.1.3.RELEASE.jar:3.1.3.RELEASE]
halo-1 | at org.thymeleaf.engine.OpenElementTag.beHandled(OpenElementTag.java:205) ~[thymeleaf-3.1.3.RELEASE.jar:3.1.3.RELEASE]
halo-1 | at org.thymeleaf.engine.Model.process(Model.java:300) ~[thymeleaf-3.1.3.RELEASE.jar:3.1.3.RELEASE]
halo-1 | at org.thymeleaf.engine.OpenElementTagModelProcessable.process(OpenElementTagModelProcessable.java:110) ~[thymeleaf-3.1.3.RELEASE.jar:3.1.3.RELEASE]
halo-1 | at org.thymeleaf.engine.ProcessorTemplateHandler.handlePending(ProcessorTemplateHandler.java:2054) ~[thymeleaf-3.1.3.RELEASE.jar:3.1.3.RELEASE]
halo-1 | at org.thymeleaf.engine.ThrottledTemplateProcessor.process(ThrottledTemplateProcessor.java:234) ~[thymeleaf-3
.1.3.RELEASE.jar:3.1.3.RELEASE]
halo-1 | at org.thymeleaf.engine.ThrottledTemplateProcessor.process(ThrottledTemplateProcessor.java:204) ~[thymeleaf-3.1.3.RELEASE.jar:3.1.3.RELEASE]
halo-1 | at org.thymeleaf.spring6.SpringWebFluxTemplateEngine$StreamThrottledTemplateProcessor.process(SpringWebFluxTemplateEngine.java:739) ~[thymeleaf-spring6-3.1.3.RELEASE.jar:3.1.3.RELEASE]
halo-1 | at org.thymeleaf.spring6.SpringWebFluxTemplateEngine.lambda$createChunkedStream$2(SpringWebFluxTemplateEngine.java:269) ~[thymeleaf-spring6-3.1.3.RELEASE.jar:3.1.3.RELEASE]
halo-1 | at reactor.core.publisher.FluxGenerate$GenerateSubscription.slowPath(FluxGenerate.java:270) ~[reactor-core-3.8.6.jar:3.8.6]
halo-1 | at reactor.core.publisher.FluxGenerate$GenerateSubscription.request(FluxGenerate.java:212) ~[reactor-core-3.8.6.jar:3.8.6]
halo-1 | at reactor.core.publisher.FluxContextWrite$ContextWriteSubscriber.request(FluxContextWrite.java:138) ~[react
or-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.FluxSubscribeOn$SubscribeOnSubscriber.lambda$requestUpstream$0(FluxSubscribeOn.java:138) ~[reactor-core-3.8.6.jar:3.8.6]
halo-1 | at reactor.core.scheduler.BoundedElasticThreadPerTaskScheduler$SchedulerTask.run(BoundedElasticThreadPerTaskScheduler.java:1016) ~[reactor-core-3.8.6.jar:3.8.6]
halo-1 | at java.base/java.lang.VirtualThread.run(Unknown Source) ~[na:na]
halo-1 | Caused by: java.util.concurrent.TimeoutException: Timeout on blocking read for 10000000000 NANOSECONDS
halo-1 | ... 45 common frames omitted
halo-1 | 当时给我吓死了,然后就是整个博客卡死,页面无法刷新了。ai说这个和渲染有关,于是我又重启容器,在没有进入主页的情况下把主题换回来了,之后还是报错,插件列表里的一些原本能正常运行的也开始报错,当时就快疯了,因为我安装了一个插件,每次开容器都会自己备份一遍,而且最多只能保存五分备份,结果在我的多次重启情况下,旧的备份直接被顶掉了········
当时真的好绝望,已经重新建一个compose了,结果把新备份倒进去,还是一样的表现,我就好奇,这玩意还能传染的吗
又是不断的尝试,在我接近崩溃的时候,智商占领高地,我尝试把compose里的halo版本从2.26.0改成我以前一直用的2.25.4,完美复活。具体问题我不知道,但这次问题给了我巨大的教训,我相信我已经大概了解如何维护一个博客了。
