You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jira@kafka.apache.org by "Matthias J. Sax (JIRA)" <ji...@apache.org> on 2019/02/21 18:23:00 UTC

[jira] [Comment Edited] (KAFKA-7970) Missing topic causes service shutdown without exception

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

Matthias J. Sax edited comment on KAFKA-7970 at 2/21/19 6:22 PM:
-----------------------------------------------------------------

You mean there is no exception coming from `KafkaStreams` object? That's correct and expected, because `KafkaStreams` starts background threads (StreamThread) and the exception is only thrown on the thread. Java cannot populate exceptions from one thread to another.

However, you can register a handler to get a callback when a thread dies due to an exception: Cf [https://kafka.apache.org/documentation/streams/developer-guide/write-streams.html], ie, `KafkaStreams#setUncaughtExceptionHandler()`

Furthermore, you can listen to state changes via `KafkaStreams#setStateListener()`.

This should allow you to react to this event and shut down your application. Let us know if this answers your question. I think that this ticket should be closed as "not a problem".


was (Author: mjsax):
You mean there is no exception coming from `KafkaStreams` object? That's correct and expected, because `KafkaStreams` starts back ground thread (StreamThread) and the exception is only thrown on the thread. Java cannot populate exceptions from one thread to another.

However, you can register an handler to get a callback when a thread dies due to an exception: Cf [https://kafka.apache.org/documentation/streams/developer-guide/write-streams.html], ie, `KafkaStreams#setUncaughtExceptionHandler()`

Furthermore, you can listen to state changes via `KafkaStreams#setStateListener()`.

This should allow you to react to this event and shut down your application. Let us know if this answers you question. I think that this ticket should be close as "not a problem".

> Missing topic causes service shutdown without exception
> -------------------------------------------------------
>
>                 Key: KAFKA-7970
>                 URL: https://issues.apache.org/jira/browse/KAFKA-7970
>             Project: Kafka
>          Issue Type: Bug
>          Components: streams
>    Affects Versions: 2.1.0
>            Reporter: Jonny Heavey
>            Priority: Minor
>
> When launching a KafkaStreams application that depends on a topic that doesn't exist, the streams application correctly logs an error such as:
> "<TOPIC_NAME> is unknown yet during rebalance, please make sure they have been pre-created before starting the Streams application."
> The stream is then shutdown, however, no exception is thrown indicating that an error has occurred.
> In our circumstances, we run our streams app inside a container. The streams service is shutdown, but the process is not exited, meaning that the container does not crash (reducing visibility of the issue).
> As no exception is thrown in the missing topic scenario described above, our application code has no way to determine that something is wrong that would then allow it to terminate the process.
>  
> Could the onPartitionsAssigned method in StreamThread.java throw an exception when it decides to shutdown the stream (somewhere around line 264)?



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)