{"record":{"id":"f875101ae8a5df49","repo":"apache/hadoop","slug":"too-many-arguments-f87510","errorCode":null,"errorMessage":"Too many arguments.","messagePattern":"Too many arguments\\.","errorType":"exception","errorClass":"IllegalArgumentException","httpStatus":null,"severity":"error","filePath":"hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/shell/SnapshotCommands.java","lineNumber":70,"sourceCode":"    public static final String USAGE = \"<snapshotDir> [<snapshotName>]\";\n    public static final String DESCRIPTION = \"Create a snapshot on a directory\";\n\n    private String snapshotName = null;\n\n    @Override\n    protected void processPath(PathData item) throws IOException {\n      if (!item.stat.isDirectory()) {\n        throw new PathIsNotDirectoryException(item.toString());\n      }\n    }\n    \n    @Override\n    protected void processOptions(LinkedList<String> args) throws IOException {\n      if (args.size() == 0) {\n        throw new IllegalArgumentException(\"<snapshotDir> is missing.\");\n      } \n      if (args.size() > 2) {\n        throw new IllegalArgumentException(\"Too many arguments.\");\n      }\n      if (args.size() == 2) {\n        snapshotName = args.removeLast();\n      }\n    }\n\n    @Override\n    protected void processArguments(LinkedList<PathData> items)\n    throws IOException {\n      super.processArguments(items);\n      if (numErrors != 0) { // check for error collecting paths\n        return;\n      }\n      assert(items.size() == 1);\n      PathData sroot = items.getFirst();\n      Path snapshotPath = sroot.fs.createSnapshot(sroot.path, snapshotName);\n      out.println(\"Created snapshot \" + snapshotPath);\n    }    ","sourceCodeStart":52,"sourceCodeEnd":88,"githubUrl":"https://github.com/apache/hadoop/blob/2add9630210752f88ceb1bb74eb65e37bf41da8e/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/shell/SnapshotCommands.java#L52-L88","documentation":"CreateSnapshot.processOptions (SnapshotCommands.java:70) throws IllegalArgumentException('Too many arguments.') when more than two positional arguments remain after option parsing. createSnapshot accepts exactly one required directory plus at most one optional snapshot name; anything beyond that is rejected before the last argument is popped as the name.","triggerScenarios":"'hadoop fs -createSnapshot /dir name extra', 'hadoop fs -createSnapshot /dir /otherdir name' — three or more non-flag tokens. Typically caused by an unquoted variable expanding to multiple words (SNAPDIR='/data /data2').","commonSituations":"Shell scripts passing unquoted or multi-word variables; commands assembled by string concatenation that accidentally append another path; operators assuming multi-directory or name+comment arguments are supported like in other snapshot subcommands (renameSnapshot takes three).","solutions":["Pass at most two arguments: directory and optional name: 'hadoop fs -createSnapshot /data mysnap'","Quote variables in scripts ('\"$SNAPDIR\"') and validate they contain a single path","Create snapshots per directory with separate invocations instead of batching directories in one command"],"exampleFix":"# before\nhadoop fs -createSnapshot /data /backup mysnap\n# createSnapshot: Too many arguments.\n\n# after\nhadoop fs -createSnapshot /data mysnap\nhadoop fs -createSnapshot /backup mysnap","handlingStrategy":"validation","validationCode":"# exactly 1 or 2 args\nif (( $# < 1 || $# > 2 )); then echo \"usage: createSnapshot <dir> [name]\"; exit 2; fi\nhadoop fs -createSnapshot \"$@\"","typeGuard":null,"tryCatchPattern":"catch (IllegalArgumentException e) when 'Too many arguments' -> drop extras; keep exactly <snapshotDir> [<snapshotName>] and re-run one command per directory","preventionTips":["Quote variables that may contain spaces or multiple paths","One createSnapshot call per directory","Read the USAGE line (hadoop fs -createSnapshot) when scripting"],"tags":["createsnapshot","too-many-arguments","argument-validation","snapshot","hadoop-shell"],"backgroundTag":"too-many-arguments","analyzedSha":"2add9630210752f88ceb1bb74eb65e37bf41da8e","analyzedAt":"2026-08-22T19:55:07.957Z","schemaVersion":2},"datasetVersion":"2026-08-22T20:17:22.307Z"}