juicedata/juicefs · error · IOException

No matching attributes found for remove operation

Error message

No matching attributes found for remove operation

What it means

Raised in removeXAttr when the C library returns ENOATTR or ENODATA, i.e. the named extended attribute does not exist on the file at the time of removal. It mirrors POSIX behavior where removing a missing xattr is an error rather than a no-op.

Source

Thrown at sdk/java/src/main/java/io/juicefs/JuiceFileSystemImpl.java:2093

        byte[] arr = new byte[off - last];
        buf.get(last, arr, 0, arr.length);
        result.add(new String(arr));
        last = off + 1;
      }
      off++;
    }
    return result;
  }

  @Override
  public void removeXAttr(Path path, String name) throws IOException {
    if (needCheckPermission() && !checkPathAccess(path, FsAction.WRITE, "removeXAttr")) {
      superGroupFileSystem.removeXAttr(path, name);
      return;
    }
    int r = lib.jfs_removeXattr(Thread.currentThread().getId(), handle, normalizePath(path), name);
    if (r == ENOATTR || r == ENODATA) {
      throw new IOException("No matching attributes found for remove operation");
    }
    if (r < 0)
      throw error(r, path);
  }

  @Override
  public void modifyAclEntries(Path path, List<AclEntry> aclSpec) throws IOException {
    if (needCheckPermission() && !checkOwner(path, "modifyAclEntries")) {
      superGroupFileSystem.modifyAclEntries(path, aclSpec);
      return;
    }
    List<AclEntry> existingEntries = getAllAclEntries(path);
    List<AclEntry> newAcl = AclTransformation.mergeAclEntries(existingEntries, aclSpec);
    setAclInternal(path, newAcl);
  }

  @Override
  public void removeAclEntries(Path path, List<AclEntry> aclSpec) throws IOException {

View on GitHub (pinned to c9a67b23e8)

Solutions

  1. List existing xattrs (getXAttrs) and only remove names that are present
  2. Catch the exception and treat it as success when idempotent removal is desired
Defensive patterns

Strategy: type-guard

When it happens

Trigger: Thrown at sdk/java/src/main/java/io/juicefs/JuiceFileSystemImpl.java:2093 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of juicedata/juicefs@c9a67b23e8 (2026-09-06). Data as JSON: /api/errors/368ef4475804bc0c. Report an issue: GitHub.