瀏覽代碼

ZOOKEEPER-4710 Fix ZkUtil deleteInBatch() by releasing semaphore after set flag (#2020)

Yan Zhao 1 年之前
父節點
當前提交
77c1e4c872
共有 1 個文件被更改,包括 1 次插入1 次删除
  1. 1 1
      zookeeper-server/src/main/java/org/apache/zookeeper/ZKUtil.java

+ 1 - 1
zookeeper-server/src/main/java/org/apache/zookeeper/ZKUtil.java

@@ -109,10 +109,10 @@ public class ZKUtil {
         List<Op> ops = new ArrayList<>();
         BatchedDeleteCbContext context = new BatchedDeleteCbContext(rateLimit);
         MultiCallback cb = (rc, path, ctx, opResults) -> {
-            ((BatchedDeleteCbContext) ctx).sem.release();
             if (rc != Code.OK.intValue()) {
                 ((BatchedDeleteCbContext) ctx).success.set(false);
             }
+            ((BatchedDeleteCbContext) ctx).sem.release();
         };
 
         // Delete the leaves first and eventually get rid of the root