Looking at isTransitionValid(): case ABORTING_TRANSACTION:
return source == IN_TRANSACTION || source == ABORTABLE_ERROR; The source state is not supposed to be READY. I don't see READY in the log you posted. Please consider logging a JIRA where you can attach logs. Cheers On Wed, Apr 4, 2018 at 2:49 AM, Frederic Arno <frederica...@gmail.com> wrote: > Hello, > > I running tests against kafka-streams 1.1 and get the following stack > trace (everything was working alright using kafka-streams 1.0): > > ERROR org.apache.kafka.streams.processor.internals.AssignedStreamsTasks - > stream-thread [feedBuilder-XXX-StreamThread-4] Failed to close stream > task, 0_2 > org.apache.kafka.common.KafkaException: TransactionalId feedBuilder-0_2: > Invalid transition attempted from state READY to state ABORTING_TRANSACTION > at org.apache.kafka.clients.producer.internals.TransactionManag > er.transitionTo(TransactionManager.java:757) > at org.apache.kafka.clients.producer.internals.TransactionManag > er.transitionTo(TransactionManager.java:751) > at org.apache.kafka.clients.producer.internals.TransactionManag > er.beginAbort(TransactionManager.java:230) > at org.apache.kafka.clients.producer.KafkaProducer.abortTransac > tion(KafkaProducer.java:660) > at org.apache.kafka.streams.processor.internals.StreamTask. > closeSuspended(StreamTask.java:486) > at org.apache.kafka.streams.processor.internals.StreamTask. > close(StreamTask.java:546) > at org.apache.kafka.streams.processor.internals.AssignedTasks.c > loseNonRunningTasks(AssignedTasks.java:166) > at org.apache.kafka.streams.processor.internals.AssignedTasks. > suspend(AssignedTasks.java:151) > at org.apache.kafka.streams.processor.internals.TaskManager.sus > pendTasksAndState(TaskManager.java:242) > at org.apache.kafka.streams.processor.internals.StreamThread$Re > balanceListener.onPartitionsRevoked(StreamThread.java:291) > at org.apache.kafka.clients.consumer.internals.ConsumerCoordina > tor.onJoinPrepare(ConsumerCoordinator.java:414) > at org.apache.kafka.clients.consumer.internals.AbstractCoordina > tor.joinGroupIfNeeded(AbstractCoordinator.java:359) > at org.apache.kafka.clients.consumer.internals.AbstractCoordina > tor.ensureActiveGroup(AbstractCoordinator.java:316) > at org.apache.kafka.clients.consumer.internals.ConsumerCoordina > tor.poll(ConsumerCoordinator.java:290) > at org.apache.kafka.clients.consumer.KafkaConsumer.pollOnce( > KafkaConsumer.java:1149) > at org.apache.kafka.clients.consumer.KafkaConsumer.poll(KafkaCo > nsumer.java:1115) > at org.apache.kafka.streams.processor.internals.StreamThread. > pollRequests(StreamThread.java:827) > at org.apache.kafka.streams.processor.internals.StreamThread. > runOnce(StreamThread.java:784) > at org.apache.kafka.streams.processor.internals.StreamThread. > runLoop(StreamThread.java:750) > at org.apache.kafka.streams.processor.internals.StreamThread. > run(StreamThread.java:720) > > > This happens when starting the same stream-processing application on 3 > JVMs all running on the same linux box, JVMs are named JVM-[2-4]. All 3 > instances use separate stream state.dir. No record is ever processed > because the input kafka topics are empty at this stage. > > JVM-2 starts first, joined shortly after by JVM-4 and JVM-3, find the > state transition logs below. The above stacktrace is from JVM-4 > > [JVM-2] stream-client [feedBuilder-XXX] State transition from RUNNING to > REBALANCING > [JVM-2] stream-client [feedBuilder-XXX] State transition from REBALANCING > to RUNNING > [JVM-4] stream-client [feedBuilder-XXX] State transition from RUNNING to > REBALANCING > [JVM-2] stream-client [feedBuilder-XXX] State transition from RUNNING to > REBALANCING > [JVM-2] stream-client [feedBuilder-XXX] State transition from REBALANCING > to RUNNING > [JVM-3] stream-client [feedBuilder-XXX] State transition from RUNNING to > REBALANCING > [JVM-2] stream-client [feedBuilder-XXX] State transition from RUNNING to > REBALANCING > JVM-4 crashes here with above stacktrace > [JVM-2] stream-client [feedBuilder-XXX] State transition from REBALANCING > to RUNNING > [JVM-4] stream-client [feedBuilder-XXX] State transition from REBALANCING > to ERROR > [JVM-4] stream-client [feedBuilder-XXX] State transition from ERROR to > PENDING_SHUTDOWN > [JVM-4] stream-client [feedBuilder-XXX] State transition from > PENDING_SHUTDOWN to NOT_RUNNING > [JVM-4] stream-client [feedBuilder-XXX] State transition from RUNNING to > REBALANCING > [JVM-3] stream-client [feedBuilder-XXX] State transition from REBALANCING > to RUNNING > [JVM-2] stream-client [feedBuilder-XXX] State transition from RUNNING to > REBALANCING > [JVM-3] stream-client [feedBuilder-XXX] State transition from RUNNING to > REBALANCING > [JVM-2] stream-client [feedBuilder-XXX] State transition from REBALANCING > to RUNNING > [JVM-3] stream-client [feedBuilder-XXX] State transition from REBALANCING > to RUNNING > [JVM-4] stream-client [feedBuilder-XXX] State transition from REBALANCING > to RUNNING > [JVM-2] stream-client [feedBuilder-XXX] State transition from RUNNING to > PENDING_SHUTDOWN > [JVM-3] stream-client [feedBuilder-XXX] State transition from RUNNING to > REBALANCING > [JVM-4] stream-client [feedBuilder-XXX] State transition from RUNNING to > REBALANCING > [JVM-2] stream-client [feedBuilder-XXX] State transition from > PENDING_SHUTDOWN to NOT_RUNNING > [JVM-4] stream-client [feedBuilder-XXX] State transition from REBALANCING > to RUNNING > [JVM-3] stream-client [feedBuilder-XXX] State transition from REBALANCING > to RUNNING > [JVM-3] stream-client [feedBuilder-XXX] State transition from RUNNING to > PENDING_SHUTDOWN > [JVM-4] stream-client [feedBuilder-XXX] State transition from RUNNING to > PENDING_SHUTDOWN > [JVM-3] stream-client [feedBuilder-XXX] State transition from > PENDING_SHUTDOWN to NOT_RUNNING > [JVM-4] stream-client [feedBuilder-XXX] State transition from > PENDING_SHUTDOWN to NOT_RUNNING > > > What should I do with that? > > Thanks, Fred >