{"record":{"id":"97088e0f80e741cd","repo":"apache/hadoop","slug":"invalid-mapreduce-map-sort-spill-percent-spill","errorCode":null,"errorMessage":"Invalid \"mapreduce.map.sort.spill.percent\": {spillper}","messagePattern":"Invalid \"mapreduce\\.map\\.sort\\.spill\\.percent\": (.+?)","errorType":"exception","errorClass":"IOException","httpStatus":null,"severity":"error","filePath":"hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/main/java/org/apache/hadoop/mapred/MapTask.java","lineNumber":993,"sourceCode":"      reporter = context.getReporter();\n      mapTask = context.getMapTask();\n      mapOutputFile = mapTask.getMapOutputFile();\n      sortPhase = mapTask.getSortPhase();\n      spilledRecordsCounter = reporter.getCounter(TaskCounter.SPILLED_RECORDS);\n      partitions = job.getNumReduceTasks();\n      rfs = ((LocalFileSystem)FileSystem.getLocal(job)).getRaw();\n\n      //sanity checks\n      final float spillper =\n        job.getFloat(JobContext.MAP_SORT_SPILL_PERCENT, (float)0.8);\n      final int sortmb = job.getInt(MRJobConfig.IO_SORT_MB,\n          MRJobConfig.DEFAULT_IO_SORT_MB);\n      indexCacheMemoryLimit = job.getInt(JobContext.INDEX_CACHE_MEMORY_LIMIT,\n                                         INDEX_CACHE_MEMORY_LIMIT_DEFAULT);\n      spillFilesCountLimit = job.getInt(JobContext.SPILL_FILES_COUNT_LIMIT,\n          SPILL_FILES_COUNT_LIMIT_DEFAULT);\n      if (spillper > (float)1.0 || spillper <= (float)0.0) {\n        throw new IOException(\"Invalid \\\"\" + JobContext.MAP_SORT_SPILL_PERCENT +\n            \"\\\": \" + spillper);\n      }\n      if(spillFilesCountLimit != SPILL_FILES_COUNT_UNBOUNDED_LIMIT_VALUE\n          && spillFilesCountLimit < 0) {\n        throw new IOException(\"Invalid value for \\\"\" + JobContext.SPILL_FILES_COUNT_LIMIT + \"\\\", \" +\n            \"current value: \" + spillFilesCountLimit);\n      }\n      if ((sortmb & 0x7FF) != sortmb) {\n        throw new IOException(\n            \"Invalid \\\"\" + JobContext.IO_SORT_MB + \"\\\": \" + sortmb);\n      }\n      sorter = ReflectionUtils.newInstance(job.getClass(\n                   MRJobConfig.MAP_SORT_CLASS, QuickSort.class,\n                   IndexedSorter.class), job);\n      // buffers and accounting\n      int maxMemUsage = sortmb << 20;\n      maxMemUsage -= maxMemUsage % METASIZE;\n      kvbuffer = new byte[maxMemUsage];","sourceCodeStart":975,"sourceCodeEnd":1011,"githubUrl":"https://github.com/apache/hadoop/blob/2add9630210752f88ceb1bb74eb65e37bf41da8e/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/main/java/org/apache/hadoop/mapred/MapTask.java#L975-L1011","documentation":"Error \"Invalid \"mapreduce.map.sort.spill.percent\": {spillper}\" thrown in apache/hadoop.","triggerScenarios":"Thrown at hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/main/java/org/apache/hadoop/mapred/MapTask.java:993 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Set mapreduce.map.sort.spill.percent to a float strictly between 0 and 1, e.g. 0.8."],"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"}