lianetm commented on code in PR #16031:
URL: https://github.com/apache/kafka/pull/16031#discussion_r1624620726
##########
clients/src/main/java/org/apache/kafka/clients/consumer/internals/CommitRequestManager.java:
##########
@@ -432,7 +436,7 @@ private void commitSyncWithRetries(OffsetCommitRequestState
requestAttempt,
result.complete(null);
} else {
if (error instanceof RetriableException) {
- if (error instanceof TimeoutException &&
requestAttempt.isExpired) {
+ if (error instanceof TimeoutException &&
requestAttempt.isExpired()) {
Review Comment:
If I remember right, that was needed at some point to avoid retrying on
[this](https://github.com/apache/kafka/blob/a68a1cce824a8346509d5194e0e43a3cb36ba09a/clients/src/main/java/org/apache/kafka/clients/consumer/internals/CommitRequestManager.java#L838)
`TimeoutException` internally generated by the manager when expiring requests
on poll (vs retrying on the request `TimeoutException` received as a response
if the api level timeout was still not expired). But with this PR the manager
does not do that anymore, so agree we should check isExpired and fail, no
matter the exception.
On top of that valid point from @cadonna, I think there's more to this.
Before, the manager was internally throwing a TimeoutException, so at this
point we could simply completeExceptionally with the same error (ln 441). But
this also changes now. Similar to how the `TopicMetadataManager` does, if at
this point we see that the request isExpired, I guess we need to throw a new
TimeoutException (not the last known error, which is what is thrown now in ln
441)
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]