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

Kirk True updated KAFKA-15652:
------------------------------
    Labels: consumer-threading-refactor  (was: consumer-threading-refactor 
kip-848-client-support)

> Add unit/integration tests to verify OffsetOutOfRangeException is thrown for 
> OffsetFetcherUtils.getOffsetResetTimestamp()
> -------------------------------------------------------------------------------------------------------------------------
>
>                 Key: KAFKA-15652
>                 URL: https://issues.apache.org/jira/browse/KAFKA-15652
>             Project: Kafka
>          Issue Type: Sub-task
>          Components: clients, consumer, unit tests
>            Reporter: Kirk True
>            Assignee: Kirk True
>            Priority: Minor
>              Labels: consumer-threading-refactor
>
> In the {{updateFetchPositions()}} method implementation, both 
> {{KafkaConsumer}} and {{PrototypeAsyncConsumer}} reset positions 
> asynchronously. [~junrao] stated the following in a [recent PR 
> review|https://github.com/apache/kafka/pull/14406#discussion_r1349173413]:
> {quote}There is a subtle difference between transitioning to reset from 
> initializing and transitioning to reset from {{OffsetOutOfRangeException}} 
> during fetch. In the latter, the application thread will call 
> {{{}FetchCollector.handleInitializeErrors(){}}}. If there is no default 
> offset reset policy, an {{OffsetOutOfRangeException}} will be thrown to the 
> application thread during {{{}poll{}}}, which is what we want.
> However, for the former, if there is no default offset reset policy, we 
> simply ignore that partition through 
> {{{}OffsetFetcherUtils.getOffsetResetTimestamp{}}}. It seems in that case, 
> the partition will be forever in the reset state and the application thread 
> won't get the {{{}OffsetOutOfRangeException{}}}.
> {quote}
> I intentionally changed the code so that no exceptions were thrown in 
> {{OffsetFetcherUtils.getOffsetResetTimestamp()}} and would simply return an 
> empty map. When I ran the unit tests and integration tests, there were no 
> failures, strongly suggesting that there is no coverage of this particular 
> edge case.



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

Reply via email to