[ https://issues.apache.org/jira/browse/KAFKA-5359?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Matthias J. Sax updated KAFKA-5359: ----------------------------------- Fix Version/s: (was: 2.2.0) > 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 (v7.6.3#76005)