Hi guys,
   In BP-59, which was not discussed in the dev mail list and without
a vote, refactored the ByteBuf release method by
ReferenceCountUtil.safeRelease() instead of ByteBuf.release().

In the `ReferenceCountUtil.safeRelease()`, it catches the release
exception. This change can make the ByteBuf release without any
exceptions and makes the code run well, but it will make bugs hide
deeper and more challenging to find out.
   ```java
   public static void safeRelease(Object msg) {
        try {
            release(msg);
        } catch (Throwable t) {
            logger.warn("Failed to release a message: {}", msg, t);
        }
    }
   ```
For example, if there is a bug to release the ByteBuf twice, whose
refcnt is 1, we can find out the bug quickly if we use
ByteBuf.release(), but the bug will be hard to find out if we use
`ReferenceCountUtil.safeRelease()`

There are 12 PRs to refactor the ByteBuf release method, and I suggest
reverting those PRs. Do you have any ideas?

https://github.com/apache/bookkeeper/pull/3673
https://github.com/apache/bookkeeper/pull/3674
https://github.com/apache/bookkeeper/pull/3687
https://github.com/apache/bookkeeper/pull/3688
https://github.com/apache/bookkeeper/pull/3689
https://github.com/apache/bookkeeper/pull/3691
https://github.com/apache/bookkeeper/pull/3693
https://github.com/apache/bookkeeper/pull/3694
https://github.com/apache/bookkeeper/pull/3695
https://github.com/apache/bookkeeper/pull/3698
https://github.com/apache/bookkeeper/pull/3700
https://github.com/apache/bookkeeper/pull/3703


Thanks,
Hang

Reply via email to