Grokbase Groups HBase user June 2016
FAQ
in hbase 0.98.10,
class HRegionServer
method openRegion
line 3827


when RS open region, if this region is already opened by RS, we will check hbase:meta to see if hbase:meta is updated.
but, if the RS is opening hbase:meta, then MetaReader.getRegion will return null(we do not store hbase:meta data in table hbase:meta), and lead to nullPointerException


we can reproduce this problem as follows:
1. master assign hbase:meta
2. RS open hbase:meta slowly, master timeout(may because of high load or network problem),
3. master send open region request again(RS is still opening hbase:meta, and opened)
4. RS will throw NullPointerException and hmaster will retry forever

Search Discussions

  • Ted Yu at Jun 3, 2016 at 1:26 pm
    Were you referring to the following lines ?

               // See HBASE-5094. Cross check with hbase:meta if still this RS
    is owning
               // the region.
               Pair<HRegionInfo, ServerName> p = MetaReader.getRegion(
                   this.catalogTracker, region.getRegionName());

    The above is at line 3967 at head of 0.98 branch.

    If you can come up with test which shows the problem for head of 0.98
    branch, suggest opening a JIRA.

    Cheers
    On Fri, Jun 3, 2016 at 2:16 AM, WangYQ wrote:

    in hbase 0.98.10,
    class HRegionServer
    method openRegion
    line 3827


    when RS open region, if this region is already opened by RS, we will check
    hbase:meta to see if hbase:meta is updated.
    but, if the RS is opening hbase:meta, then MetaReader.getRegion will
    return null(we do not store hbase:meta data in table hbase:meta), and lead
    to nullPointerException


    we can reproduce this problem as follows:
    1. master assign hbase:meta
    2. RS open hbase:meta slowly, master timeout(may because of high load or
    network problem),
    3. master send open region request again(RS is still opening hbase:meta,
    and opened)
    4. RS will throw NullPointerException and hmaster will retry forever
  • WangYQ at Jun 3, 2016 at 2:26 pm
    yes, the code below can be improved
            // See HBASE-5094. Cross check with hbase:meta if still this RS
    is owning
             // the region.
             Pair<HRegionInfo, ServerName> p = MetaReader.getRegion(
                 this.catalogTracker, region.getRegionName());


    if regionserver opens hbase:meta timeout(1 minute), then master will retry to open hbase:meta by send another rpc to region server
    if rs opens hbas:meta before receive the second open request, null pointer will be thorwn

    in common case, rs can opens hbase:meta in one minutes, so i am not sure whether this is a problem



    thanks



    On 2016-06-03 21:25 , Ted Yu Wrote:

    Were you referring to the following lines ?

              // See HBASE-5094. Cross check with hbase:meta if still this RS
    is owning
              // the region.
              Pair<HRegionInfo, ServerName> p = MetaReader.getRegion(
                  this.catalogTracker, region.getRegionName());

    The above is at line 3967 at head of 0.98 branch.

    If you can come up with test which shows the problem for head of 0.98
    branch, suggest opening a JIRA.

    Cheers
    On Fri, Jun 3, 2016 at 2:16 AM, WangYQ wrote:

    in hbase 0.98.10,
    class HRegionServer
    method openRegion
    line 3827


    when RS open region, if this region is already opened by RS, we will check
    hbase:meta to see if hbase:meta is updated.
    but, if the RS is opening hbase:meta, then MetaReader.getRegion will
    return null(we do not store hbase:meta data in table hbase:meta), and lead
    to nullPointerException


    we can reproduce this problem as follows:
    1. master assign hbase:meta
    2. RS open hbase:meta slowly, master timeout(may because of high load or
    network problem),
    3. master send open region request again(RS is still opening hbase:meta,
    and opened)
    4. RS will throw NullPointerException and hmaster will retry forever

Related Discussions

Discussion Navigation
viewthread | post
Discussion Overview
groupuser @
categorieshbase, hadoop
postedJun 3, '16 at 9:17a
activeJun 3, '16 at 2:26p
posts3
users2
websitehbase.apache.org

2 users in discussion

WangYQ: 2 posts Ted Yu: 1 post

People

Translate

site design / logo © 2018 Grokbase