WebFlux与 Netty:InvalidLineSeparatorException:回车符(CR)必须在换行符之前出现
WebFlux,localhost (http),Spring Boot 4。没有Docker Compose,也没有K8s。
虽说与此关系不大,但为了保险起见,我还是提一句:Swagger(springdoc-openapi-starter-webflux-ui:3.0.3),Kafka(有几个端点会发送消息,spring-kafka)
时不时地,我的日志会被这些警告污染。它总是来自 127.0.0.1(本机)。
2026-05-10T12:34:19.638+03:00 WARN 34088 --- [task-service] [tor-http-nio-10] r.n.http.server.HttpServerOperations : [47c1d912, L:/127.0.0.1:8080 - R:/127.0.0.1:56284] Decoding failed: FULL_REQUEST(decodeResult: failure(io.netty.handler.codec.http.InvalidLineSeparatorException: Line Feed must be preceded by Carriage Return when terminating HTTP start- and header field-lines), version: HTTP/1.0, content: UnpooledByteBufAllocator$InstrumentedUnpooledUnsafeHeapByteBuf(ridx: 0, widx: 0, cap: 0))
GET /bad-request HTTP/1.0
我还没能把问题定位到具体的某个请求或一系列操作。其实这些日志在看起来什么都没发生时也会出现(例如我没有通过Swagger发送请求)。
除此之外,应用运行正常,没有崩溃之类的问题。
最可能的原因是什么,应该怎么修复(当然不能把所有警告都禁用)?
解决方案
某个本机进程定期发送带有仅LF换行的格式错误的HTTP请求。Netty会在Spring看到请求之前就拒绝它。找到这个本地探针,让它发送正确的CRLF HTTP,或者用 cur 代替。
站内所有文章版权归属LeftHeroAI导航站,无授权禁止任何主体转载、抄袭、复制内容,亦不得私自架设镜像站点。一经侵权,本站将通过法律途径追责。