ableegoldman commented on a change in pull request #10387: URL: https://github.com/apache/kafka/pull/10387#discussion_r600044638
########## File path: streams/src/main/java/org/apache/kafka/streams/KafkaStreams.java ########## @@ -492,22 +492,18 @@ private void handleStreamsUncaughtException(final Throwable throwable, closeToError(); break; case SHUTDOWN_APPLICATION: + if (getNumLiveStreamThreads() <= 1) { + log.warn("Adding thread to communicate the shutdown. No processing will be done on this thread"); + addStreamThread(); + } if (throwable instanceof Error) { log.error("This option requires running threads to shut down the application." + "but the uncaught exception was an Error, which means this runtime is no " + "longer in a well-defined state. Attempting to send the shutdown command anyway.", throwable); } - - if (Thread.currentThread().equals(globalStreamThread) && getNumLiveStreamThreads() == 0) { - log.error("Exception in global thread caused the application to attempt to shutdown." + Review comment: WDYT about just checking for the case of a global-only topology before the `switch` statement, and just automatically invoking `closeToError()` with a warning that the other options are not supported in this case? We should also file an improvement ticket for the "restart the global thread" feature, if we don't already have one -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org