synchronized void releaseBlobContent() {
      if (buf != null) {
        logger.trace("{}: releasing the chunk data for chunk {}", loggingContext, chunkIndex);
        ReferenceCountUtil.safeRelease(buf);
        buf = null;
        chunkCrc32.reset();
        isCrcVerified = false;
      }
    }
This method might be called in main thread, encryption job thread or chunk filler thread, so it has to be protected.
ambry-router/src/main/java/com/github/ambry/router/PutOperation.java