You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jira@kafka.apache.org by "ASF GitHub Bot (JIRA)" <ji...@apache.org> on 2017/11/07 01:48:02 UTC

[jira] [Commented] (KAFKA-6179) RecordQueue.clear() does not clear MinTimestampTracker's maintained list

    [ https://issues.apache.org/jira/browse/KAFKA-6179?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16241331#comment-16241331 ] 

ASF GitHub Bot commented on KAFKA-6179:
---------------------------------------

GitHub user guozhangwang opened a pull request:

    https://github.com/apache/kafka/pull/4186

    [WIP] KAFKA-6179: Clear min timestamp tracker upon partition queue cleanup

    

You can merge this pull request into a Git repository by running:

    $ git pull https://github.com/guozhangwang/kafka K6179-cleanup-timestamp-tracker-on-clear

Alternatively you can review and apply these changes as the patch at:

    https://github.com/apache/kafka/pull/4186.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

    This closes #4186
    
----
commit c92eaa566334e8fe6f20a37f7196db807c4b01b2
Author: Guozhang Wang <wa...@gmail.com>
Date:   2017-11-07T01:46:14Z

    clear min timestamp tracker upon partition queue cleanup

----


> RecordQueue.clear() does not clear MinTimestampTracker's maintained list
> ------------------------------------------------------------------------
>
>                 Key: KAFKA-6179
>                 URL: https://issues.apache.org/jira/browse/KAFKA-6179
>             Project: Kafka
>          Issue Type: Bug
>          Components: streams
>    Affects Versions: 0.10.2.1, 0.11.0.1, 1.0.0
>            Reporter: Guozhang Wang
>            Assignee: Guozhang Wang
>
> When a stream task is being suspended, in {{RecordQueue.clear()}} we will clear the {{ArrayDeque fifoQueue}}, but we do not clear the {{MinTimestampTracker}}'s maintained list. As a result if the task gets resumed we will live with an empty {{fifoQueue}} while a populated {{tracker}}. And hence we use reference equality to check if the smallest timestamp record can be popped, we would never be able to pop any more records and hence effectively leading to memory leak.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)