You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jira@kafka.apache.org by "John Roesler (Jira)" <ji...@apache.org> on 2020/06/26 02:59:00 UTC

[jira] [Commented] (KAFKA-10203) Rolling upgrade from 2.1.1 to trunk (2.7.x) doesn't work

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

John Roesler commented on KAFKA-10203:
--------------------------------------

I'm not marking it as a blocker because this may have been lurking for quite some time. Once I backport the new tests, I'll be able to fill in the "affected versions" and fully answer this question.

Also, there is a migration path. I do observe that upgrades work from 2.2.2 to trunk, and so forth for all the later releases. So theoretically, one could upgrade from 2.1.1 to 2.2.2 and then to trunk.

Alternatively, a full cluster bounce should work from 2.1.1 to trunk. The problem seems to be some miscommunication in the task assignment protocol.

> Rolling upgrade from 2.1.1 to trunk (2.7.x) doesn't work
> --------------------------------------------------------
>
>                 Key: KAFKA-10203
>                 URL: https://issues.apache.org/jira/browse/KAFKA-10203
>             Project: Kafka
>          Issue Type: Bug
>    Affects Versions: 2.6.0
>            Reporter: John Roesler
>            Priority: Major
>
> As part of KAFKA-10173, I converted the upgrade test to use the SmokeTest application and also added new upgrade paths, including from 2.1.1 to trunk.
> It is a rolling bounce scenario.
> After the first instance upgrades from 2.1.1 to trunk, I observe the following on _both_ instances that are still on 2.1.1:
> {code:java}
> org.apache.kafka.streams.errors.TaskAssignmentException: stream-thread [SmokeTest-ed7632fc-3465-4534-8a26-2f6ad76ff80f-StreamThread-2-consumer] Number of assigned partitions 11 is not equal to the number of active taskIds 7, assignmentInfo=[version=4, supported version=4, active tasks=[0_0, 0_2, 2_0, 1_1, 1_3, 2_2, 3_3], standby tasks={0_0=[data-0], 1_0=[max-0, min-0], 0_1=[data-1], 0_2=[data-2], 2_0=[sum-0, cnt-0], 1_1=[max-1, min-1], 1_2=[min-2, max-2], 0_3=[data-3], 2_1=[cnt-1, sum-1], 3_0=[SmokeTest-cntByCnt-repartition-0], 0_4=[data-4], 3_1=[SmokeTest-cntByCnt-repartition-1], 2_2=[cnt-2, sum-2], 1_3=[min-3, max-3], 3_2=[SmokeTest-cntByCnt-repartition-2], 1_4=[max-4, min-4], 2_3=[sum-3, cnt-3], 2_4=[sum-4, cnt-4], 3_3=[SmokeTest-cntByCnt-repartition-3], 3_4=[SmokeTest-cntByCnt-repartition-4]}, global assignment={}]
> 	at org.apache.kafka.streams.processor.internals.StreamsPartitionAssignor.processVersionOneAssignment(StreamsPartitionAssignor.java:892)
> 	at org.apache.kafka.streams.processor.internals.StreamsPartitionAssignor.processVersionTwoAssignment(StreamsPartitionAssignor.java:908)
> 	at org.apache.kafka.streams.processor.internals.StreamsPartitionAssignor.processVersionThreeAssignment(StreamsPartitionAssignor.java:925)
> 	at org.apache.kafka.streams.processor.internals.StreamsPartitionAssignor.processVersionFourAssignment(StreamsPartitionAssignor.java:932)
> 	at org.apache.kafka.streams.processor.internals.StreamsPartitionAssignor.onAssignment(StreamsPartitionAssignor.java:872)
> 	at org.apache.kafka.clients.consumer.internals.ConsumerCoordinator.onJoinComplete(ConsumerCoordinator.java:281)
> 	at org.apache.kafka.clients.consumer.internals.AbstractCoordinator.joinGroupIfNeeded(AbstractCoordinator.java:406)
> 	at org.apache.kafka.clients.consumer.internals.AbstractCoordinator.ensureActiveGroup(AbstractCoordinator.java:340)
> 	at org.apache.kafka.clients.consumer.internals.ConsumerCoordinator.poll(ConsumerCoordinator.java:341)
> 	at org.apache.kafka.clients.consumer.KafkaConsumer.updateAssignmentMetadataIfNeeded(KafkaConsumer.java:1214)
> 	at org.apache.kafka.clients.consumer.KafkaConsumer.poll(KafkaConsumer.java:1179)
> 	at org.apache.kafka.clients.consumer.KafkaConsumer.poll(KafkaConsumer.java:1164)
> 	at org.apache.kafka.streams.processor.internals.StreamThread.pollRequests(StreamThread.java:913)
> 	at org.apache.kafka.streams.processor.internals.StreamThread.runOnce(StreamThread.java:818)
> 	at org.apache.kafka.streams.processor.internals.StreamThread.runLoop(StreamThread.java:777)
> 	at org.apache.kafka.streams.processor.internals.StreamThread.run(StreamThread.java:747)
> {code}
> the other 2.1.1 instance reports the same exception, with "Number of assigned partitions 9 is not equal to the number of active taskIds 6"



--
This message was sent by Atlassian Jira
(v8.3.4#803005)