[ https://issues.apache.org/jira/browse/KAFKA-17113?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Ao Li updated KAFKA-17113: -------------------------- Description: The `shouldThrowStreamsExceptionOnStartupIfExceptionOccurred` test expects ` globalStreamThread.start` throws `startupException` when startup fails. This may not be true in some slow machines. ``` class GlobalStreamThread { Exception startupException; void initialize() { try { ... } catch (Exception e) { startupException = e; } ... setState(State.DEAD); } void start() { super.start(); while (stillInitializing()) { Utils.sleep(1); if (startupException != null) { throw startupexception; } } if (inErrorState()) { throw new IllegalStateException("Initialization for the global stream thread failed"); } } } ``` Consider the following schedule: ``` main:start:`startupException != null` GlobalStreamThread:initialize:`startupException = e;` GlobalStreamThread:initialize:`setState(State.DEAD);` main:start:`inErrorState()` main:start:`throw new IllegalStateException` ``` The function throws `IllegalStateException("Initialization for the global stream thread failed")` instead of `startupexception` was: The `shouldThrowStreamsExceptionOnStartupIfExceptionOccurred` test expects ` globalStreamThread.start` throws `startupException` when startup fails. This may not be true in some slow machines. ``` class GlobalStreamThread { Exception startupException; void initialize() { try { ... } catch (Exception e) { startupException = e; } ... setState(State.DEAD); } void start() { super.start(); while (stillInitializing()) { Utils.sleep(1); if (startupException != null) { throw startupexception; } } if (inErrorState()) { throw new IllegalStateException("Initialization for the global stream thread failed"); } } } ``` Consider the following interleaving: ``` main:start:19 GlobalStreamThread:initialize:7 GlobalStreamThread:initialize:10 main:start:24 main:start:25 ``` The function throws `IllegalStateException("Initialization for the global stream thread failed")` instead of `startupexception` > Flaky Test in > GlobalStreamThreadTest#shouldThrowStreamsExceptionOnStartupIfExceptionOccurred > -------------------------------------------------------------------------------------------- > > Key: KAFKA-17113 > URL: https://issues.apache.org/jira/browse/KAFKA-17113 > Project: Kafka > Issue Type: Bug > Components: streams > Reporter: Ao Li > Priority: Minor > > The `shouldThrowStreamsExceptionOnStartupIfExceptionOccurred` test expects ` > globalStreamThread.start` throws `startupException` when startup fails. This > may not be true in some slow machines. > > ``` > class GlobalStreamThread { > Exception startupException; > void initialize() { > try { > ... > } catch (Exception e) { > startupException = e; > } > ... > setState(State.DEAD); > } > void start() { > super.start(); > while (stillInitializing()) { > Utils.sleep(1); > if (startupException != null) { > throw startupexception; > } > } > if (inErrorState()) { > throw new IllegalStateException("Initialization for the global stream > thread failed"); > } > } > } > ``` > Consider the following schedule: > ``` > main:start:`startupException != null` > GlobalStreamThread:initialize:`startupException = e;` > GlobalStreamThread:initialize:`setState(State.DEAD);` > main:start:`inErrorState()` > main:start:`throw new IllegalStateException` > ``` > > The function throws `IllegalStateException("Initialization for the global > stream thread failed")` instead of `startupexception` -- This message was sent by Atlassian Jira (v8.20.10#820010)