You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jira@kafka.apache.org by "Ted Yu (JIRA)" <ji...@apache.org> on 2017/11/03 01:00:16 UTC

[jira] [Comment Edited] (KAFKA-6164) ClientQuotaManager threads prevent shutdown when encountering an error loading logs

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

Ted Yu edited comment on KAFKA-6164 at 11/3/17 12:59 AM:
---------------------------------------------------------

ThrottledRequestReaper extends ShutdownableThread where
{code}
abstract class ShutdownableThread(val name: String, val isInterruptible: Boolean = true)
        extends Thread(name) with Logging {
  this.setDaemon(false)
{code}
should being daemon or not be passed to ShutdownableThread as a parameter ?


was (Author: yuzhihong@gmail.com):
ThrottledRequestReaper extends ShutdownableThread where
{code}
abstract class ShutdownableThread(val name: String, val isInterruptible: Boolean = true)
        extends Thread(name) with Logging {
  this.setDaemon(false)
{code}
should a subclass of ShutdownableThread with daemon being true be created ?

> ClientQuotaManager threads prevent shutdown when encountering an error loading logs
> -----------------------------------------------------------------------------------
>
>                 Key: KAFKA-6164
>                 URL: https://issues.apache.org/jira/browse/KAFKA-6164
>             Project: Kafka
>          Issue Type: Bug
>    Affects Versions: 0.11.0.0, 1.0.0
>            Reporter: Xavier Léauté
>            Priority: Major
>
> While diagnosing KAFKA-6163, we noticed that when the broker initiates a shutdown sequence in response to an error loading the logs, the process never exits. The JVM appears to be waiting indefinitely for several non-deamon threads to terminate.
> The threads in question are {{ThrottledRequestReaper-Request}}, {{ThrottledRequestReaper-Produce}}, and {{ThrottledRequestReaper-Fetch}}, so it appears we don't properly shutdown {{ClientQuotaManager}} in this situation.
> QuotaManager shutdown is currently handled by KafkaApis, however KafkaApis will never be instantiated in the first place if we encounter an error loading the logs, so quotamangers are left dangling in that case.



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