hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Anoop Sam John (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HBASE-19496) Reusing the ByteBuffer in rpc layer corrupt the ServerLoad and RegionLoad
Date Wed, 13 Dec 2017 09:01:00 GMT

    [ https://issues.apache.org/jira/browse/HBASE-19496?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16288912#comment-16288912

Anoop Sam John commented on HBASE-19496:

bq.Rpc server has no idea about how server use the pb object even if we parse the method from
request. Cloneing all request data in rpc layer may make server burn out. I prefer to assume
all pb object passed from rpc layer is modifiable, and rs/master should do the clone if they
want to keep the pb object after the call is done.
Ya what I was saying is apart from the mutation requests, others should not use the BBpool.
  Ya difficult.. It make sense to make sure when we keep the PB object, clone it.  For Cells
this is what we do. By default we will copy to MSLAB. If not, we are cloning then while adding
to CSLM.  I did not say it 1st as the code of cloning will be distributed across the code
base and we may miss some !  But this is the best way considering the perf aspects.
bq.HM can host the normal region, so I think the BBpool is still useful for HM.
By default it is not there. No regions in HM.  So by default we can make it off is what I
was thinking. Where as in RS this is by default ON.  May be do as a subtask also ok. I can
raise one and work with that if u are ok.

> 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

View raw message