Program: 112133
Project: 112133
Buggy source:
private void checkRead() throws IOException {
  if (columnsStore == null || current == total) {
    if (columnsStore != null) {
      long timeAssembling=System.currentTimeMillis() - startedReadingCurrentBlockAt;
      totalTimeSpentProcessingRecords+=timeAssembling;
      LOG.info("String_Node_Str" + currentBlockRecordCount + "String_Node_Str"+ timeAssembling+ "String_Node_Str"+ ((float)currentBlockRecordCount / timeAssembling)+ "String_Node_Str");
      long totalTime=totalTimeSpentProcessingRecords + totalTimeSpentReadingBytes;
      long percentReading=100 * totalTimeSpentReadingBytes / totalTime;
      long percentProcessing=100 * totalTimeSpentProcessingRecords / totalTime;
      LOG.info("String_Node_Str" + percentReading + "String_Node_Str"+ totalTimeSpentReadingBytes+ "String_Node_Str"+ percentProcessing+ "String_Node_Str"+ totalTimeSpentProcessingRecords+ "String_Node_Str");
    }
    final MemPageStore memPageStore=new MemPageStore();
    columnsStore=new MemColumnsStore(0,memPageStore,8 * 1024);
    LOG.info("String_Node_Str");
    long t0=System.currentTimeMillis();
    long count=reader.readColumns(new PageConsumer(){
      public void consumePage(      String[] path,      int valueCount,      InputStream is,      int pageSize){
        PageWriter pageWriter=memPageStore.getPageWriter(requestedSchema.getColumnDescription(path));
        pageWriter.writePage(BytesInput.from(is,pageSize),valueCount);
      }
    }
);
    if (count == 0) {
      return;
    }
    long timeSpentReading=System.currentTimeMillis() - t0;
    totalTimeSpentReadingBytes+=timeSpentReading;
    LOG.info("String_Node_Str" + timeSpentReading + "String_Node_Str");
    MessageColumnIO columnIO=columnIOFactory.getColumnIO(requestedSchema);
    recordReader=columnIO.getRecordReader(columnsStore,readSupport.newRecordConsumer());
    startedReadingCurrentBlockAt=System.currentTimeMillis();
    currentBlockRecordCount=count;
  }
}

Fixed version (ground truth):
private void checkRead() throws IOException {
  if (columnsStore == null || current == total) {
    if (columnsStore != null) {
      long timeAssembling=System.currentTimeMillis() - startedReadingCurrentBlockAt;
      totalTimeSpentProcessingRecords+=timeAssembling;
      LOG.info("String_Node_Str" + currentBlockRecordCount + "String_Node_Str"+ timeAssembling+ "String_Node_Str"+ ((float)currentBlockRecordCount / timeAssembling)+ "String_Node_Str");
      long totalTime=totalTimeSpentProcessingRecords + totalTimeSpentReadingBytes;
      long percentReading=100 * totalTimeSpentReadingBytes / totalTime;
      long percentProcessing=100 * totalTimeSpentProcessingRecords / totalTime;
      LOG.info("String_Node_Str" + percentReading + "String_Node_Str"+ totalTimeSpentReadingBytes+ "String_Node_Str"+ percentProcessing+ "String_Node_Str"+ totalTimeSpentProcessingRecords+ "String_Node_Str");
    }
    final MemPageStore memPageStore=new MemPageStore();
    LOG.info("String_Node_Str");
    long t0=System.currentTimeMillis();
    long count=reader.readColumns(new PageConsumer(){
      public void consumePage(      String[] path,      int valueCount,      InputStream is,      int pageSize){
        if (DEBUG)         LOG.debug("String_Node_Str" + Arrays.toString(path) + "String_Node_Str"+ valueCount+ "String_Node_Str"+ pageSize+ "String_Node_Str");
        PageWriter pageWriter=memPageStore.getPageWriter(requestedSchema.getColumnDescription(path));
        pageWriter.writePage(BytesInput.from(is,pageSize),valueCount);
      }
    }
);
    if (count == 0) {
      return;
    }
    columnsStore=new MemColumnsStore(0,memPageStore,8 * 1024);
    long timeSpentReading=System.currentTimeMillis() - t0;
    totalTimeSpentReadingBytes+=timeSpentReading;
    LOG.info("String_Node_Str" + timeSpentReading + "String_Node_Str"+ count);
    MessageColumnIO columnIO=columnIOFactory.getColumnIO(requestedSchema);
    recordReader=columnIO.getRecordReader(columnsStore,readSupport.newRecordConsumer());
    startedReadingCurrentBlockAt=System.currentTimeMillis();
    currentBlockRecordCount=count;
  }
}