[
https://issues.apache.org/jira/browse/HBASE-11494?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14061222#comment-14061222
]
Roger Xu commented on HBASE-11494:
----------------------------------
Ideally Hbase client should provide a way to call
CodedInputStream.setSizeLimit() instead of patching Protobuf. To solve my own
problem, I just hacked the following line:
diff CodedInputStream.java /tmp/CodedInputStream.java
754c754
< if ( /*totalBytesRead > sizeLimit || */totalBytesRead < 0) {
---
> if ( totalBytesRead > sizeLimit || totalBytesRead < 0) {
> RegionServer throws Exception when response is too long
> -------------------------------------------------------
>
> Key: HBASE-11494
> URL: https://issues.apache.org/jira/browse/HBASE-11494
> Project: HBase
> Issue Type: Bug
> Components: IPC/RPC
> Environment: HDP 2.1, REHL 6.0
> Reporter: Roger Xu
>
> Table’s cell having a large number of versions, it works fine when I read
> 100K VERSIONS from the cell, but regionServer gives exception when I
> attempted to read upto 1M VERSIONS. error happens with both hbase shell , and
> happy base client
> 2014-07-10 10:45:30,098 WARN [RpcServer.handler=47,port=60020] ipc.RpcServer:
> (responseTooLarge):
> {“processingtimems”:104,”call”:”Get(org.apache.hadoop.hbase.protobuf.generated.ClientProtos$GetRequest)”,”client”:”17.203.54.172:56290″,”starttimems”:1405014329979,”queuetimems”:0,”class”:”HRegionServer”,”responsesize”:157334052,”method”:”Get”}
> 2014-07-10 10:45:30,923 INFO [RpcServer.reader=6,port=60020] ipc.RpcServer:
> RpcServer.listener,port=60020: count of bytes read: 0
> java.io.IOException: Connection reset by peer
> at sun.nio.ch.FileDispatcherImpl.read0(Native Method)
> at sun.nio.ch.SocketDispatcher.read(SocketDispatcher.java:39)
> at sun.nio.ch.IOUtil.readIntoNativeBuffer(IOUtil.java:223)
> at sun.nio.ch.IOUtil.read(IOUtil.java:197)
> at sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:379)
> at org.apache.hadoop.hbase.ipc.RpcServer.channelRead(RpcServer.java:2224)
> at
> org.apache.hadoop.hbase.ipc.RpcServer$Connection.readAndProcess(RpcServer.java:1415)
> at org.apache.hadoop.hbase.ipc.RpcServer$Listener.doRead(RpcServer.java:790)
> at
> org.apache.hadoop.hbase.ipc.RpcServer$Listener$Reader.doRunLoop(RpcServer.java:581)
> at
> org.apache.hadoop.hbase.ipc.RpcServer$Listener$Reader.run(RpcServer.java:556)
> at
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
> at java.lang.Thread.run(Thread.java:744)
> 2014-07-10 10:45:30,923 WARN [RpcServer.responder] ipc.RpcServer:
> RpcServer.respondercallId: 93 service: ClientService methodName: Get size:
> 225 connection: 17.203.54.172:56290: output error
> 2014-07-10 10:45:30,924 INFO [RpcServer.responder] ipc.RpcServer:
> RpcServer.responder: asyncWrite
> java.io.IOException: Broken pipe
> at sun.nio.ch.FileDispatcherImpl.writev0(Native Method)
> at sun.nio.ch.SocketDispatcher.writev(SocketDispatcher.java:51)
> at sun.nio.ch.IOUtil.write(IOUtil.java:148)
> at sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:524)
> at org.apache.hadoop.hbase.ipc.BufferChain.write(BufferChain.java:106)
> at org.apache.hadoop.hbase.ipc.RpcServer.channelWrite(RpcServer.java:2204)
> at
> org.apache.hadoop.hbase.ipc.RpcServer$Responder.processResponse(RpcServer.java:1004)
> at
> org.apache.hadoop.hbase.ipc.RpcServer$Responder.doAsyncWrite(RpcServer.java:944)
> at
> org.apache.hadoop.hbase.ipc.RpcServer$Responder.doRunLoop(RpcServer.java:873)
> at org.apache.hadoop.hbase.ipc.RpcServer$Responder.run(RpcServer.java:849)
--
This message was sent by Atlassian JIRA
(v6.2#6252)