zhuzilong2013 commented on code in PR #6518:
URL: https://github.com/apache/hadoop/pull/6518#discussion_r1519420043


##########
hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/FSNamesystem.java:
##########
@@ -1582,6 +1582,10 @@ void startStandbyServices(final Configuration conf, 
boolean isObserver)
       standbyCheckpointer = new StandbyCheckpointer(conf, this);
       standbyCheckpointer.start();
     }
+    if (isNoManualAndResourceLowSafeMode()) {
+      LOG.info("Standby should not enter safe mode when resources are low, 
exiting safe mode.");
+      leaveSafeMode(false);

Review Comment:
   Consider the following scenario:
   
   Initially, nn-1 is active and nn-2 is standby. The insufficient resources of 
both nn-1 and nn-2 in dfs.namenode.name.dir, the NameNodeResourceMonitor 
detects the resource issue and puts nn01 into safemode.
   At this point, nn-1 is in safemode (ON) and active, while nn-2 is in 
safemode (OFF) and standby.
   After a period of time, the resources in nn-2's dfs.namenode.name.dir 
recover, triggering failover.
   Now, nn-1 is in safe mode (ON) and standby, while nn-2 is in safe mode (OFF) 
and active.
   Afterward, the resources in nn-1's dfs.namenode.name.dir recover.
   However, since nn-1 is standby but in safemode (ON), it unable to exit safe 
mode automatically.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to