You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@apex.apache.org by "Vlad Rozov (JIRA)" <ji...@apache.org> on 2016/03/08 03:45:40 UTC

[jira] [Commented] (APEXCORE-374) Block with positive reference count is found during buffer server purge

    [ 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)