From 8450cc672153626290093083784620a9f6d3c35b Mon Sep 17 00:00:00 2001 From: Michael Stack Date: Wed, 22 Dec 2010 17:58:43 +0000 Subject: [PATCH] HBASE-3381 Interrupt of a region open comes across as a successful open; second attempt git-svn-id: https://svn.apache.org/repos/asf/hbase/trunk@1052013 13f79535-47bb-0310-9956-ffa450edef68 --- .../regionserver/handler/OpenRegionHandler.java | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/src/main/java/org/apache/hadoop/hbase/regionserver/handler/OpenRegionHandler.java b/src/main/java/org/apache/hadoop/hbase/regionserver/handler/OpenRegionHandler.java index a0f2345f7a9..d9da48b0dd7 100644 --- a/src/main/java/org/apache/hadoop/hbase/regionserver/handler/OpenRegionHandler.java +++ b/src/main/java/org/apache/hadoop/hbase/regionserver/handler/OpenRegionHandler.java @@ -158,9 +158,19 @@ public class OpenRegionHandler extends EventHandler { } // Is thread still alive? We may have left above loop because server is // stopping or we timed out the edit. Is so, interrupt it. - if (t.isAlive() && !signaller.get()) { - LOG.debug("Interrupting thread " + t); - t.interrupt(); + if (t.isAlive()) { + if (!signaller.get()) { + // Thread still running; interrupt + LOG.debug("Interrupting thread " + t); + t.interrupt(); + } + try { + t.join(); + } catch (InterruptedException ie) { + LOG.warn("Interrupted joining " + + r.getRegionInfo().getRegionNameAsString(), ie); + Thread.currentThread().interrupt(); + } } // Was there an exception opening the region? This should trigger on // InterruptedException too. If so, we failed.