spring-cloud / spring-cloud-gateway

An API Gateway built on Spring Framework and Spring Boot providing routing and more.
http://cloud.spring.io
Apache License 2.0
4.52k stars 3.32k forks source link

io.netty.handler.codec.EncoderException: io.netty.util.internal.OutOfDirectMemoryError: failed to allocate 16777216 byte(s) of direct memory #2292

Closed xialihehe123 closed 3 years ago

xialihehe123 commented 3 years ago

Hi, I want to report a problem.

springcloud version: Hoxton.SR8 spring-boot version: 2.3.3.RELEASE spring gateway verson: 2.2.5 io.netty version: 4.1.51.Final reactor-netty version: 0.9.11.RELEASE

Configuration:

spring: cloud: gateway: discovery: locator: enabled: true routes:

Exception: io.netty.handler.codec.EncoderException: io.netty.util.internal.OutOfDirectMemoryError: failed to allocate 16777216 byte(s) of direct memory (used: 117440519, max: 134217728) at io.netty.handler.codec.MessageToMessageEncoder.write(MessageToMessageEncoder.java:104) ~[netty-codec-4.1.51.Final.jar!/:4.1.51.Final] Suppressed: reactor.core.publisher.FluxOnAssembly$OnAssemblyException: Error has been observed at the following site(s): | checkpoint ⇢ org.springframework.cloud.gateway.filter.WeightCalculatorWebFilter [DefaultWebFilterChain] | checkpoint ⇢ HTTP POST "/internethospital-admin-service/order/queryPageList" [ExceptionHandlingWebHandler] Stack trace: at io.netty.handler.codec.MessageToMessageEncoder.write(MessageToMessageEncoder.java:104) ~[netty-codec-4.1.51.Final.jar!/:4.1.51.Final] at io.netty.channel.CombinedChannelDuplexHandler.write(CombinedChannelDuplexHandler.java:346) ~[netty-transport-4.1.51.Final.jar!/:4.1.51.Final] at io.netty.channel.AbstractChannelHandlerContext.invokeWrite0(AbstractChannelHandlerContext.java:717) ~[netty-transport-4.1.51.Final.jar!/:4.1.51.Final] at io.netty.channel.AbstractChannelHandlerContext.invokeWriteAndFlush(AbstractChannelHandlerContext.java:764) ~[netty-transport-4.1.51.Final.jar!/:4.1.51.Final] at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:790) ~[netty-transport-4.1.51.Final.jar!/:4.1.51.Final] at io.netty.channel.AbstractChannelHandlerContext.writeAndFlush(AbstractChannelHandlerContext.java:758) ~[netty-transport-4.1.51.Final.jar!/:4.1.51.Final] at io.netty.channel.AbstractChannelHandlerContext.writeAndFlush(AbstractChannelHandlerContext.java:808) ~[netty-transport-4.1.51.Final.jar!/:4.1.51.Final] at io.netty.channel.DefaultChannelPipeline.writeAndFlush(DefaultChannelPipeline.java:1025) ~[netty-transport-4.1.51.Final.jar!/:4.1.51.Final] at io.netty.channel.AbstractChannel.writeAndFlush(AbstractChannel.java:294) ~[netty-transport-4.1.51.Final.jar!/:4.1.51.Final] at reactor.netty.http.HttpOperations.lambda$then$2(HttpOperations.java:200) ~[reactor-netty-0.9.11.RELEASE.jar!/:0.9.11.RELEASE] at reactor.netty.FutureMono$DeferredFutureMono.subscribe(FutureMono.java:114) [reactor-netty-0.9.11.RELEASE.jar!/:0.9.11.RELEASE] at reactor.core.publisher.Mono.subscribe(Mono.java:4213) [reactor-core-3.3.9.RELEASE.jar!/:3.3.9.RELEASE] at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.drain(MonoIgnoreThen.java:172) [reactor-core-3.3.9.RELEASE.jar!/:3.3.9.RELEASE] at reactor.core.publisher.MonoIgnoreThen.subscribe(MonoIgnoreThen.java:56) [reactor-core-3.3.9.RELEASE.jar!/:3.3.9.RELEASE] at reactor.core.publisher.Mono.subscribe(Mono.java:4213) [reactor-core-3.3.9.RELEASE.jar!/:3.3.9.RELEASE] at reactor.netty.NettyOutbound.subscribe(NettyOutbound.java:331) [reactor-netty-0.9.11.RELEASE.jar!/:0.9.11.RELEASE] at reactor.core.publisher.MonoSource.subscribe(MonoSource.java:65) [reactor-core-3.3.9.RELEASE.jar!/:3.3.9.RELEASE] at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:52) [reactor-core-3.3.9.RELEASE.jar!/:3.3.9.RELEASE] at reactor.netty.http.client.HttpClientConnect$HttpIOHandlerObserver.onStateChange(HttpClientConnect.java:442) [reactor-netty-0.9.11.RELEASE.jar!/:0.9.11.RELEASE] at reactor.netty.ReactorNetty$CompositeConnectionObserver.onStateChange(ReactorNetty.java:518) [reactor-netty-0.9.11.RELEASE.jar!/:0.9.11.RELEASE] at reactor.netty.resources.PooledConnectionProvider$DisposableAcquire.onStateChange(PooledConnectionProvider.java:561) [reactor-netty-0.9.11.RELEASE.jar!/:0.9.11.RELEASE] at reactor.netty.resources.PooledConnectionProvider$PooledConnection.onStateChange(PooledConnectionProvider.java:448) [reactor-netty-0.9.11.RELEASE.jar!/:0.9.11.RELEASE] at reactor.netty.channel.ChannelOperationsHandler.channelActive(ChannelOperationsHandler.java:65) [reactor-netty-0.9.11.RELEASE.jar!/:0.9.11.RELEASE] at io.netty.channel.AbstractChannelHandlerContext.invokeChannelActive(AbstractChannelHandlerContext.java:230) [netty-transport-4.1.51.Final.jar!/:4.1.51.Final] at io.netty.channel.AbstractChannelHandlerContext.invokeChannelActive(AbstractChannelHandlerContext.java:216) [netty-transport-4.1.51.Final.jar!/:4.1.51.Final] at io.netty.channel.AbstractChannelHandlerContext.fireChannelActive(AbstractChannelHandlerContext.java:209) [netty-transport-4.1.51.Final.jar!/:4.1.51.Final] at io.netty.channel.CombinedChannelDuplexHandler$DelegatingChannelHandlerContext.fireChannelActive(CombinedChannelDuplexHandler.java:412) [netty-transport-4.1.51.Final.jar!/:4.1.51.Final] at io.netty.channel.ChannelInboundHandlerAdapter.channelActive(ChannelInboundHandlerAdapter.java:69) [netty-transport-4.1.51.Final.jar!/:4.1.51.Final] at io.netty.channel.CombinedChannelDuplexHandler.channelActive(CombinedChannelDuplexHandler.java:211) [netty-transport-4.1.51.Final.jar!/:4.1.51.Final] at io.netty.channel.AbstractChannelHandlerContext.invokeChannelActive(AbstractChannelHandlerContext.java:230) [netty-transport-4.1.51.Final.jar!/:4.1.51.Final] at io.netty.channel.AbstractChannelHandlerContext.invokeChannelActive(AbstractChannelHandlerContext.java:216) [netty-transport-4.1.51.Final.jar!/:4.1.51.Final] at io.netty.channel.AbstractChannelHandlerContext.fireChannelActive(AbstractChannelHandlerContext.java:209) [netty-transport-4.1.51.Final.jar!/:4.1.51.Final] at io.netty.channel.DefaultChannelPipeline$HeadContext.channelActive(DefaultChannelPipeline.java:1398) [netty-transport-4.1.51.Final.jar!/:4.1.51.Final] at io.netty.channel.AbstractChannelHandlerContext.invokeChannelActive(AbstractChannelHandlerContext.java:230) [netty-transport-4.1.51.Final.jar!/:4.1.51.Final] at io.netty.channel.AbstractChannelHandlerContext.invokeChannelActive(AbstractChannelHandlerContext.java:216) [netty-transport-4.1.51.Final.jar!/:4.1.51.Final] at io.netty.channel.DefaultChannelPipeline.fireChannelActive(DefaultChannelPipeline.java:895) [netty-transport-4.1.51.Final.jar!/:4.1.51.Final] at io.netty.channel.epoll.AbstractEpollChannel$AbstractEpollUnsafe.fulfillConnectPromise(AbstractEpollChannel.java:620) [netty-transport-native-epoll-4.1.51.Final-linux-x86_64.jar!/:4.1.51.Final] at io.netty.channel.epoll.AbstractEpollChannel$AbstractEpollUnsafe.finishConnect(AbstractEpollChannel.java:653) [netty-transport-native-epoll-4.1.51.Final-linux-x86_64.jar!/:4.1.51.Final] at io.netty.channel.epoll.AbstractEpollChannel$AbstractEpollUnsafe.epollOutReady(AbstractEpollChannel.java:529) [netty-transport-native-epoll-4.1.51.Final-linux-x86_64.jar!/:4.1.51.Final] at io.netty.channel.epoll.EpollEventLoop.processReady(EpollEventLoop.java:465) [netty-transport-native-epoll-4.1.51.Final-linux-x86_64.jar!/:4.1.51.Final] at io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:378) [netty-transport-native-epoll-4.1.51.Final-linux-x86_64.jar!/:4.1.51.Final] at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:989) [netty-common-4.1.51.Final.jar!/:4.1.51.Final] at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) [netty-common-4.1.51.Final.jar!/:4.1.51.Final] at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) [netty-common-4.1.51.Final.jar!/:4.1.51.Final] at java.lang.Thread.run(Thread.java:748) [?:1.8.0_272] Caused by: io.netty.util.internal.OutOfDirectMemoryError: failed to allocate 16777216 byte(s) of direct memory (used: 117440519, max: 134217728) at io.netty.util.internal.PlatformDependent.incrementMemoryCounter(PlatformDependent.java:754) ~[netty-common-4.1.51.Final.jar!/:4.1.51.Final] at io.netty.util.internal.PlatformDependent.allocateDirectNoCleaner(PlatformDependent.java:709) ~[netty-common-4.1.51.Final.jar!/:4.1.51.Final] at io.netty.buffer.PoolArena$DirectArena.allocateDirect(PoolArena.java:755) ~[netty-buffer-4.1.51.Final.jar!/:4.1.51.Final] at io.netty.buffer.PoolArena$DirectArena.newChunk(PoolArena.java:731) ~[netty-buffer-4.1.51.Final.jar!/:4.1.51.Final] at io.netty.buffer.PoolArena.allocateNormal(PoolArena.java:247) ~[netty-buffer-4.1.51.Final.jar!/:4.1.51.Final] at io.netty.buffer.PoolArena.allocate(PoolArena.java:215) ~[netty-buffer-4.1.51.Final.jar!/:4.1.51.Final] at io.netty.buffer.PoolArena.allocate(PoolArena.java:147) ~[netty-buffer-4.1.51.Final.jar!/:4.1.51.Final] at io.netty.buffer.PooledByteBufAllocator.newDirectBuffer(PooledByteBufAllocator.java:356) ~[netty-buffer-4.1.51.Final.jar!/:4.1.51.Final] at io.netty.buffer.AbstractByteBufAllocator.directBuffer(AbstractByteBufAllocator.java:187) ~[netty-buffer-4.1.51.Final.jar!/:4.1.51.Final] at io.netty.buffer.AbstractByteBufAllocator.directBuffer(AbstractByteBufAllocator.java:178) ~[netty-buffer-4.1.51.Final.jar!/:4.1.51.Final] at io.netty.buffer.AbstractByteBufAllocator.buffer(AbstractByteBufAllocator.java:115) ~[netty-buffer-4.1.51.Final.jar!/:4.1.51.Final] at io.netty.handler.codec.http.HttpObjectEncoder.encode(HttpObjectEncoder.java:93) ~[netty-codec-http-4.1.51.Final.jar!/:4.1.51.Final] at io.netty.handler.codec.http.HttpClientCodec$Encoder.encode(HttpClientCodec.java:189) ~[netty-codec-http-4.1.51.Final.jar!/:4.1.51.Final] at io.netty.handler.codec.MessageToMessageEncoder.write(MessageToMessageEncoder.java:89) ~[netty-codec-4.1.51.Final.jar!/:4.1.51.Final] at io.netty.channel.CombinedChannelDuplexHandler.write(CombinedChannelDuplexHandler.java:346) ~[netty-transport-4.1.51.Final.jar!/:4.1.51.Final] at io.netty.channel.AbstractChannelHandlerContext.invokeWrite0(AbstractChannelHandlerContext.java:717) ~[netty-transport-4.1.51.Final.jar!/:4.1.51.Final] at io.netty.channel.AbstractChannelHandlerContext.invokeWriteAndFlush(AbstractChannelHandlerContext.java:764) ~[netty-transport-4.1.51.Final.jar!/:4.1.51.Final] at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:790) ~[netty-transport-4.1.51.Final.jar!/:4.1.51.Final] at io.netty.channel.AbstractChannelHandlerContext.writeAndFlush(AbstractChannelHandlerContext.java:758) ~[netty-transport-4.1.51.Final.jar!/:4.1.51.Final] at io.netty.channel.AbstractChannelHandlerContext.writeAndFlush(AbstractChannelHandlerContext.java:808) ~[netty-transport-4.1.51.Final.jar!/:4.1.51.Final] at io.netty.channel.DefaultChannelPipeline.writeAndFlush(DefaultChannelPipeline.java:1025) ~[netty-transport-4.1.51.Final.jar!/:4.1.51.Final] at io.netty.channel.AbstractChannel.writeAndFlush(AbstractChannel.java:294) ~[netty-transport-4.1.51.Final.jar!/:4.1.51.Final] at reactor.netty.http.HttpOperations.lambda$then$2(HttpOperations.java:200) ~[reactor-netty-0.9.11.RELEASE.jar!/:0.9.11.RELEASE] at reactor.netty.FutureMono$DeferredFutureMono.subscribe(FutureMono.java:114) [reactor-netty-0.9.11.RELEASE.jar!/:0.9.11.RELEASE] at reactor.core.publisher.Mono.subscribe(Mono.java:4213) [reactor-core-3.3.9.RELEASE.jar!/:3.3.9.RELEASE] at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.drain(MonoIgnoreThen.java:172) [reactor-core-3.3.9.RELEASE.jar!/:3.3.9.RELEASE] at reactor.core.publisher.MonoIgnoreThen.subscribe(MonoIgnoreThen.java:56) [reactor-core-3.3.9.RELEASE.jar!/:3.3.9.RELEASE] at reactor.core.publisher.Mono.subscribe(Mono.java:4213) [reactor-core-3.3.9.RELEASE.jar!/:3.3.9.RELEASE] at reactor.netty.NettyOutbound.subscribe(NettyOutbound.java:331) [reactor-netty-0.9.11.RELEASE.jar!/:0.9.11.RELEASE] at reactor.core.publisher.MonoSource.subscribe(MonoSource.java:65) [reactor-core-3.3.9.RELEASE.jar!/:3.3.9.RELEASE] at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:52) [reactor-core-3.3.9.RELEASE.jar!/:3.3.9.RELEASE] at reactor.netty.http.client.HttpClientConnect$HttpIOHandlerObserver.onStateChange(HttpClientConnect.java:442) [reactor-netty-0.9.11.RELEASE.jar!/:0.9.11.RELEASE] at reactor.netty.ReactorNetty$CompositeConnectionObserver.onStateChange(ReactorNetty.java:518) [reactor-netty-0.9.11.RELEASE.jar!/:0.9.11.RELEASE] at reactor.netty.resources.PooledConnectionProvider$DisposableAcquire.onStateChange(PooledConnectionProvider.java:561) [reactor-netty-0.9.11.RELEASE.jar!/:0.9.11.RELEASE] at reactor.netty.resources.PooledConnectionProvider$PooledConnection.onStateChange(PooledConnectionProvider.java:448) [reactor-netty-0.9.11.RELEASE.jar!/:0.9.11.RELEASE] at reactor.netty.channel.ChannelOperationsHandler.channelActive(ChannelOperationsHandler.java:65) [reactor-netty-0.9.11.RELEASE.jar!/:0.9.11.RELEASE] at io.netty.channel.AbstractChannelHandlerContext.invokeChannelActive(AbstractChannelHandlerContext.java:230) [netty-transport-4.1.51.Final.jar!/:4.1.51.Final] at io.netty.channel.AbstractChannelHandlerContext.invokeChannelActive(AbstractChannelHandlerContext.java:216) [netty-transport-4.1.51.Final.jar!/:4.1.51.Final] at io.netty.channel.AbstractChannelHandlerContext.fireChannelActive(AbstractChannelHandlerContext.java:209) [netty-transport-4.1.51.Final.jar!/:4.1.51.Final] at io.netty.channel.CombinedChannelDuplexHandler$DelegatingChannelHandlerContext.fireChannelActive(CombinedChannelDuplexHandler.java:412) [netty-transport-4.1.51.Final.jar!/:4.1.51.Final] at io.netty.channel.ChannelInboundHandlerAdapter.channelActive(ChannelInboundHandlerAdapter.java:69) [netty-transport-4.1.51.Final.jar!/:4.1.51.Final] at io.netty.channel.CombinedChannelDuplexHandler.channelActive(CombinedChannelDuplexHandler.java:211) [netty-transport-4.1.51.Final.jar!/:4.1.51.Final] at io.netty.channel.AbstractChannelHandlerContext.invokeChannelActive(AbstractChannelHandlerContext.java:230) [netty-transport-4.1.51.Final.jar!/:4.1.51.Final] at io.netty.channel.AbstractChannelHandlerContext.invokeChannelActive(AbstractChannelHandlerContext.java:216) [netty-transport-4.1.51.Final.jar!/:4.1.51.Final] at io.netty.channel.AbstractChannelHandlerContext.fireChannelActive(AbstractChannelHandlerContext.java:209) [netty-transport-4.1.51.Final.jar!/:4.1.51.Final] at io.netty.channel.DefaultChannelPipeline$HeadContext.channelActive(DefaultChannelPipeline.java:1398) [netty-transport-4.1.51.Final.jar!/:4.1.51.Final] at io.netty.channel.AbstractChannelHandlerContext.invokeChannelActive(AbstractChannelHandlerContext.java:230) [netty-transport-4.1.51.Final.jar!/:4.1.51.Final] at io.netty.channel.AbstractChannelHandlerContext.invokeChannelActive(AbstractChannelHandlerContext.java:216) [netty-transport-4.1.51.Final.jar!/:4.1.51.Final] at io.netty.channel.DefaultChannelPipeline.fireChannelActive(DefaultChannelPipeline.java:895) [netty-transport-4.1.51.Final.jar!/:4.1.51.Final] at io.netty.channel.epoll.AbstractEpollChannel$AbstractEpollUnsafe.fulfillConnectPromise(AbstractEpollChannel.java:620) [netty-transport-native-epoll-4.1.51.Final-linux-x86_64.jar!/:4.1.51.Final] at io.netty.channel.epoll.AbstractEpollChannel$AbstractEpollUnsafe.finishConnect(AbstractEpollChannel.java:653) [netty-transport-native-epoll-4.1.51.Final-linux-x86_64.jar!/:4.1.51.Final] at io.netty.channel.epoll.AbstractEpollChannel$AbstractEpollUnsafe.epollOutReady(AbstractEpollChannel.java:529) [netty-transport-native-epoll-4.1.51.Final-linux-x86_64.jar!/:4.1.51.Final] at io.netty.channel.epoll.EpollEventLoop.processReady(EpollEventLoop.java:465) [netty-transport-native-epoll-4.1.51.Final-linux-x86_64.jar!/:4.1.51.Final] at io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:378) [netty-transport-native-epoll-4.1.51.Final-linux-x86_64.jar!/:4.1.51.Final] at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:989) [netty-common-4.1.51.Final.jar!/:4.1.51.Final] at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) [netty-common-4.1.51.Final.jar!/:4.1.51.Final] at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) [netty-common-4.1.51.Final.jar!/:4.1.51.Final] at java.lang.Thread.run(Thread.java:748) [?:1.8.0_272]

xialihehe123 commented 3 years ago

This problem has been solved. Just upgrade the cloud version to hoxton.sr11. The historical version is Hoxton. SR8

manondidi commented 2 years ago

oh no ,my gateway is 2.2.9 SR12 there is still this problem