Hi, Enrico. Just confirm, only revert https://github.com/apache/bookkeeper/pull/3528, it work well?
> 2023年1月30日 16:04,Enrico Olivelli <eolive...@gmail.com> 写道: > > I think that we must do something, current master branch is not stable. > > My colleague Massimiliano opened this issue > https://github.com/apache/bookkeeper/issues/3751 > > Basically in the current master there is some problem that leads to > Netty BytBuf corruption. > > The problem is solved by reverting this PR > https://github.com/apache/bookkeeper/pull/3528 Fix memory leak when > reading entry but the connection disconnected > > Enrico > > Il giorno lun 30 gen 2023 alle ore 08:04 steven lu > <lushiji2...@gmail.com> ha scritto: >> >> There are three ways to write release in current pulsar and bookkeeper >> projects: >> 1.ByteBuf.release: Call release directly without handling any exceptions; >> 2.ReferenceCountUtil.release: return processing status; >> 3. ReferenceCountUtil.safeRelease: without return value, print exception >> information >> >> I don't think it is necessary to revert these PRs. We can discuss what is >> the correct way to release, and then modify these three ways into the >> correct way. >> >> Hang Chen <chenh...@apache.org> 于2023年1月30日周一 12:28写道: >> >>> 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 >>>