{"record":{"id":"4948056437521e9e","repo":"apache/hadoop","slug":"tasktype-can-only-be-map","errorCode":null,"errorMessage":"taskType can only be MAP: ","messagePattern":"taskType can only be MAP: ","errorType":"exception","errorClass":"IllegalArgumentException","httpStatus":null,"severity":"error","filePath":"hadoop-tools/hadoop-rumen/src/main/java/org/apache/hadoop/tools/rumen/ZombieJob.java","lineNumber":547,"sourceCode":"      double rackLocalOverNodeLocal, double rackRemoteOverNodeLocal) {\n    TaskInfo taskInfo = getTaskInfo(loggedTask);\n    double[] factors = new double[] { 1.0, rackLocalOverNodeLocal,\n        rackRemoteOverNodeLocal };\n    double scaleFactor = factors[locality] / factors[loggedLocality];\n    State state = convertState(loggedAttempt.getResult());\n    if (loggedTask.getTaskType() == Values.MAP) {\n      long taskTime = 0;\n      if (loggedAttempt.getStartTime() == 0) {\n        taskTime = makeUpMapRuntime(state, locality);\n      } else {\n        taskTime = loggedAttempt.getFinishTime() - loggedAttempt.getStartTime();\n      }\n      taskTime = sanitizeTaskRuntime(taskTime, loggedAttempt.getAttemptID());\n      taskTime *= scaleFactor;\n      return new MapTaskAttemptInfo\n        (state, taskInfo, taskTime, loggedAttempt.allSplitVectors());\n    } else {\n      throw new IllegalArgumentException(\"taskType can only be MAP: \"\n          + loggedTask.getTaskType());\n    }\n  }\n\n  private int getLocality(LoggedTask loggedTask, LoggedTaskAttempt loggedAttempt) {\n    int distance = cluster.getMaximumDistance();\n    String rackHostName = loggedAttempt.getHostName().getValue();\n    if (rackHostName == null) {\n      return distance;\n    }\n    MachineNode mn = getMachineNode(rackHostName);\n    if (mn == null) {\n      return distance;\n    }\n    List<LoggedLocation> locations = loggedTask.getPreferredLocations();\n    if (locations != null) {\n      for (LoggedLocation location : locations) {\n        List<NodeName> layers = location.getLayers();","sourceCodeStart":529,"sourceCodeEnd":565,"githubUrl":"https://github.com/apache/hadoop/blob/2add9630210752f88ceb1bb74eb65e37bf41da8e/hadoop-tools/hadoop-rumen/src/main/java/org/apache/hadoop/tools/rumen/ZombieJob.java#L529-L565","documentation":"Error \"taskType can only be MAP: \" thrown in apache/hadoop.","triggerScenarios":"getFirstJob/getMapAttempt-related logic is invoked for a task whose type is not MAP, violating the caller's assumption.","commonSituations":"See trigger scenarios.","solutions":["Only call this map-specific path for MAP task types; the taskType in the trace differs."],"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-22T20:17:22.307Z"}