boolean verifyCRC() {
      if (!routerConfig.routerVerifyCrcForPutRequests || isMetadataChunk() || isCrcVerified) {
        return true;
      }
      Crc32 crc32 = new Crc32();
      for (ByteBuffer byteBuffer : buf.nioBuffers()) {
        crc32.update(byteBuffer);
      }
      isCrcVerified = true;
      logger.trace("Chunk Id {}, state {}, Original CRC {}, current CRC {}", chunkBlobId, state.name(),
          this.chunkCrc32.getValue(), crc32.getValue());
      return this.chunkCrc32.getValue() == crc32.getValue();
    }
@return {@code true} if CRC of the chunk buffer is same as one calculated in chunk filler thread
ambry-router/src/main/java/com/github/ambry/router/PutOperation.java