[crac] RFR: Allow users to pass new properties on restore [v8]

Ashutosh Mehra duke at openjdk.java.net
Thu May 19 19:22:18 UTC 2022


> VM changes: To identify properties that can be modified on restore,
> added a new bool field SystemProperty::_modifiable_on_restore.
> All the jdk related properties are marked unmodifiable. Rest of the
> properties are considered modifiable.
> When the JVM is launched with -XX:CRaCRestoreFrom option, then the
> properties prefixed with "-D" are maintained in a separate list in
> Arguments::_system_properties_for_restore. This list is passed to the JVM
> being restored by writing to a shared memory object.
> When the JVM is restored, it reads the new properties from shared memory
> object and updates its existing list of properties maintained in
> Arguments::_system_properties.
> 
> JDK changes: System::props needs to be updated on restore to account for
> new system properties. For this purpose j.l.System registers a new
> JDKResource which queries new properties from the VM in afterRestore()
> notification and updates System::props. The JDKResource registered by
> j.l.System is given highest priority so it is the first resource to get
> afterRestore() notification.
> 
> Signed-off-by: Ashutosh Mehra <asmehra at redhat.com>

Ashutosh Mehra has refreshed the contents of this pull request, and previous commits have been removed. The incremental views will show differences compared to the previous content of the PR. The pull request contains one new commit since the last revision:

  Parse arguments for restore separately and perform restore early
  
  Also
  - removed "modifiable" marker for system properties
  - pass all system properties to the process being restored
  
  Signed-off-by: Ashutosh Mehra <asmehra at redhat.com>

-------------

Changes:
  - all: https://git.openjdk.java.net/crac/pull/21/files
  - new: https://git.openjdk.java.net/crac/pull/21/files/6943dcbb..6356599f

Webrevs:
 - full: https://webrevs.openjdk.java.net/?repo=crac&pr=21&range=07
 - incr: https://webrevs.openjdk.java.net/?repo=crac&pr=21&range=06-07

  Stats: 16 lines in 1 file changed: 8 ins; 8 del; 0 mod
  Patch: https://git.openjdk.java.net/crac/pull/21.diff
  Fetch: git fetch https://git.openjdk.java.net/crac pull/21/head:pull/21

PR: https://git.openjdk.java.net/crac/pull/21


More information about the crac-dev mailing list