oracle/graal · error · FileNotFoundError
The Barista repository does not contain a {path_components}
Error message
The Barista repository does not contain a {path_components} file! What it means
Barista suite helper baristaFilePath() walks path_components under the cloned Barista repository and requires the result to be an existing file. If the repo is missing, on the wrong branch/commit, or the expected layout changed, FileNotFoundError is raised.
Source
Thrown at sdk/mx.sdk/mx_sdk_benchmark.py:3629
try:
barista_suite = mx.suite("barista", fatalIfMissing=False)
if barista_suite is None:
barista_suite = mx.primary_suite().clone_foreign_suite("barista", clone_binary_first=False)
bm_exec_context().add_context_value(self.BARISTA_HOME, ConstantContextValue(Path(barista_suite.dir)))
except StopIteration:
mx.abort("Cloning of 'barista' as a sibling of the current suite has failed!\n"
f"Please manually clone it to '{target_dir}'.")
def baristaApplicationDirectoryPath(self, benchmark: str) -> Path:
return self.baristaDirectoryPath() / "benchmarks" / benchmark
def baristaFilePath(self, path_components: list[str]) -> Path:
file_path = self.baristaDirectoryPath()
for component in path_components:
file_path = file_path / component
file_path = file_path.resolve()
if not file_path.is_file():
raise FileNotFoundError(f"The Barista repository does not contain a {path_components} file!")
return file_path
def baristaProjectConfigurationPath(self) -> Path:
return self.baristaFilePath(["pyproject.toml"])
def baristaBuilderPath(self) -> Path:
return self.baristaFilePath(["build"])
def baristaHarnessPath(self) -> Path:
return self.baristaFilePath(["barista"])
def barista_install_script(self) -> Path:
return self.baristaFilePath(["deps", "install.py"])
def baristaHarnessBenchmarkName(self):
return _baristaConfig["benchmarks"][self.benchmarkName()].get("barista-bench-name", self.benchmarkName())
def baristaHarnessBenchmarkWorkload(self):View on GitHub (pinned to a66e9ccd1d)
Solutions
- Inspect the sibling barista checkout printed by baristaDirectoryPath(); if incomplete or outdated, delete it and let the suite re-clone (or git pull).
- Check out the barista revision expected by your GraalVM/sdk suite version.
- If upstream renamed a file, update the path_components in mx_sdk_benchmark.py accordingly.
Example fix
# before rm -rf ../barista # or an interrupted clone left it partial mx benchmark barista:... # -> FileNotFoundError # after git clone <barista-repo> ../barista && git -C ../barista checkout <expected-rev> mx benchmark barista:...
Defensive patterns
Strategy: validation
Validate before calling
from pathlib import Path
p = suite.baristaDirectoryPath()
for required in ("pyproject.toml", "build", "barista"):
assert (p / required).is_file(), f"barista checkout incomplete: missing {required} under {p}" Try / catch
try:
path = suite.baristaFilePath(components)
except FileNotFoundError as e:
# re-clone or re-checkout barista at the expected revision, then retry once
raise Prevention
- Pin the barista repo revision next to the sdk suite version in use.
- After any failed/interrupted clone, remove the partial barista directory before re-running.
- Smoke-check the three standard files exist before starting long benchmark runs.
When it happens
Trigger: Any Barista-suite code path resolving standard files (pyproject.toml, the 'build' script, the 'barista' harness, install scripts) after a partial/failed clone or a repository layout change upstream.
Common situations: Interrupted 'git clone' of barista (the code aborts if cloning fails); barista checked out at a revision that renamed or moved 'build' or 'barista'; stale sibling checkout from an older layout.
Related errors
- Could not extract the jar file path from the command output!
- Could not find the path to the java executable in: {jvm_cmd}
- You should not set the Barista '--mode' option manually! Fou
- Expected staged GraalHost run config at '{run_config_path}'
- Neither {daCapoClasspathEnvVarName} variable nor {daCapoLibr
AI-assisted analysis of oracle/graal@a66e9ccd1d (2026-08-14).
Data as JSON: /api/errors/9b1888d17fd3aebe.
Report an issue: GitHub.