You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jira@kafka.apache.org by "Nicolas Guyomar (Jira)" <ji...@apache.org> on 2021/05/18 08:57:00 UTC
[jira] [Updated] (KAFKA-12805) Aborted send could have a different
exception than DisconnectException
[ https://issues.apache.org/jira/browse/KAFKA-12805?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Nicolas Guyomar updated KAFKA-12805:
------------------------------------
Description:
Right now we are treating timeout in the network client as a disconnection exception, which "hides" legit timeout where increasing {{[request.timeout.ms|http://request.timeout.ms/]}} could be considered OK
when there is no "real" network disconnection :
Caused by: org.apache.kafka.common.errors.TimeoutException: Call(callName=describeConfigs, deadlineMs=1616147081029) timed out at 1616147081039 after 2 attempt(s)
Caused by: org.apache.kafka.common.errors.DisconnectException: Cancelled describeConfigs request with correlation id 8 due to node 1 being disconnected
the DisconnectException is thrown because of the disconnect flag being set to true in [https://github.com/apache/kafka/blob/3d0b4d910b681df7d873c8a0285eaca01d6c173a/clients/src/main/java/org/apache/kafka/clients/NetworkClient.java#L352]
While we _could_ have a different path from there [https://github.com/apache/kafka/blob/trunk/clients/src/main/java/org/apache/kafka/clients/NetworkClient.java#L793] that would propagate the fact that the connection timed out because of {{[request.timeout.ms|http://request.timeout.ms/]}} expiration, and adjust the later thrown exception in there [https://github.com/apache/kafka/blob/trunk/clients/src/main/java/org/apache/kafka/clients/admin/KafkaAdminClient.java#L1195] so that it's not a {{DisconnectException}} ?
Thank you
was:
Tight now we are treating timeout in the network client as a disconnection exception, which "hides" legit timeout where increasing {{[request.timeout.ms|http://request.timeout.ms/]}} could be considered OK
when there is no "real" network disconnection :
Caused by: org.apache.kafka.common.errors.TimeoutException: Call(callName=describeConfigs, deadlineMs=1616147081029) timed out at 1616147081039 after 2 attempt(s)
Caused by: org.apache.kafka.common.errors.DisconnectException: Cancelled describeConfigs request with correlation id 8 due to node 1 being disconnected
the DisconnectException is thrown because of the disconnect flag being set to true in [https://github.com/apache/kafka/blob/3d0b4d910b681df7d873c8a0285eaca01d6c173a/clients/src/main/java/org/apache/kafka/clients/NetworkClient.java#L352]
While we _could_ have a different path from there [https://github.com/apache/kafka/blob/trunk/clients/src/main/java/org/apache/kafka/clients/NetworkClient.java#L793] that would propagate the fact that the connection timed out because of {{[request.timeout.ms|http://request.timeout.ms/]}} expiration, and adjust the later thrown exception in there [https://github.com/apache/kafka/blob/trunk/clients/src/main/java/org/apache/kafka/clients/admin/KafkaAdminClient.java#L1195] so that it's not a {{DisconnectException}} ?
Thank you
> Aborted send could have a different exception than DisconnectException
> ----------------------------------------------------------------------
>
> Key: KAFKA-12805
> URL: https://issues.apache.org/jira/browse/KAFKA-12805
> Project: Kafka
> Issue Type: Wish
> Components: network
> Reporter: Nicolas Guyomar
> Priority: Minor
>
> Right now we are treating timeout in the network client as a disconnection exception, which "hides" legit timeout where increasing {{[request.timeout.ms|http://request.timeout.ms/]}} could be considered OK
> when there is no "real" network disconnection :
> Caused by: org.apache.kafka.common.errors.TimeoutException: Call(callName=describeConfigs, deadlineMs=1616147081029) timed out at 1616147081039 after 2 attempt(s)
> Caused by: org.apache.kafka.common.errors.DisconnectException: Cancelled describeConfigs request with correlation id 8 due to node 1 being disconnected
>
> the DisconnectException is thrown because of the disconnect flag being set to true in [https://github.com/apache/kafka/blob/3d0b4d910b681df7d873c8a0285eaca01d6c173a/clients/src/main/java/org/apache/kafka/clients/NetworkClient.java#L352]
> While we _could_ have a different path from there [https://github.com/apache/kafka/blob/trunk/clients/src/main/java/org/apache/kafka/clients/NetworkClient.java#L793] that would propagate the fact that the connection timed out because of {{[request.timeout.ms|http://request.timeout.ms/]}} expiration, and adjust the later thrown exception in there [https://github.com/apache/kafka/blob/trunk/clients/src/main/java/org/apache/kafka/clients/admin/KafkaAdminClient.java#L1195] so that it's not a {{DisconnectException}} ?
>
> Thank you
>
--
This message was sent by Atlassian Jira
(v8.3.4#803005)