apache/hadoop · error · IllegalArgumentException
Must provide both the starting and ending snapshot names for
Error message
Must provide both the starting and ending snapshot names for -diff/-rdiff
What it means
Error "Must provide both the starting and ending snapshot names for -diff/-rdiff" thrown in apache/hadoop.
Source
Thrown at hadoop-tools/hadoop-distcp/src/main/java/org/apache/hadoop/tools/DistCpOptions.java:630
}
if (!syncFolder && append) {
throw new IllegalArgumentException(
"Append is valid only with update options");
}
if (skipCRC && append) {
throw new IllegalArgumentException(
"Append is disallowed when skipping CRC");
}
if (!syncFolder && (useDiff || useRdiff)) {
throw new IllegalArgumentException(
"-diff/-rdiff is valid only with -update option");
}
if (useDiff || useRdiff) {
if (StringUtils.isBlank(fromSnapshot) ||
StringUtils.isBlank(toSnapshot)) {
throw new IllegalArgumentException(
"Must provide both the starting and ending " +
"snapshot names for -diff/-rdiff");
}
}
if (useDiff && useRdiff) {
throw new IllegalArgumentException(
"-diff and -rdiff are mutually exclusive");
}
if (verboseLog && logPath == null) {
throw new IllegalArgumentException(
"-v is valid only with -log option");
}
}
@VisibleForTesting
Builder withSourcePaths(List<Path> newSourcePaths) {
this.sourcePaths = newSourcePaths;View on GitHub (pinned to 2add963021)
Solutions
- Provide both starting and ending snapshot names to -diff/-rdiff.
- Create the snapshots on the source/target before running.
When it happens
Trigger: distcp -diff/-rdiff is run without both snapshot name arguments.
Common situations: See trigger scenarios.
AI-assisted analysis of apache/hadoop@2add963021 (2026-08-22).
Data as JSON: /api/errors/9a0c37b42a4d6b22.
Report an issue: GitHub.