Details
-
Improvement
-
Status: Resolved
-
Minor
-
Resolution: Not A Problem
-
None
-
None
-
None
-
None
Description
HDFS-13972 added the following code:
try { dns = rpcServer.getDatanodeReport(DatanodeReportType.LIVE); } catch (IOException e) { LOG.error("Cannot get the datanodes from the RPC server", e); } finally { // Reset ugi to remote user for remaining operations. RouterRpcServer.resetCurrentUser(); } HashSet<Node> excludes = new HashSet<Node>(); if (excludeDatanodes != null) { Collection<String> collection = getTrimmedStringCollection(excludeDatanodes); for (DatanodeInfo dn : dns) { if (collection.contains(dn.getName())) { excludes.add(dn); } } }
If rpcServer.getDatanodeReport() throws an exception, dns will become null. This does't look like the best way to handle the exception. Should router retry upon exception? Does it perform retry automatically under the hood?