[
https://issues.apache.org/jira/browse/APEXCORE-374?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15184276#comment-15184276
]
Vlad Rozov commented on APEXCORE-374:
-------------------------------------
DataList has iterators hashmap that uses not unique keys (identifier). When
iterators from logicalNode that belong to the same partition are added to the
hashmap, only the last one will be present in the hashmap. On the teardown of
these logicalNodes only the last iterator will be properly closed leading to
the leak of reference counts.
> Block with positive reference count is found during buffer server purge
> -----------------------------------------------------------------------
>
> Key: APEXCORE-374
> URL: https://issues.apache.org/jira/browse/APEXCORE-374
> Project: Apache Apex Core
> Issue Type: Bug
> Affects Versions: 3.2.0
> Reporter: Tushar Gosavi
> Assignee: Vlad Rozov
>
> Saw this issue today with high load and MxN partitions on 3.2 branch.
> Exception in thread "ProcessWideEventLoop" java.lang.IllegalStateException:
> Discarded block
> com.datatorrent.bufferserver.internal.DataList$Block@7d614fb5{identifier=2.data.2,
> data=67108864, readingOffset=0, writingOffset=67108864,
> starting_window=56d95dfa00000a79, ending_window=56d95dfa00000a83, refCount=1,
> uniqueIdentifier=0, next=2.data.2,
> future=java.util.concurrent.FutureTask@7fb83461} has positive reference count!
> at
> com.datatorrent.bufferserver.internal.DataList.purge(DataList.java:196)
> at
> com.datatorrent.bufferserver.server.Server.handlePurgeRequest(Server.java:185)
> at
> com.datatorrent.bufferserver.server.Server.access$200(Server.java:66)
> at
> com.datatorrent.bufferserver.server.Server$UnidentifiedClient.onMessage(Server.java:478)
> at
> com.datatorrent.netlet.AbstractLengthPrependerClient.read(AbstractLengthPrependerClient.java:149)
> at
> com.datatorrent.bufferserver.server.Server$SeedDataClient.transferBuffer(Server.java:832)
> at
> com.datatorrent.bufferserver.server.Server$AuthClient.onMessage(Server.java:361)
> at
> com.datatorrent.netlet.AbstractLengthPrependerClient.read(AbstractLengthPrependerClient.java:149)
> at
> com.datatorrent.netlet.AbstractClient.read(AbstractClient.java:128)
> at
> com.datatorrent.netlet.DefaultEventLoop.handleSelectedKey(DefaultEventLoop.java:322)
> at
> com.datatorrent.netlet.OptimizedEventLoop$SelectedSelectionKeySet.forEach(OptimizedEventLoop.java:58)
> at
> com.datatorrent.netlet.OptimizedEventLoop.runEventLoop(OptimizedEventLoop.java:188)
> at
> com.datatorrent.netlet.OptimizedEventLoop.runEventLoop(OptimizedEventLoop.java:156)
> at
> com.datatorrent.netlet.DefaultEventLoop.run(DefaultEventLoop.java:119)
> at java.lang.Thread.run(Thread.java:745)
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)