oracle/graal · error · ValueError
Expected staged GraalHost run config at '{run_config_path}'
Error message
Expected staged GraalHost run config at '{run_config_path}' but it does not exist! What it means
Raised by run_stage_run in the staged GraalHost benchmark flow (mx_sdk_benchmark.py). Before launching GraalHost with --run_config=@<path>, the suite verifies that a staged benchmark run-config file exists at the path returned by _get_staged_benchmark_run_config_path(). If the file is missing, the run refuses to start because GraalHost cannot resolve its run configuration.
Source
Thrown at sdk/mx.sdk/mx_sdk_benchmark.py:2364
"--endpoint-config", str(file_path),
"--extra-config-path", str(extra_config_path),
]
out = mx.OutputCapture()
err = mx.OutputCapture()
rc = mx.run(cmd, out=out, err=err, nonZeroIsFatal=False)
mx.log(out.data)
if rc != 0:
mx.log(err.data)
raise ChildProcessError(f"graalos-config-util finished unsuccessfully with return code {rc}!")
return file_path
def run_stage_run(self):
rootfs = self._resolve_rootfs()
build_dir = self._resolve_graalos_build_dir()
graalhost = self._resolve_graalhost_binary(build_dir)
run_config_path = self._get_staged_benchmark_run_config_path()
if not run_config_path.is_file():
raise ValueError(f"Expected staged GraalHost run config at '{run_config_path}' but it does not exist!")
ephemeral_dir = tempfile.mkdtemp(prefix="graalhost_staged_benchmark_", dir=rootfs / "tmp")
with self.get_stage_runner() as s:
cmd = [
str(graalhost),
f"--ephemeral_dir={ephemeral_dir}",
"--enable_resolving_env_refs",
"--visorcalloutput=@none",
"--log_to=file",
f"--run_config=@{run_config_path}",
"--run",
self.launcher,
str(self.staged_program_file_path),
]
s.execute_command(self, cmd)
def register_graalvm_vms():
# a simple JVM config that runs without any custom flagView on GitHub (pinned to a66e9ccd1d)
Solutions
- Run the full staged pipeline (including the stage/config step that produces the run config) instead of only the run step.
- Verify the file printed in the message exists: ls <run_config_path>; if not, re-run the staging step that generates it.
- Check that the staged program file and working directory were not removed (e.g. by mx clean or a temp-dir cleanup) between staging and running.
- If the path itself is wrong, inspect _get_staged_benchmark_run_config_path() and the staged benchmark name/selector used to confirm they match what was staged.
Example fix
# before mx benchmark ... -- -Dnative-image.benchmark.stages=run # config never staged # after mx benchmark ... -- -Dnative-image.benchmark.stages=config,run # stage config first, then run
Defensive patterns
Strategy: validation
Validate before calling
from pathlib import Path
run_config = suite._get_staged_benchmark_run_config_path()
assert Path(run_config).is_file(), f"stage the benchmark first; missing {run_config}" Try / catch
try:
suite.run_stage_run()
except ValueError as e:
if 'staged GraalHost run config' in str(e):
# re-run the config/stage phase, then retry once
raise Prevention
- Always run the staging (config) step before the run step in scripted pipelines.
- Do not clean temp/staging directories between stages of one benchmark job.
- Log the staged run-config path at staging time so a missing file is immediately diagnosable.
When it happens
Trigger: Calling the staged GraalHost benchmark run without having executed the earlier staging step (e.g. the config/stage phase of the native-image benchmark pipeline) that writes the run config into the staged working area, or when the staged program/config files were cleaned up or written to a different directory.
Common situations: Running only the RUN stage via -Dnative-image.benchmark.stages=run on a fresh checkout; CI wiping the staging directory between stages; a mismatch between the staged benchmark directory the config was written to and the one run_stage_run reads from.
Related errors
- Guest launcher '{guest_launcher}' does not resolve to a file
- Environment variable 'GRAALOS_BUILD' is unset! It must point
- Environment variable 'GRAALOS_BUILD' points to '{build_dir}'
- Environment variable 'ROOTFS' is unset! It must point to the
- Environment variable 'ROOTFS' points to '{rootfs}' which is
AI-assisted analysis of oracle/graal@a66e9ccd1d (2026-08-14).
Data as JSON: /api/errors/ba7ef030b18f84fa.
Report an issue: GitHub.