Program: 162812
Project: 162812
Buggy source:
private int checkEntry(long searchKey,long entryPos,int segmentIndex){
  Logger log=lh.LOG;
  VanillaChronicleHash<?,?,?,?> h=mh.h();
  if (entryPos < 0 || entryPos >= h.actualChunksPerSegmentTier) {
    log.error("String_Node_Str",entryPos,h.actualChunksPerSegmentTier - 1);
  }
  try {
    e.readExistingEntry(entryPos);
  }
 catch (  Exception e) {
    log.error("String_Node_Str",e);
    return -1;
  }
  if (e.keyEnd() > s.segmentBytes.capacity()) {
    log.error("String_Node_Str",e.keySize);
    return -1;
  }
  long keyHashCode=khc.keyHashCode();
  int segmentIndexFromKey=h.hashSplitting.segmentIndex(keyHashCode);
  if (segmentIndexFromKey < 0 || segmentIndexFromKey >= h.actualSegments) {
    log.error("String_Node_Str" + "String_Node_Str",segmentIndexFromKey,h.actualSegments - 1,e.key());
    return -1;
  }
  long segmentHashFromKey=h.hashSplitting.segmentHash(keyHashCode);
  long searchKeyFromKey=h.hashLookup.maskUnsetKey(segmentHashFromKey);
  if (searchKey != searchKeyFromKey) {
    log.error("String_Node_Str" + "String_Node_Str",searchKey,searchKeyFromKey,e.key());
    return -1;
  }
  try {
    long entryAndChecksumEnd=e.entryEnd() + e.checksumStrategy.extraEntryBytes();
    if (entryAndChecksumEnd > s.segmentBytes.capacity()) {
      log.error("String_Node_Str",e.valueSize,e.key());
      return -1;
    }
  }
 catch (  Exception ex) {
    log.error("String_Node_Str",ex,e.key());
    return -1;
  }
  int storedChecksum=e.checksumStrategy.storedChecksum();
  int checksumFromEntry=e.checksumStrategy.computeChecksum();
  if (storedChecksum != checksumFromEntry) {
    log.error("String_Node_Str" + "String_Node_Str",storedChecksum,checksumFromEntry,e.key(),e.value());
    return -1;
  }
  if (!s.freeList.isRangeClear(entryPos,entryPos + e.entrySizeInChunks)) {
    log.error("String_Node_Str",entryPos,entryPos + e.entrySizeInChunks - 1,e.key(),e.value());
  }
  s.freeList.setRange(entryPos,entryPos + e.entrySizeInChunks);
  if (segmentIndex < 0) {
    return segmentIndexFromKey;
  }
 else {
    if (segmentIndex != segmentIndexFromKey) {
      log.error("String_Node_Str" + "String_Node_Str",segmentIndex,searchKeyFromKey,e.key(),e.value());
      return -1;
    }
 else {
      return segmentIndex;
    }
  }
}

Fixed version (ground truth):
private int checkEntry(long searchKey,long entryPos,int segmentIndex){
  Logger log=lh.LOG;
  VanillaChronicleHash<?,?,?,?> h=mh.h();
  if (entryPos < 0 || entryPos >= h.actualChunksPerSegmentTier) {
    log.error("String_Node_Str",entryPos,h.actualChunksPerSegmentTier - 1);
    return -1;
  }
  try {
    e.readExistingEntry(entryPos);
  }
 catch (  Exception e) {
    log.error("String_Node_Str",e);
    return -1;
  }
  if (e.keyEnd() > s.segmentBytes.capacity()) {
    log.error("String_Node_Str",e.keySize);
    return -1;
  }
  long keyHashCode=khc.keyHashCode();
  int segmentIndexFromKey=h.hashSplitting.segmentIndex(keyHashCode);
  if (segmentIndexFromKey < 0 || segmentIndexFromKey >= h.actualSegments) {
    log.error("String_Node_Str" + "String_Node_Str",segmentIndexFromKey,h.actualSegments - 1,e.key());
    return -1;
  }
  long segmentHashFromKey=h.hashSplitting.segmentHash(keyHashCode);
  long searchKeyFromKey=h.hashLookup.maskUnsetKey(segmentHashFromKey);
  if (searchKey != searchKeyFromKey) {
    log.error("String_Node_Str" + "String_Node_Str",searchKey,searchKeyFromKey,e.key());
    return -1;
  }
  try {
    long entryAndChecksumEnd=e.entryEnd() + e.checksumStrategy.extraEntryBytes();
    if (entryAndChecksumEnd > s.segmentBytes.capacity()) {
      log.error("String_Node_Str",e.valueSize,e.key());
      return -1;
    }
  }
 catch (  Exception ex) {
    log.error("String_Node_Str",ex,e.key());
    return -1;
  }
  int storedChecksum=e.checksumStrategy.storedChecksum();
  int checksumFromEntry=e.checksumStrategy.computeChecksum();
  if (storedChecksum != checksumFromEntry) {
    log.error("String_Node_Str" + "String_Node_Str",storedChecksum,checksumFromEntry,e.key(),e.value());
    return -1;
  }
  if (!s.freeList.isRangeClear(entryPos,entryPos + e.entrySizeInChunks)) {
    log.error("String_Node_Str",entryPos,entryPos + e.entrySizeInChunks - 1,e.key(),e.value());
    return -1;
  }
  if (segmentIndex < 0) {
    return segmentIndexFromKey;
  }
 else {
    if (segmentIndex != segmentIndexFromKey) {
      log.error("String_Node_Str" + "String_Node_Str",segmentIndex,searchKeyFromKey,e.key(),e.value());
      return -1;
    }
 else {
      return segmentIndex;
    }
  }
}