[ https://issues.apache.org/jira/browse/HBASE-18081?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16018797#comment-16018797 ]
Duo Zhang commented on HBASE-18081: ----------------------------------- [~stack] We always use the dataLengthBuffer to read the first 4 bytes. And if we haven't read preamble yet, we will read two more bytes, it is version and authMethod. But the buffer to hold these two bytes is a local variable, which means if we only read 1 byte here, we will just return and this byte will be discarded. So the next readPreamble call will be broken. Let me commit and resolve this. Thanks. > The way we process connection preamble in SimpleRpcServer is broken > ------------------------------------------------------------------- > > Key: HBASE-18081 > URL: https://issues.apache.org/jira/browse/HBASE-18081 > Project: HBase > Issue Type: Bug > Components: IPC/RPC > Affects Versions: 2.0.0, 1.4.0, 1.3.1, 1.2.5, 1.1.10 > Reporter: Duo Zhang > Assignee: Duo Zhang > Fix For: 2.0.0, 1.4.0, 1.2.6, 1.3.2, 1.1.11 > > Attachments: HBASE-18081-branch-1.2.patch, > HBASE-18081-branch-1.3.patch, HBASE-18081-branch-1.patch, HBASE-18081.patch, > HBASE-18081-testcase.patch > > > Though very rare, but if the preamble is not sent at once, the logic will be > broken. -- This message was sent by Atlassian JIRA (v6.3.15#6346)