Program: 52283
Project: 52283
Buggy source:
public static void main(@NotNull String... args) throws IOException, InterruptedException {
  if (args.length < 2) {
    System.err.print("String_Node_Str" + GWMain.class.getName() + "String_Node_Str");
    System.exit(-1);
  }
  ChronicleTools.warmup();
  final int gwId=Integer.parseInt(args[0]);
  final boolean throughputTest=Boolean.parseBoolean(args[1]);
  String tmp=System.getProperty("String_Node_Str");
  String gw2pePath=tmp + "String_Node_Str" + gwId;
  String pePath=tmp + "String_Node_Str";
  ChronicleConfig config=ChronicleConfig.DEFAULT.clone();
  IndexedChronicle gw2pe=new IndexedChronicle(gw2pePath,config);
  Gw2PeEvents gw2PeWriter=new Gw2PeWriter(gw2pe.createAppender());
  IndexedChronicle pe2gw=new IndexedChronicle(pePath,config);
  final long[] times=new long[ORDERS];
  final AtomicInteger reportCount=new AtomicInteger(-WARMUP);
  Pe2GwEvents listener=new Pe2GwEvents(){
    @Override public void report(    @NotNull MetaData metaData,    SmallReport smallReport){
      if (metaData.sourceId != gwId)       return;
      int count=reportCount.getAndIncrement();
      if (!throughputTest) {
        times[Math.abs(count)]=(metaData.inReadTimestamp - metaData.inWriteTimestamp);
      }
    }
  }
;
  final Pe2GwReader pe2GwReader=new Pe2GwReader(gwId,pe2gw.createTailer(),listener);
  if (gwId > 1) {
    int startTime=(int)((System.currentTimeMillis() / 1000 - 5) % 10) + 5;
    System.out.println("String_Node_Str");
    for (int i=startTime; i > 0; i--) {
      System.out.print(i + "String_Node_Str");
      System.out.flush();
      Thread.sleep(1000);
    }
  }
  Thread t=new Thread(new Runnable(){
    @Override public void run(){
      AffinitySupport.setAffinity(1L << 3);
      while (reportCount.get() < ORDERS) {
        pe2GwReader.readOne();
      }
    }
  }
);
  t.start();
  Thread t2=new Thread(new Runnable(){
    @Override public void run(){
      int n=0;
      while (reportCount.get() < ORDERS) {
        while (reportCount.get() < n)         try {
          Thread.sleep(100);
        }
 catch (        InterruptedException e) {
          throw new AssertionError(e);
        }
        int count=reportCount.get();
        System.out.println("String_Node_Str" + count);
        n+=1000000;
      }
    }
  }
);
  t2.start();
  AffinitySupport.setAffinity(1L << 1);
  SmallCommand command=new SmallCommand();
  @SuppressWarnings("String_Node_Str") StringBuilder clientOrderId=command.clientOrderId;
  System.out.println("String_Node_Str");
  long start=System.nanoTime();
  for (int i=0; i < ORDERS + WARMUP; i++) {
    if (i == WARMUP)     start=System.nanoTime();
    clientOrderId.setLength(0);
    clientOrderId.append("String_Node_Str");
    clientOrderId.append(gwId);
    clientOrderId.append('-');
    clientOrderId.append(i);
    command.instrument="String_Node_Str";
    command.price=1209.41;
    command.quantity=1000;
    command.side=(i & 1) == 0 ? Side.BUY : Side.SELL;
    if (!throughputTest) {
      long expectedTime=start + i * EVENT_SPACING - 30;
      while (System.nanoTime() < expectedTime) {
      }
    }
    gw2PeWriter.small(null,command);
  }
  System.out.println("String_Node_Str" + reportCount.get());
  t.join();
  long time=System.nanoTime() - start;
  Arrays.sort(times);
  System.out.printf("String_Node_Str",ORDERS,time / 1e9);
  if (!throughputTest) {
    System.out.printf("String_Node_Str",times[ORDERS / 2] / 1e3,times[ORDERS * 9 / 10] / 1e3,times[ORDERS - ORDERS / 100] / 1e3,times[ORDERS - ORDERS / 1000] / 1000,times[ORDERS - ORDERS / 10000] / 1000,times[ORDERS - 1] / 1000);
  }
  gw2pe.close();
  pe2gw.close();
}

