[ https://issues.apache.org/jira/browse/HBASE-19496?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16287990#comment-16287990 ]
Anoop Sam John commented on HBASE-19496: ---------------------------------------- We already have a min size for reservoir usage getMinSizeForReservoirUse(ByteBufferPool pool) { return pool.getBufferSize() / 6; } So seems for ServerLoad, the request size is more and the PB data size may be more. We should ideally have an inspection at a stage after the read at Rpc server (where we already know the request is for which method) and take a call abt the copy to new data structure. For methods like Serverload passing. Ideally in HM side, the BBpool itself should not get created. > Reusing the ByteBuffer in rpc layer corrupt the ServerLoad and RegionLoad > ------------------------------------------------------------------------- > > Key: HBASE-19496 > URL: https://issues.apache.org/jira/browse/HBASE-19496 > Project: HBase > Issue Type: Bug > Reporter: Chia-Ping Tsai > Assignee: Chia-Ping Tsai > Priority: Blocker > Fix For: 2.0.0-beta-1 > > Attachments: HBASE-19496.wip.patch > > > {{ServerLoad}} and {{RegionLoad}} store the pb object internally but the > bytebuffer of pb object may be reused in rpc layer. Hence, the {{ServerLoad}} > and {{RegionLoad}} which saved by {{HMaster}} will be corrupted if the > bytebuffer backed is modified. > This issue doesn't happen on branch-1. > # netty server was introduced in 2.0 (see HBASE-17263) > # reusing bytebuffer to read RPC requests was introduced in 2.0 (see > HBASE-15788) -- This message was sent by Atlassian JIRA (v6.4.14#64029)