[
https://issues.apache.org/jira/browse/HDFS-17869?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
WeiLinJin updated HDFS-17869:
-----------------------------
Summary: Missing root exception cause in QuorumJournalManager.java (was:
Missing root exception cause in QuorumJournalManager.Java)
> Missing root exception cause in QuorumJournalManager.java
> ---------------------------------------------------------
>
> Key: HDFS-17869
> URL: https://issues.apache.org/jira/browse/HDFS-17869
> Project: Hadoop HDFS
> Issue Type: Bug
> Components: namenode
> Affects Versions: 3.3.6
> Reporter: WeiLinJin
> Priority: Minor
> Labels: exception
>
> Dear HDFS developers, we are developing a tool to detect exception-related
> bugs in Java. Our primary focus is on identifying issues where the caught
> exception is rethrown without propagating the original exception as the
> cause. When such errors occur, the root cause exception is swallowed,
> resulting in incomplete call stacks in error reports. This makes it hard to
> trace the origin of the exception and hinders debugging efforts.
> Version: Hadoop-3.3.6
> File: org.apache.hadoop.hdfs.qjournal.client.QuorumJournalManager
> Line: 257-261 275-279 682-686 699-703 716-720
> For example,Line: 257-261:
> {code:java}
> try {
> call.waitFor(loggers.size(), loggers.size(), 0, timeoutMs,
> "format");
> } catch (InterruptedException e) {
> throw new IOException("Interrupted waiting for format() response");//no
> cause
> } catch (TimeoutException e) {
> throw new IOException("Timed out waiting for format() response");//no
> cause
> }
> {code}
> In the code above, when catching the two exceptions and re-throwing a new
> exception, the caught exceptions are *not passed as the root cause* of the
> new exception. This makes it hard to trace the source of the original
> exceptions.
> Fix Suggestion:
> {code:java}
> try {
> call.waitFor(loggers.size(), loggers.size(), 0, timeoutMs,
> "format");
> } catch (InterruptedException e) {
> throw new IOException("Interrupted waiting for format() response", e);
> } catch (TimeoutException e) {
> throw new IOException("Timed out waiting for format() response", e);
> }
> {code}
> There are multiple instances of this issue in the methods of the
> {{QuorumJournalManager}} class. (Line: 257-261 275-279 682-686 699-703
> 716-720)
>
>
>
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]