kafka-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Ashish Kumar Singh (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (KAFKA-742) Existing directories under the Kafka data directory without any data cause process to not start
Date Sun, 14 Dec 2014 19:34:13 GMT

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

Ashish Kumar Singh commented on KAFKA-742:

Created RB: https://reviews.apache.org/r/29030/

bq. Are we enabling metrics logging by default? Are we creating the metrics dir even if metrics
logging is not enabled. This needs to be sanity checked...

metrics dir is created by a metrics reporter during its init, which is called by KafkaMetricsReporter
only if the reported is registered.

bq. If there are bogus directories under the log directory I think the right thing to do is
to give a better error message (something like "Found directory /x/y/z, 'z' is not in the
form topic-partition")

parseTopicPartitionName only gets log directory name and not the path. I can make changes
for it to receive directory path rather than just the name. However, I think just specifying
that dir "some_dir" is not in the form topic-partition should be good enough. Let me know
if you guys think otherwise. Other possible solution is I can catch the exception thrown by
parseTopicPartitionName in the caller, which has the path for dir, and throw exception with
full path of the dir.

> Existing directories under the Kafka data directory without any data cause process to
not start
> -----------------------------------------------------------------------------------------------
>                 Key: KAFKA-742
>                 URL: https://issues.apache.org/jira/browse/KAFKA-742
>             Project: Kafka
>          Issue Type: Bug
>          Components: config
>    Affects Versions: 0.8.0
>            Reporter: Chris Curtin
>            Assignee: Ashish Kumar Singh
>             Fix For: 0.8.3
> I incorrectly setup the configuration file to have the metrics go to /var/kafka/metrics
while the logs were in /var/kafka. On startup I received the following error then the daemon
> 30   [main] INFO  kafka.log.LogManager  - [Log Manager on Broker 0] Loading log 'metrics'
> 32   [main] FATAL kafka.server.KafkaServerStartable  - Fatal error during KafkaServerStable
startup. Prepare to shutdown
> java.lang.StringIndexOutOfBoundsException: String index out of range: -1
>         at java.lang.String.substring(String.java:1937)
>         at kafka.log.LogManager.kafka$log$LogManager$$parseTopicPartitionName(LogManager.scala:335)
>         at kafka.log.LogManager$$anonfun$loadLogs$1$$anonfun$apply$3.apply(LogManager.scala:112)
>         at kafka.log.LogManager$$anonfun$loadLogs$1$$anonfun$apply$3.apply(LogManager.scala:109)
>         at scala.collection.IndexedSeqOptimized$class.foreach(IndexedSeqOptimized.scala:34)
>         at scala.collection.mutable.ArrayOps.foreach(ArrayOps.scala:34)
>         at kafka.log.LogManager$$anonfun$loadLogs$1.apply(LogManager.scala:109)
>         at kafka.log.LogManager$$anonfun$loadLogs$1.apply(LogManager.scala:101)
>         at scala.collection.IndexedSeqOptimized$class.foreach(IndexedSeqOptimized.scala:34)
>         at scala.collection.mutable.WrappedArray.foreach(WrappedArray.scala:32)
>         at kafka.log.LogManager.loadLogs(LogManager.scala:101)
>         at kafka.log.LogManager.<init>(LogManager.scala:62)
>         at kafka.server.KafkaServer.startup(KafkaServer.scala:59)
>         at kafka.server.KafkaServerStartable.startup(KafkaServerStartable.scala:34)
>         at kafka.Kafka$.main(Kafka.scala:46)
>         at kafka.Kafka.main(Kafka.scala)
> 34   [main] INFO  kafka.server.KafkaServer  - [Kafka Server 0], shutting down
> This was on a brand new cluster so no data or metrics logs existed yet.
> Moving the metrics to their own directory (not a child of the logs) allowed the daemon
to start.
> Took a few minutes to figure out what was wrong.

This message was sent by Atlassian JIRA

View raw message