apache / apache/servicecomb-java-chassis
项目启动后过一段时间cpu升高
- Ngôn ngữ chính
- Java
- Star
- 1.9k
- Fork
- 814
- Merge trung bình
- 8 ngày 23 giờ
- Pull request đã merge (30 ngày)
- 1
Mô tả
`{"instant":{"epochSecond":1713397746,"nanoOfSecond":767000000},"thread":"vert.x-eventloop-thread-22","level":"ERROR","loggerName":"io.vertx.core.impl.ContextImpl","message":"Unhandled exception","thrown":{"commonElementCount":0,"name":"java.lang.NullPointerException","extendedStackTrace":"java.lang.NullPointerException: null\n\tat io.netty.handler.codec.http.multipart.HttpPostStandardRequestDecoder.setFinalBuffer(HttpPostStandardRequestDecoder.java:639) ~[netty-codec-http-4.1.55.Final.jar:4.1.55.Final]\n\tat io.netty.handler.codec.http.multipart.HttpPostStandardRequestDecoder.parseBodyAttributes(HttpPostStandardRequestDecoder.java:593) ~[netty-codec-http-4.1.55.Final.jar:4.1.55.Final]\n\tat io.netty.handler.codec.http.multipart.HttpPostStandardRequestDecoder.parseBody(HttpPostStandardRequestDecoder.java:378) ~[netty-codec-http-4.1.55.Final.jar:4.1.55.Final]\n\tat io.netty.handler.codec.http.multipart.HttpPostStandardRequestDecoder.offer(HttpPostStandardRequestDecoder.java:310) ~[netty-codec-http-4.1.55.Final.jar:4.1.55.Final]\n\tat io.netty.handler.codec.http.multipart.HttpPostStandardRequestDecoder.offer(HttpPostStandardRequestDecoder.java:49) ~[netty-codec-http-4.1.55.Final.jar:4.1.55.Final]\n\tat io.netty.handler.codec.http.multipart.HttpPostRequestDecoder.offer(HttpPostRequestDecoder.java:223) ~[netty-codec-http-4.1.55.Final.jar:4.1.55.Final]\n\tat io.vertx.core.http.impl.HttpServerRequestImpl.onData(HttpServerRequestImpl.java:490) ~[vertx-core-3.9.11.jar:3.9.11]\n\tat io.vertx.core.http.impl.HttpServerRequestImpl.handleContent(HttpServerRequestImpl.java:138) ~[vertx-core-3.9.11.jar:3.9.11]\n\tat io.vertx.core.http.impl.Http1xServerConnection.handleContent(Http1xServerConnection.java:160) ~[vertx-core-3.9.11.jar:3.9.11]\n\tat io.vertx.core.http.impl.Http1xServerConnection.handleMessage(Http1xServerConnection.java:140) ~[vertx-core-3.9.11.jar:3.9.11]\n\tat io.vertx.core.impl.ContextImpl.executeTask(ContextImpl.java:366) [vertx-core-3.9.11.jar:3.9.11]\n\tat io.vertx.core.impl.EventLoopContext.execute(EventLoopContext.java:43) [vertx-core-3.9.11.jar:3.9.11]\n\tat io.vertx.core.impl.ContextImpl.executeFromIO(ContextImpl.java:229) [vertx-core-3.9.11.jar:3.9.11]\n\tat io.vertx.core.net.impl.VertxHandler.channelRead(VertxHandler.java:164) [vertx-core-3.9.11.jar:3.9.11]\n\tat io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) [netty-transport-4.1.55.Final.jar:4.1.55.Final]\n\tat io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) [netty-transport-4.1.55.Final.jar:4.1.55.Final]\n\tat io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) [netty-transport-4.1.55.Final.jar:4.1.55.Final]\n\tat io.netty.channel.ChannelInboundHandlerAdapter.channelRead(ChannelInboundHandlerAdapter.java:93) [netty-transport-4.1.55.Final.jar:4.1.55.Final]\n\tat io.netty.handler.codec.http.websocketx.extensions.WebSocketServerExtensionHandler.channelRead(WebSocketServerExtensionHandler.java:102) [netty-codec-http-4.1.55.Final.jar:4.1.55.Final]\n\tat io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) [netty-transport-4.1.55.Final.jar:4.1.55.Final]\n\tat io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) [netty-transport-4.1.55.Final.jar:4.1.55.Final]\n\tat io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) [netty-transport-4.1.55.Final.jar:4.1.55.Final]\n\tat io.netty.handler.timeout.IdleStateHandler.channelRead(IdleStateHandler.java:286) [netty-handler-4.1.55.Final.jar:4.1.55.Final]\n\tat io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) [netty-transport-4.1.55.Final.jar:4.1.55.Final]\n\tat io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) [netty-transport-4.1.55.Final.jar:4.1.55.Final]\n\tat io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) [netty-transport-4.1.55.Final.jar:4.1.55.Final]\n\tat io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:324) [netty-codec-4.1.55.Final.jar:4.1.55.Final]\n\tat io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:296) [netty-codec-4.1.55.Final.jar:4.1.55.Final]\n\tat io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) [netty-transport-4.1.55.Final.jar:4.1.55.Final]\n\tat io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) [netty-transport-4.1.55.Final.jar:4.1.55.Final]\n\tat io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) [netty-transport-4.1.55.Final.jar:4.1.55.Final]\n\tat io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410) [netty-transport-4.1.55.Final.jar:4.1.55.Final]\n\tat io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) [netty-transport-4.1.55.Final.jar:4.1.55.Final]\n\tat io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) [netty-transport-4.1.55.Final.jar:4.1.55.Final]\n\tat io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919) [netty-transport-4.1.55.Final.jar:4.1.55.Final]\n\tat io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:166) [netty-transport-4.1.55.Final.jar:4.1.55.Final]\n\tat io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:719) [netty-transport-4.1.55.Final.jar:4.1.55.Final]\n\tat io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:655) [netty-transport-4.1.55.Final.jar:4.1.55.Final]\n\tat io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:581) [netty-transport-4.1.55.Final.jar:4.1.55.Final]\n\tat io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:493) [netty-transport-4.1.55.Final.jar:4.1.55.Final]\n\tat io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:989) [netty-common-4.1.55.Final.jar:4.1.55.Final]\n\tat io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) [netty-common-4.1.55.Final.jar:4.1.55.Final]\n\tat io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) [netty-common-4.1.55.Final.jar:4.1.55.Final]\n\tat java.lang.Thread.run(Thread.java:748) [?:1.8.0_181]\n"},"endOfBatch":false,"loggerFqcn":"io.vertx.core.logging.Logger","skyWalkingDynamicField":{"traceId":"N/A"},"threadId":148,"threadPriority":5,"source":{"class":"io.vertx.core.impl.ContextImpl","method":"reportException","file":"ContextImpl.java","line":413},"traceId":"N/A","host":"hzg-sjcj1","@timestamp":"2024-04-18T07:49:06.767+08:00"}
`
可以帮忙看下这个问题吗,项目用的版本是 1.3.11 ,项目重启之后过一段时间就会报这种错 然后一直打印 下面这个这个异常,服务器的cpu也变高了。
`{"instant":{"epochSecond":1713397900,"nanoOfSecond":544000000},"thread":"vertx-blocked-thread-checker","level":"WARN","loggerName":"io.vertx.core.impl.BlockedThreadChecker","message":"Thread Thread[vert.x-eventloop-thread-22,5,main]=Thread[vert.x-eventloop-thread-22,5,main] has been blocked for 2677 ms, time limit is 2000 ms","endOfBatch":false,"loggerFqcn":"io.vertx.core.logging.Logger","skyWalkingDynamicField":{"traceId":"N/A"},"threadId":117,"threadPriority":5,"source":{"class":"io.vertx.core.impl.BlockedThreadChecker$1","method":"run","file":"BlockedThreadChecker.java","line":59},"traceId":"N/A","host":"hzg-sjcj1","@timestamp":"2024-04-18T07:51:40.544+08:00"}
`
Hướng dẫn đóng góp
Chưa lập chỉ mục được hướng dẫn đóng góp cho kho mã nguồn này
Hướng nghiên cứu
Bắt đầu với stack trace được báo cáo trong io.netty.handler.codec.http.multipart.HttpPostStandardRequestDecoder.setFinalBuffer và đường đi của request HTTP Vert.x xung quanh đó, sử dụng Netty 4.1.55.Final, Vert.x 3.9.11 và phiên bản dự án 1.3.11 làm ngữ cảnh. Tái hiện exception lặp lại sau khi khởi động và xác minh rằng bản sửa lỗi ngăn các cảnh báo event-loop bị chặn và mức CPU tăng lên, kèm theo một regression test nếu có thể cô lập hành vi này.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Đánh giá
- Công nghệ
- java
- Lĩnh vực
- backend
- Loại issue
- Lỗi
- Độ khó
- 4/5
- Thời gian dự kiến
- 3-5 ngày
- Mức độ hoạt động
- Đình trệ
- Độ rõ ràng
- Cần làm rõ
- Mức phù hợp với người mới
- 28/100