Index: hbase-server/src/main/java/org/apache/hadoop/hbase/procedure/Subprocedure.java =================================================================== --- hbase-server/src/main/java/org/apache/hadoop/hbase/procedure/Subprocedure.java (revision 1595035) +++ hbase-server/src/main/java/org/apache/hadoop/hbase/procedure/Subprocedure.java (working copy) @@ -265,6 +265,7 @@ */ public void cancel(String msg, Throwable cause) { LOG.error(msg, cause); + complete = true; if (cause instanceof ForeignException) { monitor.receive((ForeignException) cause); } else { Index: hbase-server/src/main/java/org/apache/hadoop/hbase/procedure/ProcedureMember.java =================================================================== --- hbase-server/src/main/java/org/apache/hadoop/hbase/procedure/ProcedureMember.java (revision 1595035) +++ hbase-server/src/main/java/org/apache/hadoop/hbase/procedure/ProcedureMember.java (working copy) @@ -246,7 +246,8 @@ ", ignoring it.", ee); return; // Procedure has already completed } - LOG.error("Propagating foreign exception to subprocedure " + sub.getName(), ee); - sub.monitor.receive(ee); + String msg = "Propagating foreign exception to subprocedure " + sub.getName(); + LOG.error(msg, ee); + sub.cancel(msg, ee); } } \ No newline at end of file