apache / apache/servicecomb-java-chassis

项目启动后过一段时间cpu升高

Đang mở
#4,302 2 bình luận 0 reaction 0 người được giao Xem trên GitHub
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

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.