Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[GR-4247] Initial Native image Replay bundle Support. #5460

Merged
merged 8 commits into from
Dec 1, 2022

Conversation

graalvmbot
Copy link
Collaborator

No description provided.

@oracle-contributor-agreement oracle-contributor-agreement bot added the OCA Verified All contributors have signed the Oracle Contributor Agreement. label Nov 17, 2022
Copy link
Collaborator

@jerboaa jerboaa left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A couple of thoughts from my end. Seems a nice proposal!

Comment on lines 160 to 165
If available, docker/podman should be used to run the image builder inside a well-defined container image. **This allows
us to prevent the builder from using the network during image build**, thus guaranteeing that the image build result did
not depend on some unknown (and therefore unreproducible) network state. Another advantage is that we can mount
`input/classes` and `$GRAALVM_HOME` read-only into the container and only allow read-write access to the mounted `out`
and `build` directories. This will prevent the application code that runs at image build time to mess with anything
other than those directories.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Even in such an environment, the resulting image might be different in that in two runs the result is different. Consider run (a) that runs in a container environment on Linux x86_64 with cgroup v2 (a kernel feature not part of the container) and (b) that runs on a container environment on Linux x86_64 with cgroup v1. This loads different sets of classes, AFAIK. Something to think about, maybe.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the heads up. We should record if cgroup v2 or cgroup v1 was used in a containerized build.

@olpaw
Copy link
Member

olpaw commented Nov 21, 2022

I moved the contents of ReplayBundles.md into issue #5473 and made it part of the roadmap.

@petermz
Copy link
Contributor

petermz commented Nov 22, 2022

One more note: the nirb in <imagename>.nirb.jar feels pretty cryptic to me. Is <imagename>.replay.jar any better? At least it's consistent with how command line options are named

@olpaw
Copy link
Member

olpaw commented Nov 24, 2022

One more note: the nirb in <imagename>.nirb.jar feels pretty cryptic to me. Is <imagename>.replay.jar any better? At least it's consistent with how command line options are named

Good idea. See #5473 (comment)

@graalvmbot graalvmbot merged commit cc92dee into master Dec 1, 2022
@graalvmbot graalvmbot deleted the paw/GR-42472 branch December 1, 2022 04:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
OCA Verified All contributors have signed the Oracle Contributor Agreement.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants