[ 
https://issues.apache.org/jira/browse/KAFKA-17375?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Chia-Ping Tsai resolved KAFKA-17375.
------------------------------------
    Fix Version/s: 4.5.0
       Resolution: Fixed

> Partition reassignment cannot proceed after segment.bytes change
> ----------------------------------------------------------------
>
>                 Key: KAFKA-17375
>                 URL: https://issues.apache.org/jira/browse/KAFKA-17375
>             Project: Kafka
>          Issue Type: Bug
>          Components: core
>    Affects Versions: 3.7.1
>            Reporter: Tommi Vainikainen
>            Priority: Major
>             Fix For: 4.5.0
>
>
> If a topic's dynamic configuration `segment.bytes` is changed to smaller 
> value than existing messages, Kafka cannot anymore handle partition 
> reassignment between brokers for given topic.
> Current behaviour causes Kafka to throw `{_}RecordBatchTooLargeException{_}` 
> if during partition reassignment the topic contains messages larger than 
> current `segment.bytes`.
> Expected behaviour: Kafka should proceed with partition reassignment for all 
> existing messages. `{_}segment.bytes{_}` should only limit producing new 
> messages from clients.
> Steps to reproduce:
> 1. Start multi node cluster.
> 2. Create a single partition topic and produce a message of size 512 kb into 
> it
> 3. Alter dynamic topic configuration with `segment.bytes`value less than 512 
> kb.
> _./bin/kafka-configs.sh --bootstrap-server localhost:9092 --alter 
> --entity-type topics --entity-name my-test-topic --add-config 
> segment.bytes=500000_
> (Optionally verify that one cannot anymore produce 512 kb messages due 
> "{_}Delivery failed for message: Broker: Message batch larger than configured 
> server segment size{_}".)
> 4. Reassign this partition to another broker with kafka-reassign-partitions.sh
> 5. Observe error messages on broker node and ongoing reassignment getting 
> stuck
> {noformat}
> ERROR [ReplicaFetcher replicaId=3, leaderId=2, fetcherId=0] Unexpected error 
> occurred while processing data for partition my-test-topic-0 at offset 0 
> (kafka.server.ReplicaFetcherThread)
> org.apache.kafka.common.errors.RecordBatchTooLargeException: Message batch 
> size is 524360 bytes in append to partition my-test-topic-0, which exceeds 
> the maximum configured segment size of 500000.
> WARN [ReplicaFetcher replicaId=3, leaderId=2, fetcherId=0] Partition 
> my-test-topic-0 marked as failed (kafka.server.ReplicaFetcherThread)
> {noformat}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to