You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by st...@apache.org on 2010/12/22 19:00:50 UTC
svn commit: r1052014 -
/hbase/branches/0.90/src/main/java/org/apache/hadoop/hbase/regionserver/handler/OpenRegionHandler.java
Author: stack
Date: Wed Dec 22 18:00:49 2010
New Revision: 1052014
URL: http://svn.apache.org/viewvc?rev=1052014&view=rev
Log:
HBASE-3381 Interrupt of a region open comes across as a successful open; second attempt
Modified:
hbase/branches/0.90/src/main/java/org/apache/hadoop/hbase/regionserver/handler/OpenRegionHandler.java
Modified: hbase/branches/0.90/src/main/java/org/apache/hadoop/hbase/regionserver/handler/OpenRegionHandler.java
URL: http://svn.apache.org/viewvc/hbase/branches/0.90/src/main/java/org/apache/hadoop/hbase/regionserver/handler/OpenRegionHandler.java?rev=1052014&r1=1052013&r2=1052014&view=diff
==============================================================================
--- hbase/branches/0.90/src/main/java/org/apache/hadoop/hbase/regionserver/handler/OpenRegionHandler.java (original)
+++ hbase/branches/0.90/src/main/java/org/apache/hadoop/hbase/regionserver/handler/OpenRegionHandler.java Wed Dec 22 18:00:49 2010
@@ -159,9 +159,19 @@ public class OpenRegionHandler extends E
}
// 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.