Program: 173126
Project: 173126
Buggy source:
public static void main(String[] args){
  int noOfProcs=Integer.parseInt(args[1]);
  int procId=Integer.parseInt(args[0]);
  NetworkInfo networkInfo=new NetworkInfo(procId);
  networkInfo.addProperty(TCPContext.NETWORK_HOSTNAME,"String_Node_Str");
  networkInfo.addProperty(TCPContext.NETWORK_PORT,8764);
  List<NetworkInfo> list=new ArrayList<>();
  for (int i=0; i < noOfProcs; i++) {
    NetworkInfo info=new NetworkInfo(i);
    info.addProperty(TCPContext.NETWORK_HOSTNAME,"String_Node_Str");
    info.addProperty(TCPContext.NETWORK_PORT,8765 + i);
    list.add(info);
  }
  TCPChannel master=new TCPChannel(Config.newBuilder().build(),list,list.get(procId),networkInfo);
  master.start();
  int destProcId=0;
  if (procId == 0) {
    destProcId=1;
  }
  List<TCPRequest> readRequests=new ArrayList<>();
  List<TCPRequest> writeRequests=new ArrayList<>();
  for (int i=0; i < 5; i++) {
    ByteBuffer byteBuffer=ByteBuffer.allocate(128);
    TCPRequest write=master.iSend(byteBuffer,128,destProcId,1);
    writeRequests.add(write);
    ByteBuffer receiveBuffer=ByteBuffer.allocate(128);
    TCPRequest read=master.iRecv(receiveBuffer,128,destProcId,1);
    readRequests.add(read);
  }
  for (int i=0; i < 5; i++) {
    TCPRequest w=writeRequests.get(i);
    if (w.isComplete()) {
      LOG.info("String_Node_Str");
    }
    TCPRequest r=readRequests.get(i);
    if (r.isComplete()) {
      LOG.info("String_Node_Str");
    }
  }
}

Fixed version (ground truth):
public static void main(String[] args){
  int noOfProcs=Integer.parseInt(args[1]);
  int procId=Integer.parseInt(args[0]);
  NetworkInfo networkInfo=new NetworkInfo(procId);
  networkInfo.addProperty(TCPContext.NETWORK_HOSTNAME,"String_Node_Str");
  networkInfo.addProperty(TCPContext.NETWORK_PORT,8764);
  List<NetworkInfo> list=new ArrayList<>();
  for (int i=0; i < noOfProcs; i++) {
    NetworkInfo info=new NetworkInfo(i);
    info.addProperty(TCPContext.NETWORK_HOSTNAME,"String_Node_Str");
    info.addProperty(TCPContext.NETWORK_PORT,8765 + i);
    list.add(info);
  }
  TCPChannel master=new TCPChannel(Config.newBuilder().build(),list,list.get(procId),networkInfo);
  master.start();
  int destProcId=0;
  if (procId == 0) {
    destProcId=1;
  }
  List<TCPRequest> readRequests=new ArrayList<>();
  List<TCPRequest> writeRequests=new ArrayList<>();
  for (int i=0; i < 5; i++) {
    ByteBuffer byteBuffer=ByteBuffer.allocate(128);
    TCPRequest write=master.iSend(byteBuffer,128,destProcId,1);
    writeRequests.add(write);
    ByteBuffer receiveBuffer=ByteBuffer.allocate(128);
    TCPRequest read=master.iRecv(receiveBuffer,128,destProcId,1);
    readRequests.add(read);
  }
  int completed=0;
  int writeCOmpeted=0;
  do {
    completed=0;
    writeCOmpeted=0;
    master.progress();
    for (int i=0; i < 5; i++) {
      TCPRequest w=writeRequests.get(i);
      if (w.isComplete()) {
        LOG.info("String_Node_Str" + writeCOmpeted);
        writeCOmpeted++;
      }
      TCPRequest r=readRequests.get(i);
      if (r.isComplete()) {
        LOG.info("String_Node_Str" + completed);
        completed++;
      }
    }
  }
 while (completed != 5 || writeCOmpeted != 5);
  try {
    Thread.sleep(1000);
  }
 catch (  InterruptedException e) {
    e.printStackTrace();
  }
  master.close();
}