[ https://issues.apache.org/jira/browse/HBASE-16752?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Ashu Pachauri updated HBASE-16752: ---------------------------------- Attachment: HBASE-16752.addendum.patch Addendum: The original patch introduces an incompatibility in the sense that when the client version is 1.3, the client bails out immediately on receiving the excpetion, but a 1.2 client would keep retrying as it would unwrap the exception only to a RemoteException because it does not know about the RequestTooBigException. The addendum adds a min supported version for the RequestTooBigException and throws a DoNotRetryIOException for older clients. > Upgrading from 1.2 to 1.3 can lead to replication failures due to difference > in RPC size limit > ---------------------------------------------------------------------------------------------- > > Key: HBASE-16752 > URL: https://issues.apache.org/jira/browse/HBASE-16752 > Project: HBase > Issue Type: Bug > Components: Replication, rpc > Affects Versions: 2.0.0, 1.3.0 > Reporter: Ashu Pachauri > Assignee: Ashu Pachauri > Fix For: 2.0.0, 1.3.0, 1.4.0 > > Attachments: HBASE-16752.V1.patch, HBASE-16752.V2.patch, > HBASE-16752.addendum.patch > > > In HBase 1.2, we don't limit size of a single RPC but in 1.3 we limit it by > default to 256 MB. This means that during upgrade scenarios (or when source > is 1.2 peer is already on 1.3), it's possible to encounter a situation where > we try to send an rpc with size greater than 256 MB because we never unroll a > WALEdit while sending replication traffic. > RpcServer throws the underlying exception locally, but closes the connection > with returning the underlying error to the client, and client only sees a > "Broken pipe" error. > I am not sure what is the proper fix here (or if one is needed) to make sure > this does not happen, but we should return the underlying exception to the > RpcClient, because without it, it can be difficult to diagnose the problem, > especially for someone new to HBase. -- This message was sent by Atlassian JIRA (v6.3.4#6332)