2018-03-15 12:02 GMT+01:00 Enrico Olivelli <eolive...@gmail.com>:

>
>
> 2018-03-15 11:13 GMT+01:00 Ivan Kelly <iv...@apache.org>:
>
>> > What is the difference in Channel#write/ByteBuf pooling.....in Java 9 ?
>> Sounds like it could be an issue in netty itself. Java 9 removed a
>> bunch of stuff around Unsafe, which I'm pretty sure netty was using
>> for ByteBuf. Have you tried setting the pool debugging to paranoid?
>>
>> -Dio.netty.leakDetection.level=paranoid
>>
>
>
> only with 'advanced' , sorry. I will try again with paranoid
>
> I have tried to attach my laptop to the same BK cluster and create a
> reproducer client, no results !! Bookies do not break!
> it seems that the error is only between the machines of that group
> (network)
>
> It seems something very weird, maybe a mix of message size/network
> settings/Java GC (pooled ByteBuf heap bufs are released on finalize() as
> far as I have understood from Netty logs)
>
> I hope that with 'paranoid' I will have some more stacktrace to have code
> references
>


I am playing now with io.netty.uninitializedArrayAllocationThreshold which
is a new feature in Java 9 and it deals with byte[] which are not set to
zeros (so can be compatilble with unexpected contents)

With "paranoid" log in Netty I found this that is very interesting, but it
happens even on Java 8.

Enrico


8-03-16-09-13-49    LEAK: ByteBuf.release() was not called before it's
garbage-collected. See http://netty.io/wiki/reference-counted-objects.html
for more information.
WARNING: 1 leak records were discarded because the leak record count is
limited to 4. Use system property io.netty.leakDetection.maxRecords to
increase the limit.
Recent access records: 5
#5:

io.netty.buffer.AdvancedLeakAwareByteBuf.readLong(AdvancedLeakAwareByteBuf.java:444)

org.apache.bookkeeper.bookie.InterleavedLedgerStorage.getLastAddConfirmed(InterleavedLedgerStorage.java:245)

org.apache.bookkeeper.bookie.LedgerDescriptorImpl.getLastAddConfirmed(LedgerDescriptorImpl.java:154)

org.apache.bookkeeper.bookie.Bookie.readLastAddConfirmed(Bookie.java:1432)

org.apache.bookkeeper.proto.ReadEntryProcessorV3.readEntry(ReadEntryProcessorV3.java:182)

org.apache.bookkeeper.proto.ReadEntryProcessorV3.readEntry(ReadEntryProcessorV3.java:152)

org.apache.bookkeeper.proto.ReadEntryProcessorV3.getReadResponse(ReadEntryProcessorV3.java:215)

org.apache.bookkeeper.proto.ReadEntryProcessorV3.executeOp(ReadEntryProcessorV3.java:258)

org.apache.bookkeeper.proto.ReadEntryProcessorV3.safeRun(ReadEntryProcessorV3.java:254)
    org.apache.bookkeeper.common.util.SafeRunnable.run(SafeRunnable.java:36)
    java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
    java.util.concurrent.FutureTask.run(FutureTask.java:266)

java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)

java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)

java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)

java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    java.lang.Thread.run(Thread.java:748)


Created at:
    io.netty.util.ResourceLeakDetector.track(ResourceLeakDetector.java:237)

io.netty.buffer.PooledByteBufAllocator.newDirectBuffer(PooledByteBufAllocator.java:331)

io.netty.buffer.AbstractByteBufAllocator.directBuffer(AbstractByteBufAllocator.java:181)
    org.apache.bookkeeper.bookie.EntryLogger.readEntry(EntryLogger.java:990)

org.apache.bookkeeper.bookie.InterleavedLedgerStorage.getEntry(InterleavedLedgerStorage.java:303)

org.apache.bookkeeper.bookie.SortedLedgerStorage.getLastEntryId(SortedLedgerStorage.java:140)

org.apache.bookkeeper.bookie.SortedLedgerStorage.getEntry(SortedLedgerStorage.java:146)

org.apache.bookkeeper.bookie.InterleavedLedgerStorage.getLastAddConfirmed(InterleavedLedgerStorage.java:239)

org.apache.bookkeeper.bookie.LedgerDescriptorImpl.getLastAddConfirmed(LedgerDescriptorImpl.java:154)

org.apache.bookkeeper.bookie.Bookie.readLastAddConfirmed(Bookie.java:1432)

org.apache.bookkeeper.proto.ReadEntryProcessorV3.readEntry(ReadEntryProcessorV3.java:182)

org.apache.bookkeeper.proto.ReadEntryProcessorV3.readEntry(ReadEntryProcessorV3.java:152)

org.apache.bookkeeper.proto.ReadEntryProcessorV3.getReadResponse(ReadEntryProcessorV3.java:215)

org.apache.bookkeeper.proto.ReadEntryProcessorV3.executeOp(ReadEntryProcessorV3.java:258)

org.apache.bookkeeper.proto.ReadEntryProcessorV3.safeRun(ReadEntryProcessorV3.java:254)
    org.apache.bookkeeper.common.util.SafeRunnable.run(SafeRunnable.java:36)
    java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
    java.util.concurrent.FutureTask.run(FutureTask.java:266)

java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)

java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)

java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)

java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    java.lang.Thread.run(Thread.java:748)






>
> Thank you
>
> Enrico
>
>
>>
>> i tried running my attempted repro in java9, but no cigar.
>>
>>
>> -Ivan
>>
>
>

Reply via email to