[ https://issues.apache.org/jira/browse/KAFKA-5818?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Matthias J. Sax updated KAFKA-5818: ----------------------------------- Affects Version/s: 0.11.0.0 > Kafka Stream state transitions not correct > ------------------------------------------ > > Key: KAFKA-5818 > URL: https://issues.apache.org/jira/browse/KAFKA-5818 > Project: Kafka > Issue Type: Bug > Components: streams > Affects Versions: 0.11.0.0 > Reporter: Matthias J. Sax > Assignee: Matthias J. Sax > > There is a race condition revealed by failing test > {{KafkaStreamsTest#testCannotStartTwise}}. It fails with: > {noformat} > java.lang.Exception: Unexpected exception, > expected<java.lang.IllegalStateException> but > was<java.lang.IllegalThreadStateException> > Caused by: java.lang.IllegalThreadStateException > at java.lang.Thread.start(Thread.java:705) > at org.apache.kafka.streams.KafkaStreams.start(KafkaStreams.java:590) > at > org.apache.kafka.streams.KafkaStreamsTest.testCannotStartTwice(KafkaStreamsTest.java:251) > {noformat} > The race condition is a follows: > 1) test calls {{KafkaStreams#start()}} for the first time and state transits > from CREATED -> RUNNING > 2) First poll triggers a rebalance and {{StreamThread}} put {{KafkaStreams}} > into state REBALANCING > 3) before REBALANCING completes, the main test thread calls > {{KafkaStream#start()}} again. As current state is REBALANCING, the > transition to RUNNING is valid and {{start()}} does not fail with > {{IllegalStateException}} but resumes. When it tries to start internal > streams, we get {{IllegalThreadStateException}} as thread are already running. -- This message was sent by Atlassian JIRA (v6.4.14#64029)