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

  1. Run with the supported version: pass --suite-version=23.11-MR2-chopin (or remove the override that selects a different version).
  2. If you maintain the suite, add a branch for your version in dataLocation() describing where stats/launchers/dat/jar live for it.
  3. 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

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


AI-assisted analysis of oracle/graal@a66e9ccd1d (2026-08-14). Data as JSON: /api/errors/f10603a50f6ae8cb. Report an issue: GitHub.