apache/hadoop · error · InvalidPathException

Invalid file name: <src>

Error message

Invalid file name: <src>

What it means

Error "Invalid file name: <src>" thrown in apache/hadoop.

Source

Thrown at hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/FSDirectory.java:732

   * @param src The path to resolve.
   * @param dirOp The {@link DirOp} that controls additional checks.
   * @return if the path indicates an inode, return path after replacing up to
   *        {@code <inodeid>} with the corresponding path of the inode, else
   *        the path in {@code src} as is. If the path refers to a path in
   *        the "raw" directory, return the non-raw pathname.
   * @throws FileNotFoundException
   * @throws AccessControlException
   * @throws ParentNotDirectoryException
   * @throws UnresolvedLinkException
   */
  @VisibleForTesting
  public INodesInPath resolvePath(FSPermissionChecker pc, String src,
      DirOp dirOp) throws UnresolvedLinkException, FileNotFoundException,
      AccessControlException, ParentNotDirectoryException {
    boolean isCreate = (dirOp == DirOp.CREATE || dirOp == DirOp.CREATE_LINK);
    // prevent creation of new invalid paths
    if (isCreate && !DFSUtil.isValidName(src)) {
      throw new InvalidPathException("Invalid file name: " + src);
    }

    byte[][] components = INode.getPathComponents(src);
    boolean isRaw = isReservedRawName(components);
    components = resolveComponents(components, this);
    INodesInPath iip = INodesInPath.resolve(rootDir, components, isRaw);
    if (isPermissionEnabled && pc != null && isRaw) {
      switch(dirOp) {
      case READ_LINK:
      case READ:
        break;
      default:
        pc.checkSuperuserPrivilege(iip.getPath());
        break;
      }
    }
    // verify all ancestors are dirs and traversable.  note that only
    // methods that create new namespace items have the signature to throw

View on GitHub (pinned to 2add963021)

Solutions

  1. Use a valid file name: non-empty and without path separators or reserved components.

When it happens

Trigger: Resolving a path whose name is null, empty, or malformed (e.g. does not start with '/').

Common situations: See trigger scenarios.


AI-assisted analysis of apache/hadoop@2add963021 (2026-08-22). Data as JSON: /api/errors/ffad041dae0f5860. Report an issue: GitHub.