apache / apache/bookkeeper

Netty leak detector logs "LEAK: ByteBuf.release() was not called before it's garbage-collected" in multiple unit test with BufferedChannel in the stack.

Open
#1,615 7 comments 0 reactions 0 assignees View on GitHub
area/bookie help wanted triage/week-8 type/bug
Dominant language
Java
Stars
2k
Forks
976
Avg merge
6d 15h
Merged PRs (30d)
7

Description

**BUG REPORT**

1. Please describe the issue you observed:

related to issues #1610 and #1614

- What did you do?

ran unit tests with netty's paranoid leak detectot enabled.

- What did you expect to see?

no leak

- What did you see instead?

multiple log entries like "LEAK: ByteBuf.release() was not called before it's garbage-collected"

ERROR - [pool-77-thread-1:Slf4JLogger@171] - LEAK: ByteBuf.release() was not called before it's garbage-collected. See http://netty.io/wiki/reference-counted-objects.html for more information.
Recent access records:
#1:
io.netty.buffer.AdvancedLeakAwareByteBuf.internalNioBuffer(AdvancedLeakAwareByteBuf.java:736)
org.apache.bookkeeper.bookie.BufferedChannel.flush(BufferedChannel.java:183)
org.apache.bookkeeper.bookie.BufferedChannel.flushAndForceWrite(BufferedChannel.java:157)
org.apache.bookkeeper.bookie.EntryLogManagerBase.flushLogChannel(EntryLogManagerBase.java:125)
org.apache.bookkeeper.bookie.EntryLogManagerForSingleEntryLog.flushCurrentLogs(EntryLogManagerForSingleEntryLog.java:170)
org.apache.bookkeeper.bookie.EntryLogManagerBase.flush(EntryLogManagerBase.java:119)
org.apache.bookkeeper.bookie.EntryLogger.flush(EntryLogger.java:601)
org.apache.bookkeeper.bookie.EntryLogger.shutdown(EntryLogger.java:1064)
org.apache.bookkeeper.bookie.InterleavedLedgerStorage.shutdown(InterleavedLedgerStorage.java:186)
org.apache.bookkeeper.bookie.SortedLedgerStorage.shutdown(SortedLedgerStorage.java:124)
org.apache.bookkeeper.bookie.Bookie.shutdown(Bookie.java:1106)
org.apache.bookkeeper.bookie.Bookie.shutdown(Bookie.java:1075)
org.apache.bookkeeper.proto.BookieServer.shutdown(BookieServer.java:201)
org.apache.bookkeeper.test.BookKeeperClusterTestCase.killBookie(BookKeeperClusterTestCase.java:406)

in multiple unit tests.

Maybe there are other stacks but ones I checked were all related to BufferedChannel.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.