-
-
Notifications
You must be signed in to change notification settings - Fork 10.1k
Open
Description
前置条件
- 已经在 issues 列表中搜索了相关问题。
- 这是 Halo 项目本身存在的问题,如果是非项目本身的问题(如:安装部署问题),建议在 Discussions 提交。
- 已经尝试过停用所有的插件,排除是插件导致的问题。
- 如果是插件和主题的问题,请在对应的插件和主题仓库提交。
系统信息
- 外部访问地址: https://blog.dhbxs.top
- 启动时间: 2025-10-12 15:27
- 版本: 2.21.9
- 构建时间: 2025-09-24 16:32
- Git Commit: fa0b244
- Java: IBM Semeru Runtime Open Edition / 21.0.8+9-LTS
- 数据库: PostgreSQL / 17.6
- 操作系统: Linux / 6.8.0-31-generic
- 已激活主题: Earth 1.13.1
- 已启动插件:
使用的哪种方式运行?
Docker Compose
发生了什么?
使用 ITDog 等类似的网站测速工具时,选择快速测试,即多个节点并发请求测速,Halo就会崩掉,整个站点都会502或者503等,过一会儿3~5分钟自行恢复
系统配置
腾讯云轻量应用服务器
2核心2G内存4Mbps带宽
数据库使用PostgreSQL 部署于同服务器,通过docker局域网访问
1Panel面板部署,OpenResty反代
复现步骤
- 打开 ITDog
- 输入网站URL https://blog.dhbxs.top/archives/d06540f2
- 点击快速测试
- 全部失败,同时,整个站点无法正常访问
- 过3~5分钟自行恢复,站点可正常访问
相关日志输出
2025-10-13T00:08:39.141+08:00 WARN 7 --- [loomBoundedElastic-20499] r.h.app.theme.engine.HaloTemplateEngine : Interrupted while processing template: post
2025-10-13T00:08:41.135+08:00 WARN 7 --- [loomBoundedElastic-20517] r.h.app.theme.engine.HaloTemplateEngine : Interrupted while processing template: post
2025-10-13T00:08:41.183+08:00 WARN 7 --- [loomBoundedElastic-20541] r.h.app.theme.engine.HaloTemplateEngine : Interrupted while outputting template: post
2025-10-13T00:08:41.183+08:00 WARN 7 --- [loomBoundedElastic-20534] r.h.app.theme.engine.HaloTemplateEngine : Interrupted while outputting template: post
2025-10-13T00:08:42.405+08:00 WARN 7 --- [loomBoundedElastic-20549] r.h.app.theme.engine.HaloTemplateEngine : Interrupted while outputting template: post
2025-10-13T00:08:42.887+08:00 WARN 7 --- [loomBoundedElastic-20557] r.h.app.theme.engine.HaloTemplateEngine : Interrupted while outputting template: post
2025-10-13T00:08:44.791+08:00 WARN 7 --- [loomBoundedElastic-20581] r.h.app.theme.engine.HaloTemplateEngine : Interrupted while outputting template: post
2025-10-13T00:08:44.815+08:00 WARN 7 --- [loomBoundedElastic-20582] r.h.app.theme.engine.HaloTemplateEngine : Interrupted while processing template: post
2025-10-13T00:08:44.846+08:00 WARN 7 --- [loomBoundedElastic-20583] r.h.app.theme.engine.HaloTemplateEngine : Interrupted while outputting template: post
2025-10-13T00:08:45.062+08:00 WARN 7 --- [loomBoundedElastic-20584] r.h.app.theme.engine.HaloTemplateEngine : Interrupted while outputting template: post
2025-10-13T00:08:45.789+08:00 WARN 7 --- [loomBoundedElastic-20589] r.h.app.theme.engine.HaloTemplateEngine : Interrupted while outputting template: post
2025-10-13T00:08:46.265+08:00 WARN 7 --- [loomBoundedElastic-20592] r.h.app.theme.engine.HaloTemplateEngine : Interrupted while outputting template: post
2025-10-13T00:08:46.275+08:00 WARN 7 --- [loomBoundedElastic-20593] r.h.app.theme.engine.HaloTemplateEngine : Interrupted while outputting template: post
2025-10-13T00:08:46.709+08:00 WARN 7 --- [loomBoundedElastic-20597] r.h.app.theme.engine.HaloTemplateEngine : Interrupted while outputting template: post
2025-10-13T00:08:46.732+08:00 WARN 7 --- [loomBoundedElastic-20599] r.h.app.theme.engine.HaloTemplateEngine : Interrupted while processing template: post
2025-10-13T00:08:46.993+08:00 WARN 7 --- [loomBoundedElastic-20601] r.h.app.theme.engine.HaloTemplateEngine : Interrupted while outputting template: post
2025-10-13T00:08:47.019+08:00 ERROR 7 --- [reactor-http-epoll-3] o.s.w.s.adapter.HttpWebHandlerAdapter : [3bf18da7-11739] Error [reactor.core.Exceptions$ReactorRejectedExecutionException: Scheduler unavailable] for HTTP GET "/archives/d06540f2", but ServerHttpResponse already committed (200 OK)
2025-10-13T00:08:47.024+08:00 ERROR 7 --- [reactor-http-epoll-3] r.n.http.server.HttpServerOperations : [3bf18da7-1, L:/172.18.0.4:8090 - R:/172.18.0.1:39296] Error finishing response. Closing connection
reactor.core.Exceptions$ReactorRejectedExecutionException: Scheduler unavailable
at reactor.core.Exceptions.failWithRejected(Exceptions.java:285) ~[reactor-core-3.7.11.jar:3.7.11]
Suppressed: reactor.core.publisher.FluxOnAssembly$OnAssemblyException:
Error has been observed at the following site(s):
*__checkpoint ⇢ Handler run.halo.app.theme.router.factories.PostRouteFactory$$Lambda/0x00000000d34fb888@9a9bb2c2 [DispatcherHandler]
*__checkpoint ⇢ run.halo.app.security.InitializeRedirectionWebFilter [DefaultWebFilterChain]
*__checkpoint ⇢ run.halo.app.security.device.DeviceSessionFilter [DefaultWebFilterChain]
*__checkpoint ⇢ SecurityWebFilterChainProxy [DefaultWebFilterChain]
*__checkpoint ⇢ SwitchUserWebFilter [DefaultWebFilterChain]
*__checkpoint ⇢ AuthorizationWebFilter [DefaultWebFilterChain]
*__checkpoint ⇢ ExceptionTranslationWebFilter [DefaultWebFilterChain]
*__checkpoint ⇢ LogoutWebFilter [DefaultWebFilterChain]
*__checkpoint ⇢ ServerRequestCacheWebFilter [DefaultWebFilterChain]
*__checkpoint ⇢ SecurityContextServerWebExchangeWebFilter [DefaultWebFilterChain]
*__checkpoint ⇢ SecurityWebFilterChainProxy [DefaultWebFilterChain]
*__checkpoint ⇢ AnonymousAuthenticationWebFilter [DefaultWebFilterChain]
*__checkpoint ⇢ SecurityWebFilterChainProxy [DefaultWebFilterChain]
*__checkpoint ⇢ SecurityWebFilterChainProxy [DefaultWebFilterChain]
*__checkpoint ⇢ AuthenticationWebFilter [DefaultWebFilterChain]
*__checkpoint ⇢ AuthenticationWebFilter [DefaultWebFilterChain]
*__checkpoint ⇢ AuthenticationWebFilter [DefaultWebFilterChain]
*__checkpoint ⇢ MapOAuth2AuthenticationFilter [DefaultWebFilterChain]
*__checkpoint ⇢ AuthenticationWebFilter [DefaultWebFilterChain]
*__checkpoint ⇢ SecurityWebFilterChainProxy [DefaultWebFilterChain]
*__checkpoint ⇢ [DefaultWebFilterChain]
*__checkpoint ⇢ SecurityWebFilterChainProxy [DefaultWebFilterChain]
*__checkpoint ⇢ CaptchaWebFilter [DefaultWebFilterChain]
*__checkpoint ⇢ ReactorContextWebFilter [DefaultWebFilterChain]
*__checkpoint ⇢ CsrfWebFilter [DefaultWebFilterChain]
*__checkpoint ⇢ CorsWebFilter [DefaultWebFilterChain]
*__checkpoint ⇢ HttpHeaderWriterWebFilter [DefaultWebFilterChain]
*__checkpoint ⇢ SecurityWebFilterChainProxy [DefaultWebFilterChain]
*__checkpoint ⇢ ServerWebExchangeReactorContextWebFilter [DefaultWebFilterChain]
*__checkpoint ⇢ org.springframework.security.web.server.WebFilterChainProxy [DefaultWebFilterChain]
*__checkpoint ⇢ run.halo.moments.rss.OldRssRouteRedirectionFilter [DefaultWebFilterChain]
*__checkpoint ⇢ run.halo.comment.widget.captcha.CommentCaptchaFilter [DefaultWebFilterChain]
*__checkpoint ⇢ run.halo.app.infra.webfilter.AdditionalWebFilterChainProxy [DefaultWebFilterChain]
*__checkpoint ⇢ org.springframework.web.filter.reactive.ServerWebExchangeContextFilter [DefaultWebFilterChain]
*__checkpoint ⇢ run.halo.app.infra.webfilter.LocaleChangeWebFilter [DefaultWebFilterChain]
*__checkpoint ⇢ org.springframework.web.filter.reactive.UrlHandlerFilter [DefaultWebFilterChain]
*__checkpoint ⇢ run.halo.app.theme.UserLocaleRequestAttributeWriteFilter [DefaultWebFilterChain]
*__checkpoint ⇢ HTTP GET "/archives/d06540f2" [ExceptionHandlingWebHandler]
Original Stack Trace:
at reactor.core.Exceptions.failWithRejected(Exceptions.java:285) ~[reactor-core-3.7.11.jar:3.7.11]
at reactor.core.publisher.Operators.onRejectedExecution(Operators.java:1076) ~[reactor-core-3.7.11.jar:3.7.11]
at reactor.core.publisher.FluxSubscribeOn$SubscribeOnSubscriber.requestUpstream(FluxSubscribeOn.java:142) ~[reactor-core-3.7.11.jar:3.7.11]
at reactor.core.publisher.FluxSubscribeOn$SubscribeOnSubscriber.request(FluxSubscribeOn.java:175) ~[reactor-core-3.7.11.jar:3.7.11]
at reactor.core.publisher.FluxPeek$PeekSubscriber.request(FluxPeek.java:138) ~[reactor-core-3.7.11.jar:3.7.11]
at reactor.core.publisher.FluxWindow$WindowExactSubscriber.request(FluxWindow.java:225) ~[reactor-core-3.7.11.jar:3.7.11]
at org.springframework.http.server.reactive.ChannelSendOperator$WriteBarrier.request(ChannelSendOperator.java:300) ~[spring-web-6.2.11.jar:6.2.11]
at reactor.core.publisher.FluxMap$MapSubscriber.request(FluxMap.java:164) ~[reactor-core-3.7.11.jar:3.7.11]
at reactor.core.publisher.FluxConcatMap$ConcatMapImmediate.onSubscribe(FluxConcatMap.java:236) ~[reactor-core-3.7.11.jar:3.7.11]
at reactor.core.publisher.FluxMap$MapSubscriber.onSubscribe(FluxMap.java:92) ~[reactor-core-3.7.11.jar:3.7.11]
at org.springframework.http.server.reactive.ChannelSendOperator$WriteBarrier.subscribe(ChannelSendOperator.java:363) ~[spring-web-6.2.11.jar:6.2.11]
at reactor.core.publisher.FluxSource.subscribe(FluxSource.java:71) ~[reactor-core-3.7.11.jar:3.7.11]
at reactor.core.publisher.Flux.subscribe(Flux.java:8891) ~[reactor-core-3.7.11.jar:3.7.11]
at reactor.netty.channel.MonoSendMany.subscribe(MonoSendMany.java:102) ~[reactor-netty-core-1.2.10.jar:1.2.10]
at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:241) ~[reactor-core-3.7.11.jar:3.7.11]
at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.onComplete(MonoIgnoreThen.java:204) ~[reactor-core-3.7.11.jar:3.7.11]
at reactor.netty.FutureMono$FutureSubscription.operationComplete(FutureMono.java:196) ~[reactor-netty-core-1.2.10.jar:1.2.10]
at io.netty.util.concurrent.DefaultPromise.notifyListener0(DefaultPromise.java:603) ~[netty-common-4.1.127.Final.jar:4.1.127.Final]
at io.netty.util.concurrent.DefaultPromise.notifyListenersNow(DefaultPromise.java:570) ~[netty-common-4.1.127.Final.jar:4.1.127.Final]
at io.netty.util.concurrent.DefaultPromise.notifyListeners(DefaultPromise.java:505) ~[netty-common-4.1.127.Final.jar:4.1.127.Final]
at io.netty.util.concurrent.DefaultPromise.setValue0(DefaultPromise.java:649) ~[netty-common-4.1.127.Final.jar:4.1.127.Final]
at io.netty.util.concurrent.DefaultPromise.setSuccess0(DefaultPromise.java:638) ~[netty-common-4.1.127.Final.jar:4.1.127.Final]
at io.netty.util.concurrent.DefaultPromise.trySuccess(DefaultPromise.java:118) ~[netty-common-4.1.127.Final.jar:4.1.127.Final]
at io.netty.util.internal.PromiseNotificationUtil.trySuccess(PromiseNotificationUtil.java:48) ~[netty-common-4.1.127.Final.jar:4.1.127.Final]
at io.netty.channel.ChannelOutboundBuffer.safeSuccess(ChannelOutboundBuffer.java:748) ~[netty-transport-4.1.127.Final.jar:4.1.127.Final]
at io.netty.channel.ChannelOutboundBuffer.remove(ChannelOutboundBuffer.java:303) ~[netty-transport-4.1.127.Final.jar:4.1.127.Final]
at io.netty.channel.ChannelOutboundBuffer.removeBytes(ChannelOutboundBuffer.java:383) ~[netty-transport-4.1.127.Final.jar:4.1.127.Final]
at io.netty.channel.epoll.AbstractEpollChannel.doWriteBytes(AbstractEpollChannel.java:364) ~[netty-transport-classes-epoll-4.1.127.Final.jar:4.1.127.Final]
at io.netty.channel.epoll.AbstractEpollStreamChannel.writeBytes(AbstractEpollStreamChannel.java:262) ~[netty-transport-classes-epoll-4.1.127.Final.jar:4.1.127.Final]
at io.netty.channel.epoll.AbstractEpollStreamChannel.doWriteSingle(AbstractEpollStreamChannel.java:473) ~[netty-transport-classes-epoll-4.1.127.Final.jar:4.1.127.Final]
at io.netty.channel.epoll.AbstractEpollStreamChannel.doWrite(AbstractEpollStreamChannel.java:431) ~[netty-transport-classes-epoll-4.1.127.Final.jar:4.1.127.Final]
at io.netty.channel.AbstractChannel$AbstractUnsafe.flush0(AbstractChannel.java:929) ~[netty-transport-4.1.127.Final.jar:4.1.127.Final]
at io.netty.channel.epoll.AbstractEpollChannel$AbstractEpollUnsafe.flush0(AbstractEpollChannel.java:557) ~[netty-transport-classes-epoll-4.1.127.Final.jar:4.1.127.Final]
at io.netty.channel.AbstractChannel$AbstractUnsafe.flush(AbstractChannel.java:893) ~[netty-transport-4.1.127.Final.jar:4.1.127.Final]
at io.netty.channel.DefaultChannelPipeline$HeadContext.flush(DefaultChannelPipeline.java:1319) ~[netty-transport-4.1.127.Final.jar:4.1.127.Final]
at io.netty.channel.AbstractChannelHandlerContext.invokeFlush0(AbstractChannelHandlerContext.java:935) ~[netty-transport-4.1.127.Final.jar:4.1.127.Final]
at io.netty.channel.AbstractChannelHandlerContext.invokeFlush(AbstractChannelHandlerContext.java:921) ~[netty-transport-4.1.127.Final.jar:4.1.127.Final]
at io.netty.channel.AbstractChannelHandlerContext.flush(AbstractChannelHandlerContext.java:907) ~[netty-transport-4.1.127.Final.jar:4.1.127.Final]
at io.netty.channel.CombinedChannelDuplexHandler$DelegatingChannelHandlerContext.flush(CombinedChannelDuplexHandler.java:531) ~[netty-transport-4.1.127.Final.jar:4.1.127.Final]
at io.netty.channel.ChannelOutboundHandlerAdapter.flush(ChannelOutboundHandlerAdapter.java:125) ~[netty-transport-4.1.127.Final.jar:4.1.127.Final]
at io.netty.channel.CombinedChannelDuplexHandler.flush(CombinedChannelDuplexHandler.java:356) ~[netty-transport-4.1.127.Final.jar:4.1.127.Final]
at io.netty.channel.AbstractChannelHandlerContext.invokeFlush0(AbstractChannelHandlerContext.java:937) ~[netty-transport-4.1.127.Final.jar:4.1.127.Final]
at io.netty.channel.AbstractChannelHandlerContext.invokeFlush(AbstractChannelHandlerContext.java:921) ~[netty-transport-4.1.127.Final.jar:4.1.127.Final]
at io.netty.channel.AbstractChannelHandlerContext.flush(AbstractChannelHandlerContext.java:907) ~[netty-transport-4.1.127.Final.jar:4.1.127.Final]
at reactor.netty.http.server.HttpTrafficHandler.flush(HttpTrafficHandler.java:352) ~[reactor-netty-http-1.2.10.jar:1.2.10]
at io.netty.channel.AbstractChannelHandlerContext.invokeFlush0(AbstractChannelHandlerContext.java:937) ~[netty-transport-4.1.127.Final.jar:4.1.127.Final]
at io.netty.channel.AbstractChannelHandlerContext.invokeFlush(AbstractChannelHandlerContext.java:921) ~[netty-transport-4.1.127.Final.jar:4.1.127.Final]
at io.netty.channel.AbstractChannelHandlerContext.flush(AbstractChannelHandlerContext.java:907) ~[netty-transport-4.1.127.Final.jar:4.1.127.Final]
at io.netty.channel.ChannelDuplexHandler.flush(ChannelDuplexHandler.java:127) ~[netty-transport-4.1.127.Final.jar:4.1.127.Final]
at io.netty.channel.AbstractChannelHandlerContext.invokeFlush0(AbstractChannelHandlerContext.java:937) ~[netty-transport-4.1.127.Final.jar:4.1.127.Final]
at io.netty.channel.AbstractChannelHandlerContext.invokeWriteAndFlush(AbstractChannelHandlerContext.java:957) ~[netty-transport-4.1.127.Final.jar:4.1.127.Final]
at io.netty.channel.AbstractChannelHandlerContext$WriteTask.run(AbstractChannelHandlerContext.java:1263) ~[netty-transport-4.1.127.Final.jar:4.1.127.Final]
at io.netty.util.concurrent.AbstractEventExecutor.runTask(AbstractEventExecutor.java:173) ~[netty-common-4.1.127.Final.jar:4.1.127.Final]
at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:166) ~[netty-common-4.1.127.Final.jar:4.1.127.Final]
at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:472) ~[netty-common-4.1.127.Final.jar:4.1.127.Final]
at io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:405) ~[netty-transport-classes-epoll-4.1.127.Final.jar:4.1.127.Final]
at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:998) ~[netty-common-4.1.127.Final.jar:4.1.127.Final]
at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) ~[netty-common-4.1.127.Final.jar:4.1.127.Final]
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) ~[netty-common-4.1.127.Final.jar:4.1.127.Final]
at java.base/java.lang.Thread.run(Unknown Source) ~[na:na]
Caused by: reactor.core.Exceptions$StaticRejectedExecutionException: Scheduler unavailable
附加信息


Metadata
Metadata
Assignees
Labels
No labels