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

FliegenKLATSCH commented on KAFKA-19613:
----------------------------------------

Correct me, if I am wrong, but not sure which error gets created on the broker 
side - the client validates the CRC checksum?!

A follower acts like a normal client(?). So it should also validate the CRC 
checksum and as long as nobody seeks ahead, it just hangs with an exception - 
so the behaviour would not change. (And I've seen this behaviour.)

And since I am talking about observations: We have a replica 4 setup, with 
minISR 2; we've seen cases where the leader has a broken message, but 1 replica 
is fine, the 2 others are hanging because of the broken record. So another 
beneficial approach would be to try to read from another available broker. But 
I guess that is out of scope here. And maybe even partially implemented already 
with preferred-read-replica.

And regarding the retry: If we're using an example of broken memory, the 
corruption could be introduced on reading and on another read attempt, with 
different memory sections being used, could succeed. So there is probably no 
definite answer to "should we retry or not". The client has to decide, like it 
currently is. We should just expose the information and not change the 
behaviour.

> Expose consumer CorruptRecordException as case of KafkaException
> ----------------------------------------------------------------
>
>                 Key: KAFKA-19613
>                 URL: https://issues.apache.org/jira/browse/KAFKA-19613
>             Project: Kafka
>          Issue Type: Improvement
>          Components: clients
>            Reporter: Uladzislau Blok
>            Assignee: Uladzislau Blok
>            Priority: Minor
>              Labels: need-kip
>         Attachments: corrupted_records.excalidraw.png
>
>
> As part of analysis of KAFKA-19430 , we decided it would be useful to expose 
> root case of consumer request failure (e.g. currently we see just 
> KafkaException instead of CorruptRecordException)
> The idea is to not change public API, but expose root case as a filed of 
> KafkaException



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

Reply via email to