[ https://issues.apache.org/jira/browse/KAFKA-6164?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16236900#comment-16236900 ]
Ted Yu commented on KAFKA-6164: ------------------------------- 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)