You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by "Jeongdae Kim (JIRA)" <ji...@apache.org> on 2019/06/04 10:22:00 UTC

[jira] [Updated] (HBASE-22538) Prevent graceful_stop.sh from shutting down RS too early before finishing unloading regions

     [ https://issues.apache.org/jira/browse/HBASE-22538?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Jeongdae Kim updated HBASE-22538:
---------------------------------
    Status: Patch Available  (was: Open)

> Prevent graceful_stop.sh from shutting down RS too early before finishing unloading regions
> -------------------------------------------------------------------------------------------
>
>                 Key: HBASE-22538
>                 URL: https://issues.apache.org/jira/browse/HBASE-22538
>             Project: HBase
>          Issue Type: Bug
>          Components: shell
>    Affects Versions: 1.4.9
>            Reporter: Jeongdae Kim
>            Assignee: Jeongdae Kim
>            Priority: Minor
>         Attachments: HBASE-22538.branch-1.4.001.patch
>
>
> We can stop or restart region servers gracefully using graceful_stop.sh command
> This command should guarantee that all regions are moved out before shutting down a region server.
> However, sometimes i saw many requests failed while restarting a region server with this command in our production clusters(v1.2.5)
> affected clients got many RegionServerStoppedExceptions and exhausted retry count.
> I found it took 0.03 sec to move a region, it’s too fast. and, moving(unloading) regions in the region server wasn’t finished, even didn’t closed yet when region server got shutdown signal.
> Because a region server serving regions (didn't be closed) were stopped, clients got many exception (RegionServerStoppedException)
> But, region_mover should wait until a region is served by other region server(meta changed)
> https://github.com/apache/hbase/blob/branch-1.2/bin/region_mover.rb#L153
> I figured out why this early shutdown happened. 
> a) our clusters use upper case hostname
> b) region server makes ServerName with lowercase hostname, and it will be sent to the master
> https://github.com/apache/hbase/blob/branch-1.2/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java#L542
> c) when updating meta, server name will keep its own case
> https://github.com/apache/hbase/blob/branch-1.2/hbase-client/src/main/java/org/apache/hadoop/hbase/MetaTableAccessor.java#L1527
> d) region_mover.rb just compare b) and c), so it is always false
> https://github.com/apache/hbase/blob/branch-1.2/bin/region_mover.rb#L91
> https://github.com/apache/hbase/blob/branch-1.2/bin/region_mover.rb#L52
> I think region_mover should compare server name between master and meta with the same case(lower)
> With patch, I confirmed region_mover waited until finishing moving all regions, then triggered shutting down region sever. (also observed only RegionMovedException before shutdown log, and no exception after starting shutdown)



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)