Tim Carey-Smith created KAFKA-3894:
--------------------------------------
Summary: Log Cleaner thread crashes and never restarts
Key: KAFKA-3894
URL: https://issues.apache.org/jira/browse/KAFKA-3894
Project: Kafka
Issue Type: Bug
Components: core
Affects Versions: 0.9.0.1, 0.8.2.2
Environment: Oracle JDK 8
Ubuntu Precise
Reporter: Tim Carey-Smith
The log-cleaner thread can crash if the number of keys in a topic grows to be
too large to fit into the dedupe buffer.
The result of this is a log line:
{quote}
broker=0 pri=ERROR t=kafka-log-cleaner-thread-0 at=LogCleaner
\[kafka-log-cleaner-thread-0\], Error due to
java.lang.IllegalArgumentException: requirement failed: 9750860 messages in
segment MY_FAVORITE_TOPIC-2/00000000000047580165.log but offset map can fit
only 5033164. You can increase log.cleaner.dedupe.buffer.size or decrease
log.cleaner.threads
{quote}
As a result, the broker is left in a potentially dangerous situation where
cleaning of compacted topics is not running.
It is unclear if the broader strategy for the {{LogCleaner}} is the reason for
this upper bound, or if this is a value which must be tuned for each specific
use-case.
Of more immediate concern is the fact that the thread crash is not visible via
JMX or exposed as some form of service degradation.
Some short-term remediations we have made are:
* increasing the size of the dedupe buffer
* monitoring the log-cleaner threads inside the JVM
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)