[
https://issues.apache.org/jira/browse/KAFKA-5359?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Vahid Hashemian updated KAFKA-5359:
-----------------------------------
Status: Patch Available (was: Open)
> Exceptions from RequestFuture lack parts of the stack trace
> -----------------------------------------------------------
>
> Key: KAFKA-5359
> URL: https://issues.apache.org/jira/browse/KAFKA-5359
> Project: Kafka
> Issue Type: Bug
> Components: clients
> Reporter: Magnus Reftel
> Assignee: Vahid Hashemian
> Priority: Minor
>
> When an exception occurs within a task that reports its result using a
> RequestFuture, that exception is stored in a field on the RequestFuture using
> the {{raise}} method. In many places in the code where such futures are
> completed, that exception is then thrown directly using {{throw
> future.exception();}} (see e.g.
> [Fetcher.getTopicMetadata|https://github.com/apache/kafka/blob/aebba89a2b9b5ea6a7cab2599555232ef3fe21ad/clients/src/main/java/org/apache/kafka/clients/consumer/internals/Fetcher.java#L316]).
> This means that the exception that ends up in client code only has stack
> traces related to the original exception, but nothing leading up to the
> completion of the future. The client therefore gets no indication of what was
> going on in the client code - only that it somehow ended up in the Kafka
> libraries, and that a task failed at some point.
> One solution to this is to use the exceptions from the future as causes for
> chained exceptions, so that the client gets a stack trace that shows what the
> client was doing, in addition to getting the stack traces for the exception
> in the task.
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)