Repository navigation
Conversation
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
There was a problem hiding this comment.
More details
Static review supports that loader pairs are isolated by both ordered classpaths, created atomically, and invalidated when the build timestamp changes. Runtime behavior remains unverified.
🤖 Bits Code Review · Commit 989d1c5
🟢 Java Benchmark SLOs — All performance SLOs passed
PR vs. master results
Commit: Load and DaCapo benchmarks can be triggered manually in the GitLab pipeline. Results will appear in the Benchmarking Platform UI after completion. |
What Does This Do
Cache Muzzle's bootstrap/tooling classloader pairs by both ordered classpaths. Create each pair atomically for concurrent checks, reuse it within the build, and replace the cache when the build changes.
Add a GraalVM/OpenTelemetry regression reproducer and MuzzleAction coverage for classpath changes, isolation, build invalidation and concurrent lookups.
Motivation
When
graal-native-image-20.0ran beforeopentelemetry-1.47in the same worker, OpenTelemetry could reuse GraalVM's loaders and fail withNoClassDefFoundError: OtelInstrumentdespite declaringotel-bootstrap. The previous cache compared only the combined classpath file count and could also expose undeclared bootstrap classes.This was spotted in #12848
Additional Notes
The cache retains one pair per distinct bootstrap/tooling classpath instead of a single pair. Real GraalVM/OpenTelemetry version checks and memory measurements have not been run.
Contributor Checklist
type:and (comp:orinst:) labels in addition to any other useful labelsclose,fix, or any linking keywords when referencing an issueUse
solvesinstead, and assign the PR milestone to the issue