Chao Sun created HDFS-13898: ------------------------------- Summary: Throw retriable exception for getBlockLocations when ObserverNameNode is in safemode Key: HDFS-13898 URL: https://issues.apache.org/jira/browse/HDFS-13898 Project: Hadoop HDFS Issue Type: Sub-task Reporter: Chao Sun
When ObserverNameNode is in safe mode, {{getBlockLocations}} may throw safe mode exception if the given file doesn't have any block yet. {code} try { checkOperation(OperationCategory.READ); res = FSDirStatAndListingOp.getBlockLocations( dir, pc, srcArg, offset, length, true); if (isInSafeMode()) { for (LocatedBlock b : res.blocks.getLocatedBlocks()) { // if safemode & no block locations yet then throw safemodeException if ((b.getLocations() == null) || (b.getLocations().length == 0)) { SafeModeException se = newSafemodeException( "Zero blocklocations for " + srcArg); if (haEnabled && haContext != null && haContext.getState().getServiceState() == HAServiceState.ACTIVE) { throw new RetriableException(se); } else { throw se; } } } } {code} It only throws {{RetriableException}} for active NN so requests on observer may just fail. -- This message was sent by Atlassian JIRA (v7.6.3#76005) --------------------------------------------------------------------- To unsubscribe, e-mail: hdfs-dev-unsubscr...@hadoop.apache.org For additional commands, e-mail: hdfs-dev-h...@hadoop.apache.org