Boyang Chen created KAFKA-9674:
----------------------------------
Summary: Task corruption should also close the producer if
necessary
Key: KAFKA-9674
URL: https://issues.apache.org/jira/browse/KAFKA-9674
Project: Kafka
Issue Type: Bug
Reporter: Boyang Chen
Assignee: Boyang Chen
The task revive call only transits the task to CREATED mode. It should handle
the recreation of task producer as well.
Sequence is like:
# Task hits out of range exception and throws CorruptedException
# Task producer closed along with the task
# Task revived and rebalance triggered
# Task was assigned back to the same thread
# Trying to use task producer will throw as it has already been closed.
The full log:
[2020-03-03T21:56:29-08:00]
(streams-soak-trunk-eos_soak_i-0eaa3f3a6a197f876_streamslog) [2020-03-04
05:56:29,070] WARN
[stream-soak-test-93df69e6-1d85-4b6a-81a1-c6d554693e3f-StreamThread-3]
stream-thread
[stream-soak-test-93df69e6-1d85-4b6a-81a1-c6d554693e3f-StreamThread-3]
Encountered org.apache.kafka.clients.consumer.OffsetOutOfRangeException
fetching records from restore consumer for partitions
[stream-soak-test-KSTREAM-AGGREGATE-STATE-STORE-0000000019-changelog-0], it is
likely that the consumer's position has fallen out of the topic partition
offset range because the topic was truncated or compacted on the broker,
marking the corresponding tasks as corrupted and re-initializing it later.
(org.apache.kafka.streams.processor.internals.StoreChangelogReader)
[2020-03-03T21:56:29-08:00]
(streams-soak-trunk-eos_soak_i-0eaa3f3a6a197f876_streamslog) [2020-03-04
05:56:29,071] WARN
[stream-soak-test-93df69e6-1d85-4b6a-81a1-c6d554693e3f-StreamThread-3]
stream-thread
[stream-soak-test-93df69e6-1d85-4b6a-81a1-c6d554693e3f-StreamThread-3] Detected
the states of tasks
\{1_0=[stream-soak-test-KSTREAM-AGGREGATE-STATE-STORE-0000000019-changelog-0]}
are corrupted. Will close the task as dirty and re-create and bootstrap from
scratch. (org.apache.kafka.streams.processor.internals.StreamThread)
[2020-03-03T21:56:30-08:00]
(streams-soak-trunk-eos_soak_i-0eaa3f3a6a197f876_streamslog) [2020-03-04
05:56:30,010] INFO
[stream-soak-test-93df69e6-1d85-4b6a-81a1-c6d554693e3f-StreamThread-3]
[Producer
clientId=stream-soak-test-93df69e6-1d85-4b6a-81a1-c6d554693e3f-StreamThread-3-1_0-producer,
transactionalId=stream-soak-test-1_0] Closing the Kafka producer with
timeoutMillis = 9223372036854775807 ms.
(org.apache.kafka.clients.producer.KafkaProducer)
[2020-03-03T21:56:30-08:00]
(streams-soak-trunk-eos_soak_i-0eaa3f3a6a197f876_streamslog) [2020-03-04
05:56:30,017] INFO
[stream-soak-test-93df69e6-1d85-4b6a-81a1-c6d554693e3f-StreamThread-3]
stream-thread
[stream-soak-test-93df69e6-1d85-4b6a-81a1-c6d554693e3f-StreamThread-3] task
[1_0] Closed clean (org.apache.kafka.streams.processor.internals.StreamTask)
[2020-03-03T21:56:22-08:00]
(streams-soak-trunk-eos_soak_i-0eaa3f3a6a197f876_streamslog) [2020-03-04
05:56:22,827] INFO
[stream-soak-test-93df69e6-1d85-4b6a-81a1-c6d554693e3f-StreamThread-3]
[Producer
clientId=stream-soak-test-93df69e6-1d85-4b6a-81a1-c6d554693e3f-StreamThread-3-1_0-producer,
transactionalId=stream-soak-test-1_0] Closing the Kafka producer with
timeoutMillis = 9223372036854775807 ms.
(org.apache.kafka.clients.producer.KafkaProducer)
[2020-03-03T21:56:22-08:00]
(streams-soak-trunk-eos_soak_i-0eaa3f3a6a197f876_streamslog) [2020-03-04
05:56:22,829] INFO
[stream-soak-test-93df69e6-1d85-4b6a-81a1-c6d554693e3f-StreamThread-3]
stream-thread
[stream-soak-test-93df69e6-1d85-4b6a-81a1-c6d554693e3f-StreamThread-3] task
[1_0] Closed dirty (org.apache.kafka.streams.processor.internals.StreamTask)
--
This message was sent by Atlassian Jira
(v8.3.4#803005)