Trace errors that cause a consumer thread to exit
Log more details about the cause of the premature exit
of the Kafka consumer thread.
This helps Gerrit admininstrators to understand the root
cause of a problem where the Kafka consumer thread ends
prematurely and thus Gerrit is unable to consume message
from one or more topics.
Bug: Issue 12463
Change-Id: I968263b85ae8c8a7860fe41231caf4cc6e61c668
diff --git a/src/main/java/com/googlesource/gerrit/plugins/kafka/subscribe/KafkaEventSubscriber.java b/src/main/java/com/googlesource/gerrit/plugins/kafka/subscribe/KafkaEventSubscriber.java
index d925348..0e6a353 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/kafka/subscribe/KafkaEventSubscriber.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/kafka/subscribe/KafkaEventSubscriber.java
@@ -130,10 +130,13 @@
}
} catch (WakeupException e) {
// Ignore exception if closing
- if (!closed.get()) throw e;
+ if (!closed.get()) {
+ logger.atSevere().withCause(e).log("Consumer loop of topic %s interrupted", topic);
+ }
} catch (Exception e) {
subscriberMetrics.incrementSubscriberFailedToPollMessages();
- throw e;
+ logger.atSevere().withCause(e).log(
+ "Existing consumer loop of topic %s because of a non-recoverable exception", topic);
} finally {
consumer.close();
}