Program: 80323
Project: 80323
Buggy source:
/** 
 * Update master computable result to master znode. At the same time clean znodes for old iterations. Iteration 0 and last iteration will not be removed for fail over.
 */
@Override public void postIteration(final MasterContext<MASTER_RESULT,WORKER_RESULT> context){
  new BasicCoordinatorCommand(){
    @Override public void doExecute() throws KeeperException, InterruptedException {
      updateMasterHaltStatus(context);
      boolean isSplit=false;
      String appCurrentMasterNode=getCurrentMasterNode(context.getAppId(),context.getCurrentIteration()).toString();
      String appCurrentMasterSplitNode=getCurrentMasterSplitNode(context.getAppId(),context.getCurrentIteration()).toString();
      LOG.debug("String_Node_Str",context.getMasterResult());
      try {
        byte[] bytes=getMasterSerializer().objectToBytes(context.getMasterResult());
        isSplit=setBytesToZNode(appCurrentMasterNode,appCurrentMasterSplitNode,bytes,CreateMode.PERSISTENT);
      }
 catch (      KeeperException.NodeExistsException e) {
        LOG.warn("String_Node_Str",e);
      }
      if (context.getCurrentIteration() >= 3) {
        String znode=getMasterNode(context.getAppId(),context.getCurrentIteration() - 2).toString();
        try {
          getZooKeeper().deleteExt(znode,-1,false);
          if (isSplit) {
            znode=getCurrentMasterSplitNode(context.getAppId(),context.getCurrentIteration() - 2).toString();
            getZooKeeper().deleteExt(znode,-1,true);
          }
        }
 catch (        KeeperException.NoNodeException e) {
          if (System.nanoTime() % 20 == 0) {
            LOG.warn("String_Node_Str",znode);
          }
        }
      }
      LOG.info("String_Node_Str");
    }
  }
.execute();
  clear(context.getProps());
}

Fixed version (ground truth):
/** 
 * Update master computable result to master znode. At the same time clean znodes for old iterations. Iteration 0 and last iteration will not be removed for fail over.
 */
@Override public void postIteration(final MasterContext<MASTER_RESULT,WORKER_RESULT> context){
  new BasicCoordinatorCommand(){
    @Override public void doExecute() throws KeeperException, InterruptedException {
      updateMasterHaltStatus(context);
      clear(context.getProps());
      boolean isSplit=false;
      String appCurrentMasterNode=getCurrentMasterNode(context.getAppId(),context.getCurrentIteration()).toString();
      String appCurrentMasterSplitNode=getCurrentMasterSplitNode(context.getAppId(),context.getCurrentIteration()).toString();
      LOG.debug("String_Node_Str",context.getMasterResult());
      try {
        byte[] bytes=getMasterSerializer().objectToBytes(context.getMasterResult());
        isSplit=setBytesToZNode(appCurrentMasterNode,appCurrentMasterSplitNode,bytes,CreateMode.PERSISTENT);
      }
 catch (      KeeperException.NodeExistsException e) {
        LOG.warn("String_Node_Str",e);
      }
      if (context.getCurrentIteration() >= 3) {
        String znode=getMasterNode(context.getAppId(),context.getCurrentIteration() - 2).toString();
        try {
          getZooKeeper().deleteExt(znode,-1,false);
          if (isSplit) {
            znode=getCurrentMasterSplitNode(context.getAppId(),context.getCurrentIteration() - 2).toString();
            getZooKeeper().deleteExt(znode,-1,true);
          }
        }
 catch (        KeeperException.NoNodeException e) {
          if (System.nanoTime() % 20 == 0) {
            LOG.warn("String_Node_Str",znode);
          }
        }
      }
      LOG.info("String_Node_Str");
    }
  }
.execute();
}