Fixed version (ground truth):
public static void main(@NotNull String... args) throws IOException, InterruptedException {
  if (args.length < 2) {
    System.err.print("String_Node_Str" + GWMain.class.getName() + "String_Node_Str");
    System.exit(-1);
  }
  ChronicleTools.warmup();
  final int gwId=Integer.parseInt(args[0]);
  final boolean throughputTest=Boolean.parseBoolean(args[1]);
  String tmp=System.getProperty("String_Node_Str");
  String gw2pePath=tmp + "String_Node_Str" + gwId;
  String pePath=tmp + "String_Node_Str";
  ChronicleConfig config=ChronicleConfig.DEFAULT.clone();
  IndexedChronicle gw2pe=new IndexedChronicle(gw2pePath,config);
  Gw2PeEvents gw2PeWriter=new Gw2PeWriter(gw2pe.createAppender());
  IndexedChronicle pe2gw=new IndexedChronicle(pePath,config);
  final long[] times=new long[ORDERS];
  final AtomicInteger reportCount=new AtomicInteger(-WARMUP);
  Pe2GwEvents listener=new Pe2GwEvents(){
    @Override public void report(    @NotNull MetaData metaData,    SmallReport smallReport){
      if (metaData.sourceId != gwId)       return;
      int count=reportCount.getAndIncrement();
      if (!throughputTest) {
        times[Math.abs(count)]=(metaData.outReadTimestamp - metaData.inWriteTimestamp);
      }
    }
  }
;
  final Pe2GwReader pe2GwReader=new Pe2GwReader(gwId,pe2gw.createTailer(),listener);
  if (gwId > 1) {
    int startTime=(int)((System.currentTimeMillis() / 1000 - 5) % 10) + 5;
    System.out.println("String_Node_Str");
    for (int i=startTime; i > 0; i--) {
      System.out.print(i + "String_Node_Str");
      System.out.flush();
      Thread.sleep(1000);
    }
  }
  Thread t=new Thread(new Runnable(){
    @Override public void run(){
      AffinitySupport.setAffinity(1L << 3);
      while (reportCount.get() < ORDERS) {
        pe2GwReader.readOne();
      }
    }
  }
);
  t.start();
  Thread t2=new Thread(new Runnable(){
    @Override public void run(){
      int n=0;
      while (reportCount.get() < ORDERS) {
        while (reportCount.get() < n)         try {
          Thread.sleep(100);
        }
 catch (        InterruptedException e) {
          throw new AssertionError(e);
        }
        int count=reportCount.get();
        System.out.println("String_Node_Str" + count);
        n+=1000000;
      }
    }
  }
);
  t2.start();
  AffinitySupport.setAffinity(1L << 1);
  SmallCommand command=new SmallCommand();
  @SuppressWarnings("String_Node_Str") StringBuilder clientOrderId=command.clientOrderId;
  System.out.println("String_Node_Str");
  long start=System.nanoTime();
  for (int i=0; i < ORDERS + WARMUP; i++) {
    if (i == WARMUP)     start=System.nanoTime();
    clientOrderId.setLength(0);
    clientOrderId.append("String_Node_Str");
    clientOrderId.append(gwId);
    clientOrderId.append('-');
    clientOrderId.append(i);
    command.instrument="String_Node_Str";
    command.price=1209.41;
    command.quantity=1000;
    command.side=(i & 1) == 0 ? Side.BUY : Side.SELL;
    if (!throughputTest) {
      long expectedTime=start + i * EVENT_SPACING - 30;
      while (System.nanoTime() < expectedTime) {
      }
    }
    gw2PeWriter.small(null,command);
  }
  System.out.println("String_Node_Str" + reportCount.get());
  t.join();
  long time=System.nanoTime() - start;
  Arrays.sort(times);
  System.out.printf("String_Node_Str",ORDERS,time / 1e9);
  if (!throughputTest) {
    System.out.printf("String_Node_Str",times[ORDERS / 2] / 1e3,times[ORDERS * 9 / 10] / 1e3,times[ORDERS - ORDERS / 100] / 1e3,times[ORDERS - ORDERS / 1000] / 1000,times[ORDERS - ORDERS / 10000] / 1000,times[ORDERS - 1] / 1000);
  }
  gw2pe.close();
  pe2gw.close();
}