oracle/graal · error · RuntimeError
data location is not supported for suite version '{self.vers
Error message
data location is not supported for suite version '{self.version()}' What it means
DaCapo suite dataLocation() only knows how to lay out data directories for suite version '23.11-MR2-chopin'. For any other version() it raises RuntimeError because the location of stats/launchers/dat/jar is version-specific and unimplemented.
Source
Thrown at sdk/mx.sdk/mx_sdk_benchmark.py:2630
iterations = iterations + int(self.getExtraIterationCount(iterations) * args.sf)
return ["-n", str(iterations)] + otherArgs
def jarPath(self, benchmark):
if self.version() == "23.11-MR2-chopin":
return os.path.join(self.dataLocation(), "launchers", benchmark + ".jar")
else:
return self.daCapoPath()
# The directory that contains `stats`, `launchers`, `dat` and `jar`
def dataLocation(self):
if self.version() == "23.11-MR2-chopin":
basePath = self.daCapoPath()
subdir = "dacapo-23.11-MR2-chopin"
if self.minimalArchive():
subdir += "-minimal"
return os.path.join(basePath, subdir)
else:
raise RuntimeError(f"data location is not supported for suite version '{self.version()}'")
def minimalArchive(self):
return False
def createCommandLineArgs(self, benchmarks, bmSuiteArgs):
if benchmarks is None:
raise RuntimeError(
"Suite runs only a single benchmark.")
if len(benchmarks) != 1:
raise RuntimeError(
f"Suite runs only a single benchmark, got: {benchmarks}")
benchmark = benchmarks[0]
runArgs = self.postprocessRunArgs(benchmark, self.runArgs(bmSuiteArgs))
if runArgs is None:
return None
jarPath = self.jarPath(benchmark)View on GitHub (pinned to a66e9ccd1d)
Solutions
- Run with the supported version: pass --suite-version=23.11-MR2-chopin (or remove the override that selects a different version).
- If you maintain the suite, add a branch for your version in dataLocation() describing where stats/launchers/dat/jar live for it.
- Check self.version() resolution (suite.py metadata) to see which version is actually being picked up.
Example fix
# before mx benchmark dacapo-chopin:fop -- --suite-version=9.12 # unsupported -> RuntimeError # after mx benchmark dacapo-chopin:fop -- --suite-version=23.11-MR2-chopin
Defensive patterns
Strategy: validation
Validate before calling
version = suite.version()
assert version == "23.11-MR2-chopin", (
f"DaCapo dataLocation() unsupported for {version}; "
"pin --suite-version=23.11-MR2-chopin or extend dataLocation().") Prevention
- Pin the suite version explicitly in benchmark commands.
- When upgrading the DaCapo suite, extend dataLocation() for new versions in the same change.
- Run a cheap listing command first to validate version handling before long runs.
When it happens
Trigger: Selecting a DaCapo suite version other than 23.11-MR2-chopin (e.g. via --javaconstants-suite-version or a suite.py version override) and then invoking any code path that calls dataLocation().
Common situations: After a DaCapo suite upgrade in suite.py that adds a new version without extending dataLocation(); explicitly requesting an older version on the command line.
Related errors
- Neither {daCapoClasspathEnvVarName} variable nor {daCapoLibr
- Suite runs only a single benchmark.
- Suite runs only a single benchmark, got: {benchmarks}
- Expected staged GraalHost run config at '{run_config_path}'
- The SPECJVM2008 environment variable was not specified.
AI-assisted analysis of oracle/graal@a66e9ccd1d (2026-08-14).
Data as JSON: /api/errors/f10603a50f6ae8cb.
Report an issue: GitHub.