Return-Path: X-Original-To: apmail-hbase-issues-archive@www.apache.org Delivered-To: apmail-hbase-issues-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 154519753 for ; Wed, 6 Jun 2012 03:58:26 +0000 (UTC) Received: (qmail 18024 invoked by uid 500); 6 Jun 2012 03:58:25 -0000 Delivered-To: apmail-hbase-issues-archive@hbase.apache.org Received: (qmail 17797 invoked by uid 500); 6 Jun 2012 03:58:24 -0000 Mailing-List: contact issues-help@hbase.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Delivered-To: mailing list issues@hbase.apache.org Received: (qmail 17619 invoked by uid 99); 6 Jun 2012 03:58:24 -0000 Received: from issues-vm.apache.org (HELO issues-vm) (140.211.11.160) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 06 Jun 2012 03:58:24 +0000 Received: from isssues-vm.apache.org (localhost [127.0.0.1]) by issues-vm (Postfix) with ESMTP id 83B7E141663 for ; Wed, 6 Jun 2012 03:58:23 +0000 (UTC) Date: Wed, 6 Jun 2012 03:58:23 +0000 (UTC) From: "chunhui shen (JIRA)" To: issues@hbase.apache.org Message-ID: <1475792366.42420.1338955103541.JavaMail.jiratomcat@issues-vm> In-Reply-To: <1809290185.4265.1337626541081.JavaMail.jiratomcat@issues-vm> Subject: [jira] [Commented] (HBASE-6060) Regions's in OPENING state from failed regionservers takes a long time to recover MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-JIRA-FingerPrint: 30527f35849b9dde25b450d4833f0394 [ https://issues.apache.org/jira/browse/HBASE-6060?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13289931#comment-13289931 ] chunhui shen commented on HBASE-6060: ------------------------------------- Could we fix the problem as the following?: AssignmentManager#processServerShutdown {code} public List processServerShutdown(final ServerName sn){ ... synchronized (regionsInTransition) { for (RegionState regionState : this.regionsInTransition.values()) { if (deadRegions.remove(regionState.getRegion())) { rits.add(regionState); } // make this region in RIT will time out at once if (sn.equals(regionState.getServerName()) && (regionState.isOpening() || regionState.isPendingOpen())) { LOG.debug(sn + " is already dead and make rs=" + regionState + " time out in RIT"); regionState.updateTimestamp(0L); } } } return rits; } {code} I only see the description, correct me if wrong, thanks. > Regions's in OPENING state from failed regionservers takes a long time to recover > --------------------------------------------------------------------------------- > > Key: HBASE-6060 > URL: https://issues.apache.org/jira/browse/HBASE-6060 > Project: HBase > Issue Type: Bug > Components: master, regionserver > Reporter: Enis Soztutar > Assignee: Enis Soztutar > Fix For: 0.96.0, 0.94.1, 0.92.3 > > Attachments: 6060-94-v3.patch, 6060-94-v4.patch, 6060-94-v4_1.patch, 6060-94-v4_1.patch, 6060-trunk.patch, 6060-trunk.patch, 6060-trunk_2.patch, 6060-trunk_3.patch, HBASE-6060-92.patch, HBASE-6060-94.patch > > > we have seen a pattern in tests, that the regions are stuck in OPENING state for a very long time when the region server who is opening the region fails. My understanding of the process: > > - master calls rs to open the region. If rs is offline, a new plan is generated (a new rs is chosen). RegionState is set to PENDING_OPEN (only in master memory, zk still shows OFFLINE). See HRegionServer.openRegion(), HMaster.assign() > - RegionServer, starts opening a region, changes the state in znode. But that znode is not ephemeral. (see ZkAssign) > - Rs transitions zk node from OFFLINE to OPENING. See OpenRegionHandler.process() > - rs then opens the region, and changes znode from OPENING to OPENED > - when rs is killed between OPENING and OPENED states, then zk shows OPENING state, and the master just waits for rs to change the region state, but since rs is down, that wont happen. > - There is a AssignmentManager.TimeoutMonitor, which does exactly guard against these kind of conditions. It periodically checks (every 10 sec by default) the regions in transition to see whether they timedout (hbase.master.assignment.timeoutmonitor.timeout). Default timeout is 30 min, which explains what you and I are seeing. > - ServerShutdownHandler in Master does not reassign regions in OPENING state, although it handles other states. > Lowering that threshold from the configuration is one option, but still I think we can do better. > Will investigate more. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira