apache/hadoop · error · UnsupportedOperationException
ACLs not supported by ImageWriter
Error message
ACLs not supported by ImageWriter
What it means
Error "ACLs not supported by ImageWriter" thrown in apache/hadoop.
Source
Thrown at hadoop-tools/hadoop-fs2img/src/main/java/org/apache/hadoop/hdfs/server/namenode/TreePath.java:162
.setReplication(blk.getReplication(s))
.setModificationTime(s.getModificationTime())
.setAccessTime(s.getAccessTime())
.setPreferredBlockSize(blk.preferredBlockSize(s))
.setPermission(permissions)
.setStoragePolicyID(HdfsConstants.PROVIDED_STORAGE_POLICY_ID);
// pathhandle allows match as long as the file matches exactly.
PathHandle pathHandle = null;
if (fs != null) {
try {
pathHandle = fs.getPathHandle(s, Options.HandleOpt.exact());
} catch (UnsupportedOperationException e) {
LOG.warn(
"Exact path handle not supported by filesystem " + fs.toString());
}
}
if (aclStatus != null) {
throw new UnsupportedOperationException(
"ACLs not supported by ImageWriter");
}
//TODO: storage policy should be configurable per path; use BlockResolver
long off = 0L;
for (BlockProto block : blk.resolve(s)) {
b.addBlocks(block);
writeBlock(block.getBlockId(), off, block.getNumBytes(),
block.getGenStamp(), pathHandle, out);
off += block.getNumBytes();
}
INode.Builder ib = INode.newBuilder()
.setType(INode.Type.FILE)
.setId(id)
.setName(ByteString.copyFrom(string2Bytes(s.getPath().getName())))
.setFile(b);
return ib.build();
}
View on GitHub (pinned to 2add963021)
Solutions
- Strip ACLs from the input (do not use -getfacl output with ACLs) or extend ImageWriter to serialize ACLs; the writer rejects them.
When it happens
Trigger: The input path carries ACL entries while ImageWriter is configured in a mode that does not support writing ACLs into the generated fsimage.
Common situations: See trigger scenarios.
AI-assisted analysis of apache/hadoop@2add963021 (2026-08-22).
Data as JSON: /api/errors/e835b645347f4f72.
Report an issue: GitHub.