-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/28779/#review64279
-----------------------------------------------------------


Hey Marcelo,

When I send an HTTP request to the port where RSC is listening the message 
below is printed. Thus it's doing a good job in that it's checking the max 
message size which is awesome, but I feel we need to:

1) Add a small header so that when junk data is sent to this port we can log a 
better exception than the one below. As I mentioned, we've had massive problems 
with this is in flume which also uses netty for communication.

2) ensure the income size is not negative.


2014-12-08 20:56:41,070 WARN  [RPC-Handler-7]: rpc.RpcDispatcher 
(RpcDispatcher.java:exceptionCaught(154)) - [HelloDispatcher] Caught exception 
in channel pipeline.
io.netty.handler.codec.DecoderException: java.lang.IllegalArgumentException: 
Message exceeds maximum allowed size (10485760 bytes).
        at 
io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:280)
        at 
io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:149)
        at 
io.netty.handler.codec.ByteToMessageCodec.channelRead(ByteToMessageCodec.java:108)
        at 
io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:333)
        at 
io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:319)
        at 
io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:787)
        at 
io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:130)
        at 
io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:511)
        at 
io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:468)
        at 
io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:382)
        at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:354)
        at 
io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.java:116)
        at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.IllegalArgumentException: Message exceeds maximum allowed 
size (10485760 bytes).
        at 
org.apache.hive.spark.client.rpc.KryoMessageCodec.checkSize(KryoMessageCodec.java:117)
        at 
org.apache.hive.spark.client.rpc.KryoMessageCodec.decode(KryoMessageCodec.java:77)
        at 
io.netty.handler.codec.ByteToMessageCodec$1.decode(ByteToMessageCodec.java:42)
        at 
io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:249)
        ... 12 more

- Brock Noland


On Dec. 8, 2014, 7:47 p.m., Marcelo Vanzin wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/28779/
> -----------------------------------------------------------
> 
> (Updated Dec. 8, 2014, 7:47 p.m.)
> 
> 
> Review request for hive, Brock Noland, chengxiang li, Szehon Ho, and Xuefu 
> Zhang.
> 
> 
> Bugs: HIVE-9036
>     https://issues.apache.org/jira/browse/HIVE-9036
> 
> 
> Repository: hive-git
> 
> 
> Description
> -------
> 
> This patch replaces akka with a simple netty-based RPC layer. It doesn't add 
> any features on top of the existing spark-client API, which is unchanged 
> (except for the need to add empty constructors in some places).
> 
> With the new backend we can think about adding some nice features such as 
> future listeners (which were awkward with akka because of Scala), but those 
> are left for a different time.
> 
> The full change set, with more detailed descriptions, can be seen here:
> https://github.com/vanzin/hive/commits/spark-client-netty
> 
> 
> Diffs
> -----
> 
>   pom.xml 630b10ce35032e4b2dee50ef3dfe5feb58223b78 
>   ql/src/java/org/apache/hadoop/hive/ql/exec/spark/LocalHiveSparkClient.java 
> PRE-CREATION 
>   ql/src/java/org/apache/hadoop/hive/ql/exec/spark/RemoteHiveSparkClient.java 
> PRE-CREATION 
>   
> ql/src/java/org/apache/hadoop/hive/ql/exec/spark/status/impl/RemoteSparkJobStatus.java
>  PRE-CREATION 
>   spark-client/pom.xml PRE-CREATION 
>   spark-client/src/main/java/org/apache/hive/spark/client/ClientUtils.java 
> PRE-CREATION 
>   spark-client/src/main/java/org/apache/hive/spark/client/JobHandleImpl.java 
> PRE-CREATION 
>   spark-client/src/main/java/org/apache/hive/spark/client/Protocol.java 
> PRE-CREATION 
>   spark-client/src/main/java/org/apache/hive/spark/client/RemoteDriver.java 
> PRE-CREATION 
>   
> spark-client/src/main/java/org/apache/hive/spark/client/SparkClientFactory.java
>  PRE-CREATION 
>   
> spark-client/src/main/java/org/apache/hive/spark/client/SparkClientImpl.java 
> PRE-CREATION 
>   
> spark-client/src/main/java/org/apache/hive/spark/client/metrics/InputMetrics.java
>  PRE-CREATION 
>   
> spark-client/src/main/java/org/apache/hive/spark/client/metrics/Metrics.java 
> PRE-CREATION 
>   
> spark-client/src/main/java/org/apache/hive/spark/client/metrics/ShuffleReadMetrics.java
>  PRE-CREATION 
>   
> spark-client/src/main/java/org/apache/hive/spark/client/metrics/ShuffleWriteMetrics.java
>  PRE-CREATION 
>   
> spark-client/src/main/java/org/apache/hive/spark/client/rpc/KryoMessageCodec.java
>  PRE-CREATION 
>   spark-client/src/main/java/org/apache/hive/spark/client/rpc/README.md 
> PRE-CREATION 
>   spark-client/src/main/java/org/apache/hive/spark/client/rpc/Rpc.java 
> PRE-CREATION 
>   
> spark-client/src/main/java/org/apache/hive/spark/client/rpc/RpcConfiguration.java
>  PRE-CREATION 
>   
> spark-client/src/main/java/org/apache/hive/spark/client/rpc/RpcDispatcher.java
>  PRE-CREATION 
>   
> spark-client/src/main/java/org/apache/hive/spark/client/rpc/RpcException.java 
> PRE-CREATION 
>   spark-client/src/main/java/org/apache/hive/spark/client/rpc/RpcServer.java 
> PRE-CREATION 
>   spark-client/src/main/java/org/apache/hive/spark/counter/SparkCounter.java 
> PRE-CREATION 
>   
> spark-client/src/main/java/org/apache/hive/spark/counter/SparkCounterGroup.java
>  PRE-CREATION 
>   spark-client/src/main/java/org/apache/hive/spark/counter/SparkCounters.java 
> PRE-CREATION 
>   
> spark-client/src/test/java/org/apache/hive/spark/client/TestSparkClient.java 
> PRE-CREATION 
>   
> spark-client/src/test/java/org/apache/hive/spark/client/rpc/TestKryoMessageCodec.java
>  PRE-CREATION 
>   spark-client/src/test/java/org/apache/hive/spark/client/rpc/TestRpc.java 
> PRE-CREATION 
> 
> Diff: https://reviews.apache.org/r/28779/diff/
> 
> 
> Testing
> -------
> 
> spark-client unit tests, plus some qtests.
> 
> 
> Thanks,
> 
> Marcelo Vanzin
> 
>

Reply via email to