linyiqun commented on a change in pull request #1486: URL: https://github.com/apache/hadoop-ozone/pull/1486#discussion_r502803755
########## File path: hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/node/SCMNodeManager.java ########## @@ -400,6 +405,66 @@ public void processNodeReport(DatanodeDetails datanodeDetails, } } + /** + * Process Layout Version report. + * + * @param datanodeDetails + * @param layoutVersionReport + */ + @Override + public void processLayoutVersionReport(DatanodeDetails datanodeDetails, + LayoutVersionProto layoutVersionReport) { + if (LOG.isDebugEnabled()) { + LOG.debug("Processing Layout Version report from [datanode={}]", + datanodeDetails.getHostName()); + } + if (LOG.isTraceEnabled()) { + LOG.trace("HB is received from [datanode={}]: <json>{}</json>", + datanodeDetails.getHostName(), + layoutVersionReport.toString().replaceAll("\n", "\\\\n")); + } + + if (layoutVersionReport != null) { + int scmSlv = scmLayoutVersionManager.getSoftwareLayoutVersion(); + int scmMlv = scmLayoutVersionManager.getMetadataLayoutVersion(); + OzoneUpgradeState scmUpgradeState = + scmLayoutVersionManager.getUpgradeState(); + int dnSlv = layoutVersionReport.getSoftwareLayoutVersion(); + int dnMlv = layoutVersionReport.getMetadataLayoutVersion(); + + // If the data node slv is > scm slv => log error condition + if (dnSlv > scmSlv) { + LOG.error("Rogue data node {} in the cluster. " + + "DataNode SoftwareLayoutVersion = {}, SCM " + + "SoftwareLayoutVersion = {}", + datanodeDetails.getHostName(), dnSlv, scmSlv); Review comment: Can we put this node into exclude list temporarily? For the lower version, it can be tolerated by SCM. But for high version, SCM should take some action I think. Another question: SCM uses heartbeat to return finalize command to DNs only during DN rolling upgrade step, right? For the normal case, it actually does nothing. ---------------------------------------------------------------- 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. For queries about this service, please contact Infrastructure at: us...@infra.apache.org --------------------------------------------------------------------- To unsubscribe, e-mail: ozone-issues-unsubscr...@hadoop.apache.org For additional commands, e-mail: ozone-issues-h...@hadoop.apache.org