Update Graal reachability metadata to fix Nexus in time skipping test server#2759
Conversation
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: a19af87674
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| { | ||
| "type": "io.temporal.testserver.functional.ChildLivesLongerThanParentTest", | ||
| "allDeclaredFields": true, | ||
| "methods": [ |
There was a problem hiding this comment.
Remove test-only types from native image metadata
The new reachability metadata now lists io.temporal.testserver.functional.* test classes for reflection (e.g., ChildLivesLongerThanParentTest). These types live under temporal-test-server/src/test/java and are not present on the runtime classpath when building the temporal-test-server native image, so native-image will fail with a missing class error unless -H:+AllowIncompleteClasspath is enabled. The previous config files did not include test classes, so this regression breaks native builds in the default configuration.
Useful? React with 👍 / 👎.
a19af87 to
e46b1f2
Compare
| -H:DynamicProxyConfigurationResources=${.}/proxy-config.json \ | ||
| -H:JNIConfigurationResources=${.}/jni-config.json \ | ||
| -H:ReflectionConfigurationResources=${.}/reflect-config.json \ | ||
| -H:ResourceConfigurationResources=${.}/resource-config.json \ | ||
| -H:SerializationConfigurationResources=${.}/serialization-config.json \ |
There was a problem hiding this comment.
These flags are being removed but the JSON files are not deleted. Is there a reason why? Is it related to flipping the mergeWithExisting flag in build.gradle? I'm not well versed in Gradle and GraalVM.
There was a problem hiding this comment.
Ah good catch that is my fault, I forgot to commit the removal of these files. All of there contents should be in the new reachability-metadata.json
Update Graal reachability metadata to fix Nexus in time skipping test server. I also had to upgrade the format of the Graal configs to the new
reachability-metadata.json. I tested by building the time skipping server as a native executable and running against Python CI.Note
Updates native-image configuration to the new GraalVM reachability metadata format and adjusts build/test code accordingly.
jni/reflect/resource/serialization/proxy/predefined-classesconfigs with consolidatedreachability-metadata.jsonbuild.gradleto setmetadataCopy.mergeWithExisting = truefor Graal agent outputnative-image.propertiesby removing references to old config filestestNexusOperationHandlerTemporalFailureinNexusWorkflowTestusingNexusUtil.exceptionToNexusFailureandDefaultDataConverterWritten by Cursor Bugbot for commit a7ee8c3. This will update automatically on new commits. Configure here.