我在 OSx 上使用 Play 2.5.0-M1。
它工作得很好,但在负载测试时会引发错误:
play.core.server.NettyServer - Exception caught in Netty
java.lang.NullPointerException: null
at io.netty.channel.nio.AbstractNioChannel.doBeginRead(AbstractNioChannel.java:366) ~[netty-transport-4.0.33.Final.jar:4.0.33.Final]
at io.netty.channel.AbstractChannel$AbstractUnsafe.beginRead(AbstractChannel.java:683) ~[netty-transport-4.0.33.Final.jar:4.0.33.Final]
at io.netty.channel.DefaultChannelPipeline$HeadContext.read(DefaultChannelPipeline.java:1117) ~[netty-transport-4.0.33.Final.jar:4.0.33.Final]
at io.netty.channel.AbstractChannelHandlerContext.invokeRead(AbstractChannelHandlerContext.java:614) ~[netty-transport-4.0.33.Final.jar:4.0.33.Final]
at io.netty.channel.AbstractChannelHandlerContext.read(AbstractChannelHandlerContext.java:595) ~[netty-transport-4.0.33.Final.jar:4.0.33.Final]
at io.netty.channel.ChannelOutboundHandlerAdapter.read(ChannelOutboundHandlerAdapter.java:93) ~[netty-transport-4.0.33.Final.jar:4.0.33.Final]
at io.netty.channel.AbstractChannelHandlerContext.invokeRead(AbstractChannelHandlerContext.java:614) ~[netty-transport-4.0.33.Final.jar:4.0.33.Final]
at io.netty.channel.AbstractChannelHandlerContext.read(AbstractChannelHandlerContext.java:595) ~[netty-transport-4.0.33.Final.jar:4.0.33.Final]
at io.netty.channel.ChannelDuplexHandler.read(ChannelDuplexHandler.java:95) ~[netty-transport-4.0.33.Final.jar:4.0.33.Final]
at io.netty.channel.AbstractChannelHandlerContext.invokeRead(AbstractChannelHandlerContext.java:614) ~[netty-transport-4.0.33.Final.jar:4.0.33.Final]
at io.netty.channel.AbstractChannelHandlerContext.read(AbstractChannelHandlerContext.java:595) ~[netty-transport-4.0.33.Final.jar:4.0.33.Final]
at com.typesafe.netty.HandlerPublisher.requestDemand(HandlerPublisher.java:86) ~[netty-reactive-streams-1.0.0.jar:na]
at com.typesafe.netty.HandlerPublisher.receivedDemand(HandlerPublisher.java:263) ~[netty-reactive-streams-1.0.0.jar:na]
at com.typesafe.netty.HandlerPublisher.access$200(HandlerPublisher.java:41) ~[netty-reactive-streams-1.0.0.jar:na]
at com.typesafe.netty.HandlerPublisher$ChannelSubscription$1.run(HandlerPublisher.java:441) ~[netty-reactive-streams-1.0.0.jar:na]
at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:358) ~[netty-common-4.0.33.Final.jar:4.0.33.Final]
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:357) ~[netty-transport-4.0.33.Final.jar:4.0.33.Final]
at io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.java:112) ~[netty-common-4.0.33.Final.jar:4.0.33.Final]
at java.lang.Thread.run(Thread.java:745) ~[na:1.8.0_60]
这不是在 mac 上与 netty 的“50”同时连接的问题,因为即使有 10 个连接它也会抛出。负载测试是:
ab -n 500 -c 10 http://localhost:9000/
有人在以前版本的 play 中看到此错误吗?
你有什么建议为什么会抛出这个错误以及如何解决它?