{"record":{"id":"b5da551a9bf3a76a","repo":"apache/hadoop","slug":"processcachereport-from-dead-or-unregistered-datan","errorCode":null,"errorMessage":"processCacheReport from dead or unregistered datanode: datanode","messagePattern":"processCacheReport from dead or unregistered datanode: datanode","errorType":"exception","errorClass":"IOException","httpStatus":null,"severity":"error","filePath":"hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/CacheManager.java","lineNumber":1019,"sourceCode":"      }\n    }\n  }\n\n  public final void processCacheReport(final DatanodeID datanodeID,\n      final List<Long> blockIds) throws IOException {\n    if (!enabled) {\n      LOG.debug(\"Ignoring cache report from {} because {} = false. number of blocks: {}\",\n          datanodeID, DFS_NAMENODE_CACHING_ENABLED_KEY, blockIds.size());\n      return;\n    }\n    namesystem.writeLock(RwLockMode.BM);\n    final long startTime = Time.monotonicNow();\n    final long endTime;\n    try {\n      final DatanodeDescriptor datanode = \n          blockManager.getDatanodeManager().getDatanode(datanodeID);\n      if (datanode == null || !datanode.isRegistered()) {\n        throw new IOException(\n            \"processCacheReport from dead or unregistered datanode: \" +\n            datanode);\n      }\n      processCacheReportImpl(datanode, blockIds);\n    } finally {\n      endTime = Time.monotonicNow();\n      namesystem.writeUnlock(RwLockMode.BM, \"processCacheReport\");\n    }\n\n    // Log the block report processing stats from Namenode perspective\n    final NameNodeMetrics metrics = NameNode.getNameNodeMetrics();\n    if (metrics != null) {\n      metrics.addCacheBlockReport((int) (endTime - startTime));\n    }\n    LOG.debug(\"Processed cache report from {}, blocks: {}, processing time: {} msecs\",\n        datanodeID, blockIds.size(), (endTime - startTime));\n  }\n","sourceCodeStart":1001,"sourceCodeEnd":1037,"githubUrl":"https://github.com/apache/hadoop/blob/2add9630210752f88ceb1bb74eb65e37bf41da8e/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/CacheManager.java#L1001-L1037","documentation":"Error \"processCacheReport from dead or unregistered datanode: datanode\" thrown in apache/hadoop.","triggerScenarios":"Cache report received from a DataNode that is dead or not registered with the NameNode.","commonSituations":"See trigger scenarios.","solutions":["Check why the DataNode is marked dead or unregistered (network partition, crash) and bring it back into the cluster.","Usually benign during DataNode restarts; ensure the DataNode re-registers with the NameNode."],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"2add9630210752f88ceb1bb74eb65e37bf41da8e","analyzedAt":"2026-08-22T19:55:07.957Z","schemaVersion":2},"datasetVersion":"2026-08-23T01:17:44.959Z"}