From jkratochvil at azul.com Tue Aug 1 14:12:01 2023 From: jkratochvil at azul.com (Jan Kratochvil) Date: Tue, 1 Aug 2023 22:12:01 +0800 Subject: Project CRaC to track openjdk/jdk In-Reply-To: <28d93946-7816-98be-67ae-0c568fdcd368@azul.com> References: <127821f7-c0f2-201d-8875-ec80aa353da2@azul.com> <28d93946-7816-98be-67ae-0c568fdcd368@azul.com> Message-ID: On Sat, 29 Jul 2023 01:04:16 +0800, Anton Kozlov wrote: > The next steps are: > > - create final 17+6 EA build from crac > - fork branch crac-17 from that point > - merge changes from crac-master to crac branch (fast-forward) and remove > crac-master branch Are there some further plans with crac.git crac-17 branch or it will be there just to store its current state? Or will it be maintained for upstream jdk17 releases with crac? Asking because current crac.git is far behind jdk17u-dev so whether it is a problem or not. In other words will be all further activities only on the crac (=crac-master) branch? Jan From yizhe at pku.edu.cn Wed Aug 2 07:34:02 2023 From: yizhe at pku.edu.cn (=?UTF-8?B?5a2Z6K+R5ZaG?=) Date: Wed, 2 Aug 2023 15:34:02 +0800 (GMT+08:00) Subject: Bug Report: arguments supplied to restore are split with whitespace Message-ID: <783b98b1.b1954.189b52b0245.Coremail.yizhe@pku.edu.cn> Calling `java -XX:CRaCRestore Foo arg1` when there is whitespace in `arg1` causes `arg1` to be split into multiple arguments. I don't think this is intentional. Here's a demonstation. ```java // mypack/Foo.java package mypack; import jdk.crac.Core; import java.util.Arrays; public class Foo { public static void main(String[] args) throws Exception { jdk.crac.Core.checkpointRestore(); } } class Bar { public static void main(String[] args) { System.out.println(Arrays.toString(args)); } } ``` Step 1: create a checkpoint with `java -XX:CRaCCheckpointTo=foo_checkpoint mypack.Foo` Step 2: restore the checkpoint with `java -XX:CRaCRestoreFrom=foo_checkpoint mypack.Bar 'Hello World'` Expected output: ["Hello World"] Actual output: ["Hello", "World"] -------------- next part -------------- An HTML attachment was scrubbed... URL: From akozlov at azul.com Wed Aug 2 09:47:25 2023 From: akozlov at azul.com (Anton Kozlov) Date: Wed, 2 Aug 2023 12:47:25 +0300 Subject: Project CRaC to track openjdk/jdk In-Reply-To: References: <127821f7-c0f2-201d-8875-ec80aa353da2@azul.com> <28d93946-7816-98be-67ae-0c568fdcd368@azul.com> Message-ID: <374c2338-6178-339e-7e85-496d50d8c358@azul.com> On 8/1/23 17:12, Jan Kratochvil wrote: > Are there some further plans with crac.git crac-17 branch or it will be there > just to store its current state? Or will it be maintained for upstream jdk17 > releases with crac? Asking because current crac.git is far behind jdk17u-dev > so whether it is a problem or not. > > In other words will be all further activities only on the crac (=crac-master) > branch? The project focus will be on the branch based on the jdk/master. EA builds will be switched to jdk/master as well. The crac-17 is expected to have just occasional backports of API changes, to provide a compatible version for wider evaluation. Additional backports are possible if someone sees some value in them. Thanks, Anton From akozlov at openjdk.org Wed Aug 2 18:13:09 2023 From: akozlov at openjdk.org (Anton Kozlov) Date: Wed, 2 Aug 2023 18:13:09 GMT Subject: [crac] RFR: Print better diagnostics for spawning CRIU In-Reply-To: References: Message-ID: On Mon, 31 Jul 2023 03:42:11 GMT, Jan Kratochvil wrote: > It was always a mystery why it does not work this time as there are no error messages printed. > Still may system call errors are currently not reported but those errors at least do not happen commonly. > In fact `os::exec_child_process_and_wait` should be more verbose but that is already a part of OpenJDK so I did not modify it. > It would be much easier if `criuengine.c` was in C++. I was considering to switch it but then I wrote it already in C. > I understand this code will become obsolete after planned integration of CRIU into JVM but it may not yet be soon enough. A few comments, but the approach looks good. src/hotspot/share/runtime/crac.cpp line 203: > 201: _crengine_args[1] = "checkpoint"; > 202: add_crengine_arg(CRaCCheckpointTo); > 203: if (os::exec_child_process_and_wait(_crengine, _crengine_args) == 0) The `checkpoint_restore` suits better to print an error message, please use a consistent reporting method (tty->print(), althoug we should start using unified loggin from some point).B BTW os::exec_child_process_and_wait was introduced in CRaC and it prints error messages in case of problems with creating new processes. src/java.base/unix/native/criuengine/criuengine.c line 101: > 99: char *retval; > 100: if (path2[0] == '/') { > 101: retval = strdup(path2); path_join apparently uses path1 only if path2 is relative, otherwise just returns path2. It's unclear from the function name. This looks more like static char *path_from(const char *cwd, const char *path) { // compute abs path to `path` with the workdir `cwd` assumed } src/java.base/unix/native/criuengine/criuengine.c line 115: > 113: } > 114: > 115: static char *path_abs(const char *rel) { Is not this exactly `realpath()`? src/java.base/unix/native/criuengine/criuengine.c line 131: > 129: free(rel1_abs); > 130: return retval; > 131: } This function is closer to path_from, rather than to abs. But by using just path_join/path_from, we'll provide a shorter yet still correct path to the log (the only use of the function), so I propose to drop it. src/java.base/unix/native/criuengine/criuengine.c line 207: > 205: execv(criu, (char**)args); > 206: fprintf(stderr, "Cannot execute CRIU \"%s\": %m\n", criu); > 207: exit(77); Please introduce a #define for this value. src/java.base/unix/native/criuengine/criuengine.c line 215: > 213: if (child != wait(&status)) { > 214: criu_cmdline = join_args(args); > 215: fprintf(stderr, "Error waiting for spawned CRIU \"%s\": %m\n", criu_cmdline); Calling fprintf repeatedly multiple time would save us from too complex join_args(), right? Could you do this? src/java.base/unix/native/criuengine/criuengine.c line 227: > 225: criu_log = path_abs2(imagedir, log_local); > 226: fprintf(stderr, "Spawned CRIU \"%s\" has not properly exited: exit code %d - check %s\n", criu_cmdline, WEXITSTATUS(status), criu_log); > 227: } Could you unify these handlings? There is a slight difference in each code path. src/java.base/unix/native/criuengine/criuengine.c line 233: > 231: } > 232: free(criu_cmdline); > 233: free(criu_log); Extensive use of free in the short living application is questionable. By dropping this we'll make it simpler and faster. ------------- PR Review: https://git.openjdk.org/crac/pull/97#pullrequestreview-1557670255 PR Review Comment: https://git.openjdk.org/crac/pull/97#discussion_r1281054667 PR Review Comment: https://git.openjdk.org/crac/pull/97#discussion_r1282205951 PR Review Comment: https://git.openjdk.org/crac/pull/97#discussion_r1282223771 PR Review Comment: https://git.openjdk.org/crac/pull/97#discussion_r1282257484 PR Review Comment: https://git.openjdk.org/crac/pull/97#discussion_r1281064366 PR Review Comment: https://git.openjdk.org/crac/pull/97#discussion_r1281068032 PR Review Comment: https://git.openjdk.org/crac/pull/97#discussion_r1281062679 PR Review Comment: https://git.openjdk.org/crac/pull/97#discussion_r1282258763 From akozlov at openjdk.org Wed Aug 2 18:32:14 2023 From: akozlov at openjdk.org (Anton Kozlov) Date: Wed, 2 Aug 2023 18:32:14 GMT Subject: [crac] RFR: merge compiler warning fixes from jdk17u-dev [v2] In-Reply-To: References: Message-ID: On Sat, 29 Jul 2023 22:07:09 GMT, Jan Kratochvil wrote: >> ../../src/hotspot/share/gc/z/zReferenceProcessor.cpp: In member function 'oopDesc* ZReferenceProcessor::drop(oop, ReferenceType)': >> ../../src/hotspot/share/gc/z/zReferenceProcessor.cpp:270:22: error: '%s' directive argument is null [-Werror=format-overflow=] >> 270 | log_trace(gc, ref)("Dropped Reference: " PTR_FORMAT " (%s)", p2i(reference), reference_type_name(type)); >> | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ >> cc1plus: all warnings being treated as errors >> commit 68456bb248378da2ada5ecb6de92302988115b7c >> Author: Aleksey Shipilev >> Date: Thu Jun 23 15:49:41 2022 +0000 >> 8288754: GCC 12 fails to build zReferenceProcessor.cpp >> Backport-of: 834d92dd72257ab5d8c6759028098ac0867c5752 >> >> ../src/java.base/unix/native/libjli/java_md_common.c: In function 'Resolve': >> ../src/java.base/unix/native/libjli/java_md_common.c:125:43: error: '%s' directive output may be truncated writing up to 4095 bytes into a region of size between 2 and 4097 [-Werror=format-truncation=] >> 125 | JLI_Snprintf(name, sizeof(name), "%s%c%s", indir, FILE_SEPARATOR, cmd); >> | ^~ >> In file included from ../src/java.base/unix/native/libjli/java_md.h:38, >> from ../src/java.base/share/native/libjli/java.h:41, >> from ../src/java.base/unix/native/libjli/java_md_common.c:26: >> ../src/java.base/share/native/libjli/jli_util.h:103:41: note: 'snprintf' output between 2 and 8192 bytes into a destination of size 4098 >> 103 | #define JLI_Snprintf snprintf >> ../src/java.base/unix/native/libjli/java_md_common.c:125:5: note: in expansion of macro 'JLI_Snprintf' >> 125 | JLI_Snprintf(name, sizeof(name), "%s%c%s", indir, FILE_SEPARATOR, cmd); >> | ^~~~~~~~~~~~ >> cc1: all warnings being treated as errors >> commit 46c1434d50f6f0fa371785496c4d37c0e192da16 >> Author: Yasumasa Suenaga >> Date: Wed Jan 25 17:19:30 2023 +0000 >> 8286562: GCC 12 reports some compiler warnings >> Backport-of: 410a25d59a11b6a627bbb0a2c405c2c2be19f464 >> >> In function 'find_positions', >> inlined from 'find_file' at ../src/java.base/share/native/libjli/parse_manifest.c:364:9: >> ../src/java.base/share/native/libjli/parse_manifest.c:292:34: error: pointer 'endpos' used after 'free' [-Werror=use-after-free] >> 292 | pos = flen - (endpos - cp); >> | ~~~~~~~~^~~~~ >> ../src/java.... > > Jan Kratochvil has updated the pull request incrementally with one additional commit since the last revision: > > 8287854: Dangling reference in ClassVerifier::verify_class > > Backport-of: 3fa99844a69401f84677e7d512ffd937f7f16898 Probably it will be easier to merge the whole jdk17u-dev to the crac-17 branch. Need to say, I did experienced merge conflicts near altstack from #37. But once all CRaC development goes to another branch, I see no reasons not to merge jdk17u-dev to simplify developer's life. ------------- PR Comment: https://git.openjdk.org/crac/pull/96#issuecomment-1662739108 From akozlov at azul.com Wed Aug 2 21:05:13 2023 From: akozlov at azul.com (Anton Kozlov) Date: Thu, 3 Aug 2023 00:05:13 +0300 Subject: Bug Report: arguments supplied to restore are split with whitespace In-Reply-To: <783b98b1.b1954.189b52b0245.Coremail.yizhe@pku.edu.cn> References: <783b98b1.b1954.189b52b0245.Coremail.yizhe@pku.edu.cn> Message-ID: <91a1b6b7-4bb5-00a1-1cf0-92a9dcc98194@azul.com> On 8/2/23 10:34, ??? wrote: > Calling `java -XX:CRaCRestore Foo arg1` when there is whitespace in `arg1` causes `arg1` to be split into multiple arguments. Thanks for the report. Indeed, AFAIR, this can be caused by the way how arguments are passed from the launcher to the VM on restore. Thanks, Anton From jkratochvil at openjdk.org Thu Aug 3 05:10:00 2023 From: jkratochvil at openjdk.org (Jan Kratochvil) Date: Thu, 3 Aug 2023 05:10:00 GMT Subject: [crac] Withdrawn: merge compiler warning fixes from jdk17u-dev In-Reply-To: References: Message-ID: On Sat, 29 Jul 2023 21:38:31 GMT, Jan Kratochvil wrote: > ../../src/hotspot/share/gc/z/zReferenceProcessor.cpp: In member function 'oopDesc* ZReferenceProcessor::drop(oop, ReferenceType)': > ../../src/hotspot/share/gc/z/zReferenceProcessor.cpp:270:22: error: '%s' directive argument is null [-Werror=format-overflow=] > 270 | log_trace(gc, ref)("Dropped Reference: " PTR_FORMAT " (%s)", p2i(reference), reference_type_name(type)); > | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > cc1plus: all warnings being treated as errors > commit 68456bb248378da2ada5ecb6de92302988115b7c > Author: Aleksey Shipilev > Date: Thu Jun 23 15:49:41 2022 +0000 > 8288754: GCC 12 fails to build zReferenceProcessor.cpp > Backport-of: 834d92dd72257ab5d8c6759028098ac0867c5752 > > ../src/java.base/unix/native/libjli/java_md_common.c: In function 'Resolve': > ../src/java.base/unix/native/libjli/java_md_common.c:125:43: error: '%s' directive output may be truncated writing up to 4095 bytes into a region of size between 2 and 4097 [-Werror=format-truncation=] > 125 | JLI_Snprintf(name, sizeof(name), "%s%c%s", indir, FILE_SEPARATOR, cmd); > | ^~ > In file included from ../src/java.base/unix/native/libjli/java_md.h:38, > from ../src/java.base/share/native/libjli/java.h:41, > from ../src/java.base/unix/native/libjli/java_md_common.c:26: > ../src/java.base/share/native/libjli/jli_util.h:103:41: note: 'snprintf' output between 2 and 8192 bytes into a destination of size 4098 > 103 | #define JLI_Snprintf snprintf > ../src/java.base/unix/native/libjli/java_md_common.c:125:5: note: in expansion of macro 'JLI_Snprintf' > 125 | JLI_Snprintf(name, sizeof(name), "%s%c%s", indir, FILE_SEPARATOR, cmd); > | ^~~~~~~~~~~~ > cc1: all warnings being treated as errors > commit 46c1434d50f6f0fa371785496c4d37c0e192da16 > Author: Yasumasa Suenaga > Date: Wed Jan 25 17:19:30 2023 +0000 > 8286562: GCC 12 reports some compiler warnings > Backport-of: 410a25d59a11b6a627bbb0a2c405c2c2be19f464 > > In function 'find_positions', > inlined from 'find_file' at ../src/java.base/share/native/libjli/parse_manifest.c:364:9: > ../src/java.base/share/native/libjli/parse_manifest.c:292:34: error: pointer 'endpos' used after 'free' [-Werror=use-after-free] > 292 | pos = flen - (endpos - cp); > | ~~~~~~~~^~~~~ > ../src/java.base/share/native/libjli/parse_manifest.c:291:13: note: call to 'free' h... This pull request has been closed without being integrated. ------------- PR: https://git.openjdk.org/crac/pull/96 From jkratochvil at openjdk.org Thu Aug 3 05:09:59 2023 From: jkratochvil at openjdk.org (Jan Kratochvil) Date: Thu, 3 Aug 2023 05:09:59 GMT Subject: [crac] RFR: merge compiler warning fixes from jdk17u-dev [v2] In-Reply-To: References: Message-ID: <1zC5cNdIqggapuSv7w4NYW6Dsl6RsEF7nrC5aYOHGW8=.55a0a79c-f64e-4606-8164-6a6f3443bd7a@github.com> On Wed, 2 Aug 2023 18:29:26 GMT, Anton Kozlov wrote: > Probably it will be easier to merge the whole jdk17u-dev to the crac-17 branch. Need to say, I did experienced merge conflicts near altstack from #37. There are more conflicts than just #37. > But once all CRaC development goes to another branch, I see no reasons not to merge jdk17u-dev to simplify developer's life. IIUC then this merge will be already pointless. Which it is now. I found out about the master merge only after this backport. ------------- PR Comment: https://git.openjdk.org/crac/pull/96#issuecomment-1663296694 From jkratochvil at openjdk.org Thu Aug 3 09:46:28 2023 From: jkratochvil at openjdk.org (Jan Kratochvil) Date: Thu, 3 Aug 2023 09:46:28 GMT Subject: [crac] RFR: C++ize criuengine Message-ID: As the #97 review has no good solution I have C++ized the `criuengine` first. ------------- Commit messages: - C++ize criuengine Changes: https://git.openjdk.org/crac/pull/98/files Webrev: https://webrevs.openjdk.org/?repo=crac&pr=98&range=00 Stats: 845 lines in 3 files changed: 414 ins; 429 del; 2 mod Patch: https://git.openjdk.org/crac/pull/98.diff Fetch: git fetch https://git.openjdk.org/crac.git pull/98/head:pull/98 PR: https://git.openjdk.org/crac/pull/98 From akozlov at openjdk.org Thu Aug 3 12:07:03 2023 From: akozlov at openjdk.org (Anton Kozlov) Date: Thu, 3 Aug 2023 12:07:03 GMT Subject: [crac] RFR: Wait until G1 GC has finished before creating a snapshot. [v6] In-Reply-To: References: Message-ID: On Sat, 29 Jul 2023 01:26:38 GMT, Jan Kratochvil wrote: >> @rvansa did report his snapshots are about 2x-3x bigger than they should be. He then also found it only happens if the snapshot is done too quickly after GC should have been run. >> >> One can reproduce the race case by: >> >> --- a/src/hotspot/share/gc/g1/g1UncommitRegionTask.hpp >> +++ b/src/hotspot/share/gc/g1/g1UncommitRegionTask.hpp >> @@ -35,7 +35,7 @@ class G1UncommitRegionTask : public G1ServiceTask { >> // is short, while still making reasonable progress. >> static const uint UncommitSizeLimit = 128 * M; >> // Initial delay in milliseconds after GC before the regions are uncommitted. >> - static const uint UncommitInitialDelayMs = 100; >> + static const uint UncommitInitialDelayMs = 10*1000; >> // The delay between two uncommit task executions. >> static const uint UncommitTaskDelayMs = 10; > > Jan Kratochvil has updated the pull request incrementally with one additional commit since the last revision: > > Make -active volatile. > - bugreported by Sergey Nazarkin src/hotspot/share/gc/g1/g1UncommitRegionTask.cpp line 133: > 131: // Nothing more to do, change state and report a summary. > 132: set_active(false); > 133: _active_sem.signal(); AFAICS the signal() increments the semaphore count. So the count is the number of executions of the uncommit task. That's, another wait() may succeed even when the opeartion is in progress (by decrementing the value accumulated during previous exections). And I share concerns about access to the _active. For safe access there should be a critical section with acquire and release. Do we really need to synchronize with the G1UncommitRegionTask? Maybe, can we call `G1CollectedHeap::uncommit_regions` directly (that is being called by the UncommitTask eventually)? ------------- PR Review Comment: https://git.openjdk.org/crac/pull/93#discussion_r1283105222 From jkratochvil at openjdk.org Thu Aug 3 12:28:57 2023 From: jkratochvil at openjdk.org (Jan Kratochvil) Date: Thu, 3 Aug 2023 12:28:57 GMT Subject: [crac] RFR: Wait until G1 GC has finished before creating a snapshot. [v6] In-Reply-To: References: Message-ID: On Thu, 3 Aug 2023 12:03:44 GMT, Anton Kozlov wrote: >> Jan Kratochvil has updated the pull request incrementally with one additional commit since the last revision: >> >> Make -active volatile. >> - bugreported by Sergey Nazarkin > > src/hotspot/share/gc/g1/g1UncommitRegionTask.cpp line 133: > >> 131: // Nothing more to do, change state and report a summary. >> 132: set_active(false); >> 133: _active_sem.signal(); > > AFAICS the signal() increments the semaphore count. So the count is the number of executions of the uncommit task. That's, another wait() may succeed even when the opeartion is in progress (by decrementing the value accumulated during previous exections). > > And I share concerns about access to the _active. For safe access there should be a critical section with acquire and release. > > Do we really need to synchronize with the G1UncommitRegionTask? Maybe, can we call `G1CollectedHeap::uncommit_regions` directly (that is being called by the UncommitTask eventually)? If there are multiple `signal()` calls stored then it will just run multiple times with no effect in the `while` cycle: https://github.com/openjdk/crac/pull/93/files#diff-b7c9d7a6a2eb233cfe201f2b07c4623fda47f1ac06174b66a95b1e46d9ec6450R143 I do not think `_active` is needed to be atomic there, that would be also already fixing existing OpenJDK code. But I will put it there, I agree it cannot harm. atomic is definitely cheaper than a mutex acquire+release protecting a single variable with the same safety so no mutex is needed. You suggest during CRaC snapshot the whole VM is already frozen so we do not need any synchronization? OK, if it is so I can just call `uncommit_regions`. ------------- PR Review Comment: https://git.openjdk.org/crac/pull/93#discussion_r1283129815 From akozlov at openjdk.org Thu Aug 3 12:36:05 2023 From: akozlov at openjdk.org (Anton Kozlov) Date: Thu, 3 Aug 2023 12:36:05 GMT Subject: [crac] RFR: C++ize criuengine In-Reply-To: References: Message-ID: On Thu, 3 Aug 2023 09:39:13 GMT, Jan Kratochvil wrote: > As the #97 review has no good solution I have C++ized the `criuengine` first. Just to confirm, is this a non-functional refacotring? I don't see a lot of benefits from C++, and how it will help with #97, but I'm fine to change it in this way. ------------- Marked as reviewed by akozlov (Lead). PR Review: https://git.openjdk.org/crac/pull/98#pullrequestreview-1560995251 From jkratochvil at openjdk.org Thu Aug 3 12:44:55 2023 From: jkratochvil at openjdk.org (Jan Kratochvil) Date: Thu, 3 Aug 2023 12:44:55 GMT Subject: [crac] RFR: C++ize criuengine In-Reply-To: References: Message-ID: On Thu, 3 Aug 2023 09:39:13 GMT, Jan Kratochvil wrote: > As the #97 review has no good solution I have C++ized the `criuengine` first. > Just to confirm, is this a non-functional refactoring? yes ------------- PR Comment: https://git.openjdk.org/crac/pull/98#issuecomment-1663914662 From akozlov at openjdk.org Thu Aug 3 14:50:57 2023 From: akozlov at openjdk.org (Anton Kozlov) Date: Thu, 3 Aug 2023 14:50:57 GMT Subject: [crac] RFR: Wait until G1 GC has finished before creating a snapshot. [v6] In-Reply-To: References: Message-ID: On Thu, 3 Aug 2023 12:26:02 GMT, Jan Kratochvil wrote: > You suggest during CRaC snapshot the whole VM is already frozen so we do not need any synchronization? OK, if it is so I can just call `uncommit_regions`. Please check if that is safe. I propose to call g1h->uncommit_regions() from the VM operation. But I'm not a G1/GC expert. AFAICS G1ServiceThread (G1ServiceThread::run_service) calls Task's execute() without sync, so we need at most synchornization implied by G1UncommitRegionTask::execute [1]. I missed this in the first reading: what does SuspendibleThreadSetJoiner do? That can be unnecessary if the uncommit is performed from the VM op. I don't see any synchronization beyond that (excluding some inside of uncommit_regions and its callees). It may be worth to discuss this on hotspot-gc-dev mail list [2]. [1] https://github.com/openjdk/crac/blob/crac/src/hotspot/share/gc/g1/g1UncommitRegionTask.cpp#L105 [2] https://mail.openjdk.org/pipermail/hotspot-gc-dev/ ------------- PR Review Comment: https://git.openjdk.org/crac/pull/93#discussion_r1283318664 From jkratochvil at openjdk.org Thu Aug 3 17:06:01 2023 From: jkratochvil at openjdk.org (Jan Kratochvil) Date: Thu, 3 Aug 2023 17:06:01 GMT Subject: [crac] Integrated: C++ize criuengine In-Reply-To: References: Message-ID: On Thu, 3 Aug 2023 09:39:13 GMT, Jan Kratochvil wrote: > As the #97 review has no good solution I have C++ized the `criuengine` first. This pull request has now been integrated. Changeset: fbeaadb6 Author: Jan Kratochvil Committer: Anton Kozlov URL: https://git.openjdk.org/crac/commit/fbeaadb611f355b0616ebd25d86b9a7ced83276a Stats: 845 lines in 3 files changed: 414 ins; 429 del; 2 mod C++ize criuengine Reviewed-by: akozlov ------------- PR: https://git.openjdk.org/crac/pull/98 From jkratochvil at openjdk.org Fri Aug 4 06:28:57 2023 From: jkratochvil at openjdk.org (Jan Kratochvil) Date: Fri, 4 Aug 2023 06:28:57 GMT Subject: [crac] RFR: Print better diagnostics for spawning CRIU In-Reply-To: References: Message-ID: On Wed, 2 Aug 2023 17:15:17 GMT, Anton Kozlov wrote: >> It was always a mystery why it does not work this time as there are no error messages printed. >> Still may system call errors are currently not reported but those errors at least do not happen commonly. >> In fact `os::exec_child_process_and_wait` should be more verbose but that is already a part of OpenJDK so I did not modify it. >> It would be much easier if `criuengine.c` was in C++. I was considering to switch it but then I wrote it already in C. >> I understand this code will become obsolete after planned integration of CRIU into JVM but it may not yet be soon enough. > > src/java.base/unix/native/criuengine/criuengine.c line 101: > >> 99: char *retval; >> 100: if (path2[0] == '/') { >> 101: retval = strdup(path2); > > path_join apparently uses path1 only if path2 is relative, otherwise just returns path2. It's unclear from the function name. This looks more like > > static char *path_from(const char *cwd, const char *path) { > // compute abs path to `path` with the workdir `cwd` assumed > } The function name corresponds to: https://docs.python.org/3/library/os.path.html#os.path.join > If a segment is an absolute path, then all previous segments are ignored and joining continues from the absolute path segment. The function first parameter is not always used for `cwd`. ------------- PR Review Comment: https://git.openjdk.org/crac/pull/97#discussion_r1284032585 From jkratochvil at openjdk.org Fri Aug 4 06:38:02 2023 From: jkratochvil at openjdk.org (Jan Kratochvil) Date: Fri, 4 Aug 2023 06:38:02 GMT Subject: [crac] RFR: Print better diagnostics for spawning CRIU In-Reply-To: References: Message-ID: <_ShWjTAV0HOFSDb1JBo1_hXD2gBdkk_t7HGtJc2hBX0=.9289b917-fe39-4079-aece-3501c4accab6@github.com> On Wed, 2 Aug 2023 17:33:28 GMT, Anton Kozlov wrote: >> It was always a mystery why it does not work this time as there are no error messages printed. >> Still may system call errors are currently not reported but those errors at least do not happen commonly. >> In fact `os::exec_child_process_and_wait` should be more verbose but that is already a part of OpenJDK so I did not modify it. >> It would be much easier if `criuengine.c` was in C++. I was considering to switch it but then I wrote it already in C. >> I understand this code will become obsolete after planned integration of CRIU into JVM but it may not yet be soon enough. > > src/java.base/unix/native/criuengine/criuengine.c line 115: > >> 113: } >> 114: >> 115: static char *path_abs(const char *rel) { > > Is not this exactly `realpath()`? Not really as `realpath()` is resolving symlinks while this function does not. I agree the code is ugly, I originally expected it will be more nice in C++ but then I realized [std::filesystem::path](https://en.cppreference.com/w/cpp/filesystem/path) is `C++17` only. > src/java.base/unix/native/criuengine/criuengine.c line 131: > >> 129: free(rel1_abs); >> 130: return retval; >> 131: } > > This function is closer to path_from, rather than to abs. But by using just path_join/path_from, we'll provide a shorter yet still correct path to the log (the only use of the function), so I propose to drop it. It became now simple enough in C++, is it OK? > src/java.base/unix/native/criuengine/criuengine.c line 215: > >> 213: if (child != wait(&status)) { >> 214: criu_cmdline = join_args(args); >> 215: fprintf(stderr, "Error waiting for spawned CRIU \"%s\": %m\n", criu_cmdline); > > Calling fprintf repeatedly multiple time would save us from too complex join_args(), right? Could you do this? With C++ `std::string` it has been solved, hasn't it? > src/java.base/unix/native/criuengine/criuengine.c line 227: > >> 225: criu_log = path_abs2(imagedir, log_local); >> 226: fprintf(stderr, "Spawned CRIU \"%s\" has not properly exited: exit code %d - check %s\n", criu_cmdline, WEXITSTATUS(status), criu_log); >> 227: } > > Could you unify these handlings? There is a slight difference in each code path. Either it got fixed by C++ or describe more the difference, please. ------------- PR Review Comment: https://git.openjdk.org/crac/pull/97#discussion_r1284036451 PR Review Comment: https://git.openjdk.org/crac/pull/97#discussion_r1284036765 PR Review Comment: https://git.openjdk.org/crac/pull/97#discussion_r1284037517 PR Review Comment: https://git.openjdk.org/crac/pull/97#discussion_r1284038029 From jkratochvil at openjdk.org Fri Aug 4 06:44:25 2023 From: jkratochvil at openjdk.org (Jan Kratochvil) Date: Fri, 4 Aug 2023 06:44:25 GMT Subject: [crac] RFR: Print better diagnostics for spawning CRIU [v2] In-Reply-To: References: Message-ID: > It was always a mystery why it does not work this time as there are no error messages printed. > Still may system call errors are currently not reported but those errors at least do not happen commonly. > In fact `os::exec_child_process_and_wait` should be more verbose but that is already a part of OpenJDK so I did not modify it. > It would be much easier if `criuengine.c` was in C++. I was considering to switch it but then I wrote it already in C. > I understand this code will become obsolete after planned integration of CRIU into JVM but it may not yet be soon enough. Jan Kratochvil has updated the pull request with a new target base due to a merge or a rebase. The pull request now contains three commits: - print error messages in C++ - Merge branch 'crac' into crac-error - Print better diagnostics for spawning CRIU. ------------- Changes: https://git.openjdk.org/crac/pull/97/files Webrev: https://webrevs.openjdk.org/?repo=crac&pr=97&range=01 Stats: 68 lines in 2 files changed: 62 ins; 0 del; 6 mod Patch: https://git.openjdk.org/crac/pull/97.diff Fetch: git fetch https://git.openjdk.org/crac.git pull/97/head:pull/97 PR: https://git.openjdk.org/crac/pull/97 From jkratochvil at openjdk.org Fri Aug 4 07:58:23 2023 From: jkratochvil at openjdk.org (Jan Kratochvil) Date: Fri, 4 Aug 2023 07:58:23 GMT Subject: [crac] RFR: Wait until G1 GC has finished before creating a snapshot. [v7] In-Reply-To: References: Message-ID: > @rvansa did report his snapshots are about 2x-3x bigger than they should be. He then also found it only happens if the snapshot is done too quickly after GC should have been run. > > One can reproduce the race case by: > > --- a/src/hotspot/share/gc/g1/g1UncommitRegionTask.hpp > +++ b/src/hotspot/share/gc/g1/g1UncommitRegionTask.hpp > @@ -35,7 +35,7 @@ class G1UncommitRegionTask : public G1ServiceTask { > // is short, while still making reasonable progress. > static const uint UncommitSizeLimit = 128 * M; > // Initial delay in milliseconds after GC before the regions are uncommitted. > - static const uint UncommitInitialDelayMs = 100; > + static const uint UncommitInitialDelayMs = 10*1000; > // The delay between two uncommit task executions. > static const uint UncommitTaskDelayMs = 10; Jan Kratochvil has updated the pull request with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. The pull request contains eight additional commits since the last revision: - Do not use synchronization, directly unmap it. - Merge branch 'crac' into crac-g1gcwait - Make -active volatile. - bugreported by Sergey Nazarkin - Remove accidental change of UncommitInitialDelayMs. - bugreported by Radim Vansa - Add an assertion at least for !is_ConcurrentGC_thread(). - Remove calling thread state assertions for wait_for_collection_finish(). - Add a generic virtual method wait_for_collection_finish(). - based on a review by Radim Vansa. Assert calling thread state for wait_for_collection_finish(). - based on a review by Radim Vansa. - Wait until G1 GC has finished before creating a snapshot. ------------- Changes: - all: https://git.openjdk.org/crac/pull/93/files - new: https://git.openjdk.org/crac/pull/93/files/2eb4a7ee..355d8224 Webrevs: - full: https://webrevs.openjdk.org/?repo=crac&pr=93&range=06 - incr: https://webrevs.openjdk.org/?repo=crac&pr=93&range=05-06 Stats: 884 lines in 9 files changed: 416 ins; 444 del; 24 mod Patch: https://git.openjdk.org/crac/pull/93.diff Fetch: git fetch https://git.openjdk.org/crac.git pull/93/head:pull/93 PR: https://git.openjdk.org/crac/pull/93 From jkratochvil at openjdk.org Fri Aug 4 07:58:25 2023 From: jkratochvil at openjdk.org (Jan Kratochvil) Date: Fri, 4 Aug 2023 07:58:25 GMT Subject: [crac] RFR: Wait until G1 GC has finished before creating a snapshot. [v6] In-Reply-To: References: Message-ID: On Thu, 3 Aug 2023 14:47:58 GMT, Anton Kozlov wrote: >> If there are multiple `signal()` calls stored then it will just run multiple times with no effect in the `while` cycle: https://github.com/openjdk/crac/pull/93/files#diff-b7c9d7a6a2eb233cfe201f2b07c4623fda47f1ac06174b66a95b1e46d9ec6450R143 >> I do not think `_active` is needed to be atomic there, that would be also already fixing existing OpenJDK code. But I will put it there, I agree it cannot harm. atomic is definitely cheaper than a mutex acquire+release protecting a single variable with the same safety so no mutex is needed. >> You suggest during CRaC snapshot the whole VM is already frozen so we do not need any synchronization? OK, if it is so I can just call `uncommit_regions`. > >> You suggest during CRaC snapshot the whole VM is already frozen so we do not need any synchronization? OK, if it is so I can just call `uncommit_regions`. > > Please check if that is safe. I propose to call g1h->uncommit_regions() from the VM operation. But I'm not a G1/GC expert. AFAICS G1ServiceThread (G1ServiceThread::run_service) calls Task's execute() without sync, so we need at most synchornization implied by G1UncommitRegionTask::execute [1]. I missed this in the first reading: what does SuspendibleThreadSetJoiner do? That can be unnecessary if the uncommit is performed from the VM op. I don't see any synchronization beyond that (excluding some inside of uncommit_regions and its callees). > > It may be worth to discuss this on hotspot-gc-dev mail list [2]. > > [1] https://github.com/openjdk/crac/blob/crac/src/hotspot/share/gc/g1/g1UncommitRegionTask.cpp#L105 > [2] https://mail.openjdk.org/pipermail/hotspot-gc-dev/ I do not know much how all the threads and VM threads and GC pauses work but I disagree with this patch. The patch before was waiting until the asynchronous `G1UncommitRegionTask` has done its job. Currently we do the job ourselves but that means `G1UncommitRegionTask` can be executed asynchronously while we do the same job in our thread. And I do not see any `synchronized` keywords in the `uncommit_regions` code this patch calls now. So two threads doing the same job will clash. ------------- PR Review Comment: https://git.openjdk.org/crac/pull/93#discussion_r1284105645 From akozlov at openjdk.org Fri Aug 4 11:36:35 2023 From: akozlov at openjdk.org (Anton Kozlov) Date: Fri, 4 Aug 2023 11:36:35 GMT Subject: [crac] RFR: Update copyrights Message-ID: Add missing copyrights and licenses. ------------- Commit messages: - Update copyrights Changes: https://git.openjdk.org/crac/pull/99/files Webrev: https://webrevs.openjdk.org/?repo=crac&pr=99&range=00 Stats: 239 lines in 10 files changed: 238 ins; 0 del; 1 mod Patch: https://git.openjdk.org/crac/pull/99.diff Fetch: git fetch https://git.openjdk.org/crac.git pull/99/head:pull/99 PR: https://git.openjdk.org/crac/pull/99 From yizhe at pku.edu.cn Sat Aug 5 12:41:58 2023 From: yizhe at pku.edu.cn (Yizhe Sun) Date: Sat, 5 Aug 2023 20:41:58 +0800 (GMT+08:00) Subject: Bug Report: arguments supplied to restore are split with whitespace In-Reply-To: <91a1b6b7-4bb5-00a1-1cf0-92a9dcc98194@azul.com> References: <783b98b1.b1954.189b52b0245.Coremail.yizhe@pku.edu.cn> <91a1b6b7-4bb5-00a1-1cf0-92a9dcc98194@azul.com> Message-ID: <2386bf0c.b7c38.189c5b80548.Coremail.yizhe@pku.edu.cn> > On 8/2/23 10:34, ??? wrote: > > Calling `java -XX:CRaCRestore Foo arg1` when there is whitespace in `arg1` causes `arg1` to be split into multiple arguments. > > Thanks for the report. Indeed, AFAIR, this can be caused by the way how arguments are passed from the launcher to the VM on restore. > > Thanks, > Anton If nobody has started on this yet, I'm willing to work on this bug myself. If someone could give me a few pointers, that would be very helpful. From jkratochvil at openjdk.org Sun Aug 6 12:51:52 2023 From: jkratochvil at openjdk.org (Jan Kratochvil) Date: Sun, 6 Aug 2023 12:51:52 GMT Subject: [crac] RFR: Wait until G1 GC has finished before creating a snapshot. [v6] In-Reply-To: References: Message-ID: On Fri, 4 Aug 2023 07:52:32 GMT, Jan Kratochvil wrote: >>> You suggest during CRaC snapshot the whole VM is already frozen so we do not need any synchronization? OK, if it is so I can just call `uncommit_regions`. >> >> Please check if that is safe. I propose to call g1h->uncommit_regions() from the VM operation. But I'm not a G1/GC expert. AFAICS G1ServiceThread (G1ServiceThread::run_service) calls Task's execute() without sync, so we need at most synchornization implied by G1UncommitRegionTask::execute [1]. I missed this in the first reading: what does SuspendibleThreadSetJoiner do? That can be unnecessary if the uncommit is performed from the VM op. I don't see any synchronization beyond that (excluding some inside of uncommit_regions and its callees). >> >> It may be worth to discuss this on hotspot-gc-dev mail list [2]. >> >> [1] https://github.com/openjdk/crac/blob/crac/src/hotspot/share/gc/g1/g1UncommitRegionTask.cpp#L105 >> [2] https://mail.openjdk.org/pipermail/hotspot-gc-dev/ > > I do not know much how all the threads and VM threads and GC pauses work but I disagree with this patch. The patch before was waiting until the asynchronous `G1UncommitRegionTask` has done its job. Currently we do the job ourselves but that means `G1UncommitRegionTask` can be executed asynchronously while we do the same job in our thread. And I do not see any `synchronized` keywords in the `uncommit_regions` code this patch calls now. So two threads doing the same job will clash. I read now I should contact https://mail.openjdk.org/pipermail/hotspot-gc-dev/ , thanks for the advice. ------------- PR Review Comment: https://git.openjdk.org/crac/pull/93#discussion_r1285214504 From rvansa at openjdk.org Mon Aug 7 08:07:06 2023 From: rvansa at openjdk.org (Radim Vansa) Date: Mon, 7 Aug 2023 08:07:06 GMT Subject: [crac] RFR: Update copyrights In-Reply-To: References: Message-ID: On Fri, 4 Aug 2023 11:29:42 GMT, Anton Kozlov wrote: > Add missing copyrights and licenses. Why are you adding Oracle to files that have been created exclusively by us? ------------- PR Review: https://git.openjdk.org/crac/pull/99#pullrequestreview-1564777809 From akozlov at openjdk.org Mon Aug 7 12:38:11 2023 From: akozlov at openjdk.org (Anton Kozlov) Date: Mon, 7 Aug 2023 12:38:11 GMT Subject: [crac] RFR: Wait until G1 GC has finished before creating a snapshot. [v6] In-Reply-To: References: Message-ID: On Sun, 6 Aug 2023 12:49:36 GMT, Jan Kratochvil wrote: >> I do not know much how all the threads and VM threads and GC pauses work but I disagree with this patch. The patch before was waiting until the asynchronous `G1UncommitRegionTask` has done its job. Currently we do the job ourselves but that means `G1UncommitRegionTask` can be executed asynchronously while we do the same job in our thread. And I do not see any `synchronized` keywords in the `uncommit_regions` code this patch calls now. So two threads doing the same job will clash. > > I read now I should contact https://mail.openjdk.org/pipermail/hotspot-gc-dev/ , thanks for the advice. AFAICS HeapRegionManager::uncommit_inactive_regions is synchronized by Uncommit_lock. https://github.com/openjdk/crac/blob/fbeaadb611f355b0616ebd25d86b9a7ced83276a/src/hotspot/share/gc/g1/heapRegionManager.cpp#L311 ------------- PR Review Comment: https://git.openjdk.org/crac/pull/93#discussion_r1285803562 From akozlov at azul.com Tue Aug 8 09:32:51 2023 From: akozlov at azul.com (Anton Kozlov) Date: Tue, 8 Aug 2023 12:32:51 +0300 Subject: Bug Report: arguments supplied to restore are split with whitespace In-Reply-To: <2386bf0c.b7c38.189c5b80548.Coremail.yizhe@pku.edu.cn> References: <783b98b1.b1954.189b52b0245.Coremail.yizhe@pku.edu.cn> <91a1b6b7-4bb5-00a1-1cf0-92a9dcc98194@azul.com> <2386bf0c.b7c38.189c5b80548.Coremail.yizhe@pku.edu.cn> Message-ID: <7beb156a-d979-78e7-ece8-7e3f5a369a6c@azul.com> On 8/5/23 15:41, Yizhe Sun wrote: >> On 8/2/23 10:34, ??? wrote: >>> Calling `java -XX:CRaCRestore Foo arg1` when there is whitespace in `arg1` causes `arg1` to be split into multiple arguments. >> >> this can be caused by the way how arguments are passed from the launcher to the VM on restore. > > If nobody has started on this yet, I'm willing to work on this bug myself. If someone could give me a few pointers, that would be very helpful. Great! The VM in the initial process passes the context to being restored VM via shared memory, as a serialized data structure [1]. We reused existing Arguments::java_command() which in this turn does not suit the task very well. That value is set after the "sun.java.command" property, which is passed from the java launcher [3]. As we should not change existing sun.java.command semantics, apparently we need an alternative mechanism to pass unaltered properties from the launcher to the VM, so the initial VM will be able to serialize them properly. Thanks, Anton [1] https://github.com/openjdk/crac/blob/crac/src/hotspot/share/runtime/crac.cpp#L462 [2] https://github.com/openjdk/crac/blob/crac/src/hotspot/share/runtime/arguments.cpp#L1373 [3] https://github.com/openjdk/crac/blob/crac/src/java.base/share/native/libjli/java.c#L1829 From jkratochvil at openjdk.org Wed Aug 9 15:02:28 2023 From: jkratochvil at openjdk.org (Jan Kratochvil) Date: Wed, 9 Aug 2023 15:02:28 GMT Subject: [crac] RFR: Support -XX:CPUFeatures=ignore during -XX:CRaCRestoreFrom Message-ID: Support -XX:CPUFeatures=ignore during -XX:CRaCRestoreFrom ------------- Commit messages: - Document -XX:CPUFeatures=ignore, reject !ignore during -XX:CRaCRestoreFrom - Support -XX:CPUFeatures=ignore during -XX:CRaCRestoreFrom Changes: https://git.openjdk.org/crac/pull/100/files Webrev: https://webrevs.openjdk.org/?repo=crac&pr=100&range=00 Stats: 37 lines in 4 files changed: 32 ins; 2 del; 3 mod Patch: https://git.openjdk.org/crac/pull/100.diff Fetch: git fetch https://git.openjdk.org/crac.git pull/100/head:pull/100 PR: https://git.openjdk.org/crac/pull/100 From rvansa at openjdk.org Wed Aug 9 15:03:59 2023 From: rvansa at openjdk.org (Radim Vansa) Date: Wed, 9 Aug 2023 15:03:59 GMT Subject: [crac] RFR: Support -XX:CPUFeatures=ignore during -XX:CRaCRestoreFrom In-Reply-To: References: Message-ID: On Wed, 9 Aug 2023 13:55:30 GMT, Jan Kratochvil wrote: > Support -XX:CPUFeatures=ignore during -XX:CRaCRestoreFrom The 'ignore' option is not documented in the option description. Also it's not clear what happens when you set the option with a different (mask-like) value on restore; IIUC this is ignored without any (warning) message. ------------- PR Review: https://git.openjdk.org/crac/pull/100#pullrequestreview-1569676332 From rvansa at openjdk.org Wed Aug 9 15:30:00 2023 From: rvansa at openjdk.org (Radim Vansa) Date: Wed, 9 Aug 2023 15:30:00 GMT Subject: [crac] RFR: Support -XX:CPUFeatures=ignore during -XX:CRaCRestoreFrom In-Reply-To: References: Message-ID: On Wed, 9 Aug 2023 13:55:30 GMT, Jan Kratochvil wrote: > Support -XX:CPUFeatures=ignore during -XX:CRaCRestoreFrom src/hotspot/cpu/x86/globals_x86.hpp line 229: > 227: "get an error during -XX:CRaCRestoreFrom on a different machine; " \ > 228: "-XX:CPUFeatures=native is the default; " \ > 229: "-XX:CPUFeatures=ignore will disable the CPU features check; " \ What happens when you set `CPUFeatures=ignore` on checkpoint? src/hotspot/cpu/x86/vm_version_x86.cpp line 2569: > 2567: tty->print_raw(part2, sizeof(part2) - 1); > 2568: tty->cr(); > 2569: vm_exit_during_initialization(); Will this work when you set `CPUFeatures=generic` before checkpoint and don't set anything during restore? The option will keep its value and this might trigger the error. If you don't want to add some extra tests you might piggyback in `VMOptionsTest`. ------------- PR Review Comment: https://git.openjdk.org/crac/pull/100#discussion_r1288688744 PR Review Comment: https://git.openjdk.org/crac/pull/100#discussion_r1288686707 From akozlov at openjdk.org Wed Aug 9 20:01:28 2023 From: akozlov at openjdk.org (Anton Kozlov) Date: Wed, 9 Aug 2023 20:01:28 GMT Subject: [crac] RFR: Print better diagnostics for spawning CRIU [v2] In-Reply-To: References: Message-ID: On Fri, 4 Aug 2023 06:44:25 GMT, Jan Kratochvil wrote: >> It was always a mystery why it does not work this time as there are no error messages printed. >> Still may system call errors are currently not reported but those errors at least do not happen commonly. >> In fact `os::exec_child_process_and_wait` should be more verbose but that is already a part of OpenJDK so I did not modify it. >> It would be much easier if `criuengine.c` was in C++. I was considering to switch it but then I wrote it already in C. >> I understand this code will become obsolete after planned integration of CRIU into JVM but it may not yet be soon enough. > > Jan Kratochvil has updated the pull request with a new target base due to a merge or a rebase. The pull request now contains three commits: > > - print error messages in C++ > - Merge branch 'crac' into crac-error > - Print better diagnostics for spawning CRIU. OK, looks fine although a bit overcomplicated as for me. src/java.base/unix/native/criuengine/criuengine.cpp line 91: > 89: } > 90: } > 91: retval += '\''; It will be surprised to meet these symbols in the args, and IMHO this is overly complicated way to report them src/java.base/unix/native/criuengine/criuengine.cpp line 109: > 107: free(cwd_s); > 108: return path_from(cwd, rel); > 109: } The problem with this function as abstraction is that it first calculates CWD, then checks was the argument absolute or relative. src/java.base/unix/native/criuengine/criuengine.cpp line 199: > 197: if (WEXITSTATUS(status) != SUPPRESS_ERROR_IN_PARENT) { > 198: std::cerr << "Spawned CRIU \"" << join_args(args) << "\" has not properly exited:" > 199: " exit code " << WEXITSTATUS(status) << " - check " << path_abs(imagedir, log_local) << std::endl; we are not required to abs(imagedir), as unprocessed that is in the same way as it was provided in the args ------------- Marked as reviewed by akozlov (Lead). PR Review: https://git.openjdk.org/crac/pull/97#pullrequestreview-1570417037 PR Review Comment: https://git.openjdk.org/crac/pull/97#discussion_r1289114649 PR Review Comment: https://git.openjdk.org/crac/pull/97#discussion_r1289111229 PR Review Comment: https://git.openjdk.org/crac/pull/97#discussion_r1289115491 From akozlov at openjdk.org Wed Aug 9 20:04:58 2023 From: akozlov at openjdk.org (Anton Kozlov) Date: Wed, 9 Aug 2023 20:04:58 GMT Subject: [crac] RFR: Print better diagnostics for spawning CRIU [v2] In-Reply-To: <_ShWjTAV0HOFSDb1JBo1_hXD2gBdkk_t7HGtJc2hBX0=.9289b917-fe39-4079-aece-3501c4accab6@github.com> References: <_ShWjTAV0HOFSDb1JBo1_hXD2gBdkk_t7HGtJc2hBX0=.9289b917-fe39-4079-aece-3501c4accab6@github.com> Message-ID: On Fri, 4 Aug 2023 06:34:53 GMT, Jan Kratochvil wrote: >> src/java.base/unix/native/criuengine/criuengine.c line 227: >> >>> 225: criu_log = path_abs2(imagedir, log_local); >>> 226: fprintf(stderr, "Spawned CRIU \"%s\" has not properly exited: exit code %d - check %s\n", criu_cmdline, WEXITSTATUS(status), criu_log); >>> 227: } >> >> Could you unify these handlings? There is a slight difference in each code path. > > Either it got fixed by C++ or describe more the difference, please. I was thinking of something like if (child != wait(&status)) { msg = "unexpected child pid" } else if (!WIFEXITED(status)) { msg = "child killed" } else if ((ecode = WEXITSTATUS(status))) { msg = asprintf("exit code: %d", ecode); } fprintf("CRIU failure: %s", msg) for (int i = 0; i < n_args; ++i) { fprintf(" %s", args[i]); That would not also require join_args abstrastion, but OK. ------------- PR Review Comment: https://git.openjdk.org/crac/pull/97#discussion_r1289122221 From akozlov at openjdk.org Wed Aug 9 20:25:08 2023 From: akozlov at openjdk.org (Anton Kozlov) Date: Wed, 9 Aug 2023 20:25:08 GMT Subject: [crac] RFR: Support -XX:CPUFeatures=ignore during -XX:CRaCRestoreFrom In-Reply-To: References: Message-ID: On Wed, 9 Aug 2023 15:08:56 GMT, Radim Vansa wrote: >> Support -XX:CPUFeatures=ignore during -XX:CRaCRestoreFrom > > src/hotspot/cpu/x86/globals_x86.hpp line 229: > >> 227: "get an error during -XX:CRaCRestoreFrom on a different machine; " \ >> 228: "-XX:CPUFeatures=native is the default; " \ >> 229: "-XX:CPUFeatures=ignore will disable the CPU features check; " \ > > What happens when you set `CPUFeatures=ignore` on checkpoint? That should make to use the current CPU features, the option was supported, apparently just not documented. > src/hotspot/cpu/x86/vm_version_x86.cpp line 2569: > >> 2567: tty->print_raw(part2, sizeof(part2) - 1); >> 2568: tty->cr(); >> 2569: vm_exit_during_initialization(); > > Will this work when you set `CPUFeatures=generic` before checkpoint and don't set anything during restore? The option will keep its value and this might trigger the error. > If you don't want to add some extra tests you might piggyback in `VMOptionsTest`. Agree. And we are unable to handle e.g. `generic` specified for restore, although it's documented. Having dedicated IgnoreCPUFeatures would simplify the implementation a lot, and we'd also could make it Experimental, as it should be. ------------- PR Review Comment: https://git.openjdk.org/crac/pull/100#discussion_r1289132670 PR Review Comment: https://git.openjdk.org/crac/pull/100#discussion_r1289140354 From akozlov at openjdk.org Wed Aug 9 20:25:11 2023 From: akozlov at openjdk.org (Anton Kozlov) Date: Wed, 9 Aug 2023 20:25:11 GMT Subject: [crac] RFR: Support -XX:CPUFeatures=ignore during -XX:CRaCRestoreFrom In-Reply-To: References: Message-ID: On Wed, 9 Aug 2023 13:55:30 GMT, Jan Kratochvil wrote: > Support -XX:CPUFeatures=ignore during -XX:CRaCRestoreFrom src/hotspot/cpu/x86/vm_version_x86.cpp line 1219: > 1217: } > 1218: return !*a && !*b; > 1219: } Compiler can inline a call to strcmp if it recognizes the pattern, so this is not really safe. And since we are calling the argument check after VM_Crac::read_shm, it's a bit late to worry about libc... It may be just fine to leave the one who are give up the safety with possible crashes. ------------- PR Review Comment: https://git.openjdk.org/crac/pull/100#discussion_r1289132860 From jkratochvil at openjdk.org Wed Aug 9 22:59:58 2023 From: jkratochvil at openjdk.org (Jan Kratochvil) Date: Wed, 9 Aug 2023 22:59:58 GMT Subject: [crac] RFR: Print better diagnostics for spawning CRIU [v2] In-Reply-To: References: Message-ID: On Wed, 9 Aug 2023 19:40:33 GMT, Anton Kozlov wrote: >> Jan Kratochvil has updated the pull request with a new target base due to a merge or a rebase. The pull request now contains three commits: >> >> - print error messages in C++ >> - Merge branch 'crac' into crac-error >> - Print better diagnostics for spawning CRIU. > > src/java.base/unix/native/criuengine/criuengine.cpp line 91: > >> 89: } >> 90: } >> 91: retval += '\''; > > It will be surprised to meet these symbols in the args, and IMHO this is overly complicated way to report them Should it therefore abort when it sees such symbol? Otherwise the problem will not be reproducible from the error message. > src/java.base/unix/native/criuengine/criuengine.cpp line 109: > >> 107: free(cwd_s); >> 108: return path_from(cwd, rel); >> 109: } > > The problem with this function as abstraction is that it first calculates CWD, then checks was the argument absolute or relative. The code was more simple that way and it was straightforward to replace it with C++17 `std::filesystem::path` after [OpenJDK makes the switch to C++17](https://bugs.openjdk.org/browse/JDK-8310260). ------------- PR Review Comment: https://git.openjdk.org/crac/pull/97#discussion_r1289328676 PR Review Comment: https://git.openjdk.org/crac/pull/97#discussion_r1289311008 From jkratochvil at openjdk.org Wed Aug 9 23:11:28 2023 From: jkratochvil at openjdk.org (Jan Kratochvil) Date: Wed, 9 Aug 2023 23:11:28 GMT Subject: [crac] RFR: Print better diagnostics for spawning CRIU [v2] In-Reply-To: References: Message-ID: On Wed, 9 Aug 2023 19:41:33 GMT, Anton Kozlov wrote: >> Jan Kratochvil has updated the pull request with a new target base due to a merge or a rebase. The pull request now contains three commits: >> >> - print error messages in C++ >> - Merge branch 'crac' into crac-error >> - Print better diagnostics for spawning CRIU. > > src/java.base/unix/native/criuengine/criuengine.cpp line 199: > >> 197: if (WEXITSTATUS(status) != SUPPRESS_ERROR_IN_PARENT) { >> 198: std::cerr << "Spawned CRIU \"" << join_args(args) << "\" has not properly exited:" >> 199: " exit code " << WEXITSTATUS(status) << " - check " << path_abs(imagedir, log_local) << std::endl; > > we are not required to abs(imagedir), as unprocessed that is in the same way as it was provided in the args The problem is users do not execute `criuengine` themselves. From my experience: $ $JTREG_HOME/bin/jtreg -jdk:$ZULU_HOME -v:all -timeout:10 $TEST_HOME/test/jdk/jdk/crac/BigCheckpointTest.java Spawned CRIU "/home/azul/azul/crac-git/build/linux-x86_64-server-fastdebug/images/jdk/lib/criu dump -t 648896 -D cr --shell-job -v4 -o dump4.log" has not properly exited: exit code 1 - check dump4.log $ ls -l dump4.log ls: cannot access 'dump4.log': No such file or directory How to find out `dump4.log` is hiding in the `JTwork/scratch_1/cr` subdirectory? $ ls -l ./JTwork/scratch_1/cr/dump4.log -rw------- 1 azul azul 3547 Aug 10 06:58 ./JTwork/scratch_1/cr/dump4.log ------------- PR Review Comment: https://git.openjdk.org/crac/pull/97#discussion_r1289340035 From jkratochvil at openjdk.org Wed Aug 9 23:35:58 2023 From: jkratochvil at openjdk.org (Jan Kratochvil) Date: Wed, 9 Aug 2023 23:35:58 GMT Subject: [crac] RFR: Print better diagnostics for spawning CRIU [v3] In-Reply-To: References: Message-ID: > It was always a mystery why it does not work this time as there are no error messages printed. > Still may system call errors are currently not reported but those errors at least do not happen commonly. > In fact `os::exec_child_process_and_wait` should be more verbose but that is already a part of OpenJDK so I did not modify it. > It would be much easier if `criuengine.c` was in C++. I was considering to switch it but then I wrote it already in C. > I understand this code will become obsolete after planned integration of CRIU into JVM but it may not yet be soon enough. Jan Kratochvil has updated the pull request incrementally with one additional commit since the last revision: Remove std::filesystem::path::operator /= abstraction ------------- Changes: - all: https://git.openjdk.org/crac/pull/97/files - new: https://git.openjdk.org/crac/pull/97/files/a63b46b9..74ea1e2c Webrevs: - full: https://webrevs.openjdk.org/?repo=crac&pr=97&range=02 - incr: https://webrevs.openjdk.org/?repo=crac&pr=97&range=01-02 Stats: 12 lines in 1 file changed: 6 ins; 4 del; 2 mod Patch: https://git.openjdk.org/crac/pull/97.diff Fetch: git fetch https://git.openjdk.org/crac.git pull/97/head:pull/97 PR: https://git.openjdk.org/crac/pull/97 From rvansa at openjdk.org Thu Aug 10 06:44:28 2023 From: rvansa at openjdk.org (Radim Vansa) Date: Thu, 10 Aug 2023 06:44:28 GMT Subject: [crac] RFR: Print better diagnostics for spawning CRIU [v2] In-Reply-To: References: Message-ID: On Wed, 9 Aug 2023 23:05:07 GMT, Jan Kratochvil wrote: >> src/java.base/unix/native/criuengine/criuengine.cpp line 199: >> >>> 197: if (WEXITSTATUS(status) != SUPPRESS_ERROR_IN_PARENT) { >>> 198: std::cerr << "Spawned CRIU \"" << join_args(args) << "\" has not properly exited:" >>> 199: " exit code " << WEXITSTATUS(status) << " - check " << path_abs(imagedir, log_local) << std::endl; >> >> we are not required to abs(imagedir), as unprocessed that is in the same way as it was provided in the args > > The problem is users do not execute `criuengine` themselves. From my experience: > > $ $JTREG_HOME/bin/jtreg -jdk:$ZULU_HOME -v:all -timeout:10 $TEST_HOME/test/jdk/jdk/crac/BigCheckpointTest.java > Spawned CRIU "/home/azul/azul/crac-git/build/linux-x86_64-server-fastdebug/images/jdk/lib/criu dump -t 648896 -D cr --shell-job -v4 -o dump4.log" has not properly exited: exit code 1 - check dump4.log > $ ls -l dump4.log > ls: cannot access 'dump4.log': No such file or directory > > How to find out `dump4.log` is hiding in the `JTwork/scratch_1/cr` subdirectory? > > $ ls -l ./JTwork/scratch_1/cr/dump4.log > -rw------- 1 azul azul 3547 Aug 10 06:58 ./JTwork/scratch_1/cr/dump4.log A little side note on the wording: the 'Spawned' looks like a verb at first glance and the command breaks fluency of the sentence. I would make the log a bit more structured: CRIU failed with exit code 1 - check /path/to/dump4.log for details. Command: /home/azul/azul/crac-git/build/linux-x86_64-server-fastdebug/images/jdk/lib/criu dump -t 648896 -D cr --shell-job -v4 -o dump4.log ------------- PR Review Comment: https://git.openjdk.org/crac/pull/97#discussion_r1289627496 From jkratochvil at openjdk.org Thu Aug 10 07:24:01 2023 From: jkratochvil at openjdk.org (Jan Kratochvil) Date: Thu, 10 Aug 2023 07:24:01 GMT Subject: [crac] RFR: Support -XX:CPUFeatures=ignore during -XX:CRaCRestoreFrom [v2] In-Reply-To: References: Message-ID: > Support -XX:CPUFeatures=ignore during -XX:CRaCRestoreFrom Jan Kratochvil has updated the pull request incrementally with one additional commit since the last revision: Split off crac_restore_finalize() from crac_restore(). ------------- Changes: - all: https://git.openjdk.org/crac/pull/100/files - new: https://git.openjdk.org/crac/pull/100/files/21251240..c1ad38e4 Webrevs: - full: https://webrevs.openjdk.org/?repo=crac&pr=100&range=01 - incr: https://webrevs.openjdk.org/?repo=crac&pr=100&range=00-01 Stats: 63 lines in 8 files changed: 26 ins; 23 del; 14 mod Patch: https://git.openjdk.org/crac/pull/100.diff Fetch: git fetch https://git.openjdk.org/crac.git pull/100/head:pull/100 PR: https://git.openjdk.org/crac/pull/100 From jkratochvil at openjdk.org Thu Aug 10 07:28:29 2023 From: jkratochvil at openjdk.org (Jan Kratochvil) Date: Thu, 10 Aug 2023 07:28:29 GMT Subject: [crac] RFR: Print better diagnostics for spawning CRIU [v4] In-Reply-To: References: Message-ID: > It was always a mystery why it does not work this time as there are no error messages printed. > Still may system call errors are currently not reported but those errors at least do not happen commonly. > In fact `os::exec_child_process_and_wait` should be more verbose but that is already a part of OpenJDK so I did not modify it. > It would be much easier if `criuengine.c` was in C++. I was considering to switch it but then I wrote it already in C. > I understand this code will become obsolete after planned integration of CRIU into JVM but it may not yet be soon enough. Jan Kratochvil has updated the pull request incrementally with one additional commit since the last revision: Reformat error messages - Radim Vansa ------------- Changes: - all: https://git.openjdk.org/crac/pull/97/files - new: https://git.openjdk.org/crac/pull/97/files/74ea1e2c..ad440f18 Webrevs: - full: https://webrevs.openjdk.org/?repo=crac&pr=97&range=03 - incr: https://webrevs.openjdk.org/?repo=crac&pr=97&range=02-03 Stats: 6 lines in 1 file changed: 1 ins; 0 del; 5 mod Patch: https://git.openjdk.org/crac/pull/97.diff Fetch: git fetch https://git.openjdk.org/crac.git pull/97/head:pull/97 PR: https://git.openjdk.org/crac/pull/97 From akozlov at openjdk.org Thu Aug 10 12:00:58 2023 From: akozlov at openjdk.org (Anton Kozlov) Date: Thu, 10 Aug 2023 12:00:58 GMT Subject: [crac] RFR: Print better diagnostics for spawning CRIU [v2] In-Reply-To: References: Message-ID: On Wed, 9 Aug 2023 22:45:26 GMT, Jan Kratochvil wrote: >> src/java.base/unix/native/criuengine/criuengine.cpp line 91: >> >>> 89: } >>> 90: } >>> 91: retval += '\''; >> >> It will be surprised to meet these symbols in the args, and IMHO this is overly complicated way to report them > > Should it therefore abort when it sees such symbol? Otherwise the problem will not be reproducible from the error message. You mean the line is not copy-pastable. But it is not such anyway, as it makes sense only for specific pid, and in the specific point in time (in VM_Crac safepoint). I'm fine with the current code. >> src/java.base/unix/native/criuengine/criuengine.cpp line 109: >> >>> 107: free(cwd_s); >>> 108: return path_from(cwd, rel); >>> 109: } >> >> The problem with this function as abstraction is that it first calculates CWD, then checks was the argument absolute or relative. > > The code was more simple that way and it was straightforward to replace it with C++17 `std::filesystem::path` after [OpenJDK makes the switch to C++17](https://bugs.openjdk.org/browse/JDK-8310260). The interface is fine, the implementation just could be more straightforward and efficient. The link you're refering has Resolution: Rejected. ------------- PR Review Comment: https://git.openjdk.org/crac/pull/97#discussion_r1290007985 PR Review Comment: https://git.openjdk.org/crac/pull/97#discussion_r1290006210 From akozlov at openjdk.org Thu Aug 10 12:01:28 2023 From: akozlov at openjdk.org (Anton Kozlov) Date: Thu, 10 Aug 2023 12:01:28 GMT Subject: [crac] RFR: Print better diagnostics for spawning CRIU [v2] In-Reply-To: References: Message-ID: On Thu, 10 Aug 2023 06:38:30 GMT, Radim Vansa wrote: >> The problem is users do not execute `criuengine` themselves. From my experience: >> >> $ $JTREG_HOME/bin/jtreg -jdk:$ZULU_HOME -v:all -timeout:10 $TEST_HOME/test/jdk/jdk/crac/BigCheckpointTest.java >> Spawned CRIU "/home/azul/azul/crac-git/build/linux-x86_64-server-fastdebug/images/jdk/lib/criu dump -t 648896 -D cr --shell-job -v4 -o dump4.log" has not properly exited: exit code 1 - check dump4.log >> $ ls -l dump4.log >> ls: cannot access 'dump4.log': No such file or directory >> >> How to find out `dump4.log` is hiding in the `JTwork/scratch_1/cr` subdirectory? >> >> $ ls -l ./JTwork/scratch_1/cr/dump4.log >> -rw------- 1 azul azul 3547 Aug 10 06:58 ./JTwork/scratch_1/cr/dump4.log > > A little side note on the wording: the 'Spawned' looks like a verb at first glance and the command breaks fluency of the sentence. I would make the log a bit more structured: > > CRIU failed with exit code 1 - check /path/to/dump4.log for details. > Command: /home/azul/azul/crac-git/build/linux-x86_64-server-fastdebug/images/jdk/lib/criu dump -t 648896 -D cr --shell-job -v4 -o dump4.log >> we are not required to abs(imagedir), as unprocessed that is in the same way as it was provided in the args > The problem is users do not execute criuengine themselves. From my experience: > $JTREG_HOME/bin/jtreg -jdk:$ZULU_HOME -v:all -timeout:10 $TEST_HOME/test/jdk/jdk/crac/BigCheckpointTest.java Spawned CRIU "/home/azul/azul/crac-git/build/linux-x86_64-server-fastdebug/images/jdk/lib/criu dump -t 648896 -D cr --shell-job -v4 -o dump4.log" has not properly exited: exit code 1 - check dump4.log My point was about absolute path for image dir. I.e. this one looks fine > $ java -XX:CRaCheckpointTo=./cr > Spawned CRIU "/home/azul/azul/crac-git/build/linux-x86_64-server-fastdebug/images/jdk/lib/criu dump -t 648896 -D ./cr --shell-job -v4 -o dump4.log" has not properly exited: exit code 1 - check *./cr/dump4.log* But Jtreg case is valid, OK. ------------- PR Review Comment: https://git.openjdk.org/crac/pull/97#discussion_r1290012673 From akozlov at openjdk.org Thu Aug 10 12:15:59 2023 From: akozlov at openjdk.org (Anton Kozlov) Date: Thu, 10 Aug 2023 12:15:59 GMT Subject: [crac] RFR: Print better diagnostics for spawning CRIU [v4] In-Reply-To: References: Message-ID: On Thu, 10 Aug 2023 07:28:29 GMT, Jan Kratochvil wrote: >> It was always a mystery why it does not work this time as there are no error messages printed. >> Still may system call errors are currently not reported but those errors at least do not happen commonly. >> In fact `os::exec_child_process_and_wait` should be more verbose but that is already a part of OpenJDK so I did not modify it. >> It would be much easier if `criuengine.c` was in C++. I was considering to switch it but then I wrote it already in C. >> I understand this code will become obsolete after planned integration of CRIU into JVM but it may not yet be soon enough. > > Jan Kratochvil has updated the pull request incrementally with one additional commit since the last revision: > > Reformat error messages > - Radim Vansa Marked as reviewed by akozlov (Lead). ------------- PR Review: https://git.openjdk.org/crac/pull/97#pullrequestreview-1571714639 From jkratochvil at openjdk.org Thu Aug 10 12:16:01 2023 From: jkratochvil at openjdk.org (Jan Kratochvil) Date: Thu, 10 Aug 2023 12:16:01 GMT Subject: [crac] RFR: Print better diagnostics for spawning CRIU [v2] In-Reply-To: References: Message-ID: On Thu, 10 Aug 2023 11:49:57 GMT, Anton Kozlov wrote: >> The code was more simple that way and it was straightforward to replace it with C++17 `std::filesystem::path` after [OpenJDK makes the switch to C++17](https://bugs.openjdk.org/browse/JDK-8310260). > > The interface is fine, the implementation just could be more straightforward and efficient. > > The link you're refering has Resolution: Rejected. It had been changed, is it OK now? https://github.com/openjdk/crac/pull/97/commits/74ea1e2c0171646b3bd4d2f6e4c8dd5eaecfae44 The C++17 switch has been currently rejected but IMO it must happen one day. ------------- PR Review Comment: https://git.openjdk.org/crac/pull/97#discussion_r1290017959 From akozlov at openjdk.org Thu Aug 10 14:16:58 2023 From: akozlov at openjdk.org (Anton Kozlov) Date: Thu, 10 Aug 2023 14:16:58 GMT Subject: [crac] RFR: Print better diagnostics for spawning CRIU [v4] In-Reply-To: References: Message-ID: <0I2_wabyF3dd-Uj_mgryWGUoR8ybfHVUzMe7UU_TrtI=.1b552ff2-85f4-4708-9175-8b6ae2f1905e@github.com> On Thu, 10 Aug 2023 07:28:29 GMT, Jan Kratochvil wrote: >> It was always a mystery why it does not work this time as there are no error messages printed. >> Still may system call errors are currently not reported but those errors at least do not happen commonly. >> In fact `os::exec_child_process_and_wait` should be more verbose but that is already a part of OpenJDK so I did not modify it. >> It would be much easier if `criuengine.c` was in C++. I was considering to switch it but then I wrote it already in C. >> I understand this code will become obsolete after planned integration of CRIU into JVM but it may not yet be soon enough. > > Jan Kratochvil has updated the pull request incrementally with one additional commit since the last revision: > > Reformat error messages > - Radim Vansa Thanks, and thanks to @rvansa for review ------------- PR Comment: https://git.openjdk.org/crac/pull/97#issuecomment-1673284287 From jkratochvil at openjdk.org Thu Aug 10 14:17:58 2023 From: jkratochvil at openjdk.org (Jan Kratochvil) Date: Thu, 10 Aug 2023 14:17:58 GMT Subject: [crac] Integrated: Print better diagnostics for spawning CRIU In-Reply-To: References: Message-ID: <3MITF6Aqx8HSrLfHRwf1Sw94u7uxG1j-4zyp5msrYGU=.b99812a8-e3fc-4289-9e67-26c17da28e70@github.com> On Mon, 31 Jul 2023 03:42:11 GMT, Jan Kratochvil wrote: > It was always a mystery why it does not work this time as there are no error messages printed. > Still may system call errors are currently not reported but those errors at least do not happen commonly. > In fact `os::exec_child_process_and_wait` should be more verbose but that is already a part of OpenJDK so I did not modify it. > It would be much easier if `criuengine.c` was in C++. I was considering to switch it but then I wrote it already in C. > I understand this code will become obsolete after planned integration of CRIU into JVM but it may not yet be soon enough. This pull request has now been integrated. Changeset: d3ea8456 Author: Jan Kratochvil Committer: Anton Kozlov URL: https://git.openjdk.org/crac/commit/d3ea8456815ebd161bbecac8fd8b4810a4c19443 Stats: 71 lines in 2 files changed: 65 ins; 0 del; 6 mod Print better diagnostics for spawning CRIU Reviewed-by: akozlov ------------- PR: https://git.openjdk.org/crac/pull/97 From duke at openjdk.org Thu Aug 10 18:34:28 2023 From: duke at openjdk.org (duke) Date: Thu, 10 Aug 2023 18:34:28 GMT Subject: git: openjdk/crac: created branch crac-17 based on the branch crac containing 0 unique commits Message-ID: The new branch crac-17 is currently identical to the crac branch. From akozlov at azul.com Thu Aug 10 19:35:16 2023 From: akozlov at azul.com (Anton Kozlov) Date: Thu, 10 Aug 2023 22:35:16 +0300 Subject: Project CRaC to track openjdk/jdk In-Reply-To: <28d93946-7816-98be-67ae-0c568fdcd368@azul.com> References: <127821f7-c0f2-201d-8875-ec80aa353da2@azul.com> <28d93946-7816-98be-67ae-0c568fdcd368@azul.com> Message-ID: <63415f5c-67ab-08c4-22ac-f5d9c48f03bc@azul.com> On 7/28/23 20:04, Anton Kozlov wrote: > ?- create final 17+6 EA build from crac > ?- fork branch crac-17 from that point > ?- merge changes from crac-master to crac branch (fast-forward) and remove > ?? crac-master branch The merge is done. Sorry for the delay and inconvenience. Thanks, Anton From jkratochvil at openjdk.org Fri Aug 11 07:47:59 2023 From: jkratochvil at openjdk.org (Jan Kratochvil) Date: Fri, 11 Aug 2023 07:47:59 GMT Subject: [crac] RFR: Fix missing include file. Message-ID: It is probably because I am using `--disable-precompiled-headers `. src/hotspot/share/runtime/threads.cpp: In static member function 'static jint Threads::check_for_restore(JavaVMInitArgs*)': src/hotspot/share/runtime/threads.cpp:415:5: error: 'crac' has not been declared 415 | crac::restore(); | ^~~~ src/hotspot/share/runtime/threads.cpp: In static member function 'static jint Threads::create_vm(JavaVMInitArgs*, bool*)': src/hotspot/share/runtime/threads.cpp:494:3: error: 'crac' has not been declared 494 | crac::vm_create_start(); | ^~~~ ------------- Commit messages: - Fix missing include file. Changes: https://git.openjdk.org/crac/pull/102/files Webrev: https://webrevs.openjdk.org/?repo=crac&pr=102&range=00 Stats: 1 line in 1 file changed: 1 ins; 0 del; 0 mod Patch: https://git.openjdk.org/crac/pull/102.diff Fetch: git fetch https://git.openjdk.org/crac.git pull/102/head:pull/102 PR: https://git.openjdk.org/crac/pull/102 From jkratochvil at openjdk.org Fri Aug 11 12:23:28 2023 From: jkratochvil at openjdk.org (Jan Kratochvil) Date: Fri, 11 Aug 2023 12:23:28 GMT Subject: [crac] RFR: Keep _features the same after CRaC restore Message-ID: Extending `_features` may change ABI or existing JIT-compiled code. Unfortunately we cannot use more advanced CPU features after restore, we need to stick to the same features of CPU used to make the checkpoint file. ------------- Commit messages: - Keep _features the same after CRaC restore Changes: https://git.openjdk.org/crac/pull/103/files Webrev: https://webrevs.openjdk.org/?repo=crac&pr=103&range=00 Stats: 22 lines in 1 file changed: 16 ins; 0 del; 6 mod Patch: https://git.openjdk.org/crac/pull/103.diff Fetch: git fetch https://git.openjdk.org/crac.git pull/103/head:pull/103 PR: https://git.openjdk.org/crac/pull/103 From akozlov at openjdk.org Sat Aug 12 09:43:28 2023 From: akozlov at openjdk.org (Anton Kozlov) Date: Sat, 12 Aug 2023 09:43:28 GMT Subject: [crac] RFR: Fix missing include file. In-Reply-To: References: Message-ID: On Fri, 11 Aug 2023 07:34:40 GMT, Jan Kratochvil wrote: > It is probably because I am using `--disable-precompiled-headers `. > > src/hotspot/share/runtime/threads.cpp: In static member function 'static jint Threads::check_for_restore(JavaVMInitArgs*)': src/hotspot/share/runtime/threads.cpp:415:5: error: 'crac' has not been declared > 415 | crac::restore(); > | ^~~~ > src/hotspot/share/runtime/threads.cpp: In static member function 'static jint Threads::create_vm(JavaVMInitArgs*, bool*)': > src/hotspot/share/runtime/threads.cpp:494:3: error: 'crac' has not been declared > 494 | crac::vm_create_start(); > | ^~~~ Marked as reviewed by akozlov (Lead). ------------- PR Review: https://git.openjdk.org/crac/pull/102#pullrequestreview-1574963541 From duke at openjdk.org Sat Aug 12 10:59:34 2023 From: duke at openjdk.org (duke) Date: Sat, 12 Aug 2023 10:59:34 GMT Subject: git: openjdk/crac: crac: 180 new changesets Message-ID: <3067cf06-4cfb-4b72-8454-021257bcfebe@openjdk.org> Changeset: 298dda4c Author: Michael McMahon Date: 2023-07-24 14:13:44 +0000 URL: https://git.openjdk.org/crac/commit/298dda4c985ddda84e264aff86ea45c849bb171c 8301457: Code in SendPortZero.java is uncommented even after JDK-8236852 was fixed Reviewed-by: aefimov, msheppar ! test/jdk/java/net/DatagramSocket/SendPortZero.java ! test/jdk/java/net/MulticastSocket/SendPortZero.java Changeset: 3caf64e0 Author: Erik Gahlin Date: 2023-07-24 14:32:17 +0000 URL: https://git.openjdk.org/crac/commit/3caf64e065074ec9fb632ae93842d0e2eb5eeab4 8309238: jdk/jfr/tool/TestView.java failed with "exitValue = 134" Reviewed-by: mgronlun ! src/jdk.jfr/share/classes/jdk/jfr/internal/consumer/ChunkParser.java Changeset: d1cc2782 Author: Per Minborg Date: 2023-07-24 15:00:47 +0000 URL: https://git.openjdk.org/crac/commit/d1cc2782606e8a3cfead9055aa845e48e851edd4 8311822: AIX : test/jdk/java/foreign/TestLayouts.java fails because of different output - expected [[i4](struct)] but found [[I4](struct)] Reviewed-by: jvernee ! test/jdk/java/foreign/TestLayouts.java Changeset: d5c6b0d0 Author: Varada M Committer: Tyler Steele Date: 2023-07-24 15:35:22 +0000 URL: https://git.openjdk.org/crac/commit/d5c6b0d0bbad696045eb46e268d28c86cb8c2a4e 8311261: [AIX] TestAlwaysPreTouchStacks.java fails due to java.lang.RuntimeException: Did not find expected NMT output Reviewed-by: stuefe ! test/hotspot/jtreg/runtime/Thread/TestAlwaysPreTouchStacks.java Changeset: fac9f88c Author: sunyaqi Committer: Alexey Semenyuk Date: 2023-07-24 16:22:57 +0000 URL: https://git.openjdk.org/crac/commit/fac9f88c52a07d972bad48d9ec116cb7e0fc5052 8311631: When multiple users run tools/jpackage/share/LicenseTest.java, Permission denied for writing /var/tmp/*.files Reviewed-by: asemenyuk, almatvee ! src/jdk.jpackage/linux/classes/jdk/jpackage/internal/resources/template.spec Changeset: d8f2e9ae Author: Sergey Tsypanov Committer: Brian Burkhalter Date: 2023-07-24 16:24:40 +0000 URL: https://git.openjdk.org/crac/commit/d8f2e9ae3b47b27e51680d88b774183cd156b073 8310530: PipedOutputStream.flush() accesses sink racily Reviewed-by: dfuchs, bpb, liach, rriggs ! src/java.base/share/classes/java/io/PipedOutputStream.java Changeset: 8008e27c Author: Ioi Lam Date: 2023-07-24 17:56:42 +0000 URL: https://git.openjdk.org/crac/commit/8008e27c55030b397e2040bc3cf8408e47edf412 8308903: Print detailed info for Java objects in -Xlog:cds+map Reviewed-by: stuefe, ccheung ! src/hotspot/share/cds/archiveBuilder.cpp ! src/hotspot/share/cds/archiveHeapWriter.cpp ! src/hotspot/share/cds/archiveHeapWriter.hpp ! src/hotspot/share/cds/heapShared.hpp ! src/hotspot/share/oops/typeArrayKlass.cpp ! src/hotspot/share/oops/typeArrayKlass.hpp + test/hotspot/jtreg/runtime/cds/CDSMapReader.java + test/hotspot/jtreg/runtime/cds/CDSMapTest.java ! test/hotspot/jtreg/runtime/cds/DeterministicDump.java Changeset: 2bdfa836 Author: Brian Burkhalter Date: 2023-07-24 19:59:17 +0000 URL: https://git.openjdk.org/crac/commit/2bdfa836adbeba3319bee4ee61017907d6d84d58 8262742: (fs) Add Path::resolve with varargs string Reviewed-by: alanb ! src/java.base/share/classes/java/nio/file/Path.java ! src/java.base/unix/classes/sun/nio/fs/UnixPath.java ! test/jdk/java/nio/file/Path/PathOps.java Changeset: d0761c19 Author: Dean Long Date: 2023-07-24 20:40:08 +0000 URL: https://git.openjdk.org/crac/commit/d0761c19d1ddafbcb5ea97334335462e716de250 8312077: Fix signed integer overflow, final part Reviewed-by: kvn, amitkumar ! src/hotspot/cpu/aarch64/stubGenerator_aarch64.cpp ! src/hotspot/cpu/arm/macroAssembler_arm.hpp ! src/hotspot/cpu/arm/stubGenerator_arm.cpp ! src/hotspot/cpu/riscv/stubGenerator_riscv.cpp ! src/hotspot/cpu/x86/macroAssembler_x86.cpp ! src/hotspot/cpu/x86/stubGenerator_x86_32.cpp ! src/hotspot/cpu/x86/stubGenerator_x86_64_arraycopy.cpp ! src/hotspot/share/c1/c1_Compilation.cpp ! src/hotspot/share/c1/c1_GraphBuilder.cpp ! src/hotspot/share/c1/c1_Runtime1.cpp ! src/hotspot/share/c1/c1_Runtime1.hpp ! src/hotspot/share/classfile/vmSymbols.cpp ! src/hotspot/share/code/nmethod.cpp ! src/hotspot/share/compiler/abstractCompiler.hpp ! src/hotspot/share/compiler/compileBroker.cpp ! src/hotspot/share/compiler/compileBroker.hpp ! src/hotspot/share/jfr/periodic/sampling/jfrThreadSampler.cpp ! src/hotspot/share/opto/c2_globals.hpp ! src/hotspot/share/opto/graphKit.cpp ! src/hotspot/share/opto/ifnode.cpp ! src/hotspot/share/opto/indexSet.cpp ! src/hotspot/share/opto/indexSet.hpp ! src/hotspot/share/opto/lcm.cpp ! src/hotspot/share/opto/matcher.cpp ! src/hotspot/share/opto/mulnode.cpp ! src/hotspot/share/opto/node.cpp ! src/hotspot/share/opto/parse1.cpp ! src/hotspot/share/opto/parse2.cpp ! src/hotspot/share/opto/parse3.cpp ! src/hotspot/share/runtime/sharedRuntime.cpp ! src/hotspot/share/runtime/sharedRuntime.hpp Changeset: d63bff67 Author: John Jiang Date: 2023-07-24 22:12:28 +0000 URL: https://git.openjdk.org/crac/commit/d63bff672feafc7df4b1324bf7acce105a998913 8312578: Redundant javadoc in X400Address Reviewed-by: xuelei, hchao ! src/java.base/share/classes/sun/security/x509/X400Address.java Changeset: 99998381 Author: Chad Rakoczy Committer: Koichi Sakata Date: 2023-07-25 06:04:42 +0000 URL: https://git.openjdk.org/crac/commit/9999838156aedb15c7e1649b85cfbe4ba394f4a4 8311646: ZGC: LIR_OpZStoreBarrier::_info shadows LIR_Op::_info Reviewed-by: kbarrett, eosterlund, ksakata ! src/hotspot/share/gc/z/c1/zBarrierSetC1.cpp Changeset: ea067fc3 Author: Aleksey Shipilev Date: 2023-07-25 08:46:12 +0000 URL: https://git.openjdk.org/crac/commit/ea067fc3d2b1fecda694442c7921ecb980377c1e 8312592: New parentheses warnings after HarfBuzz 7.2.0 update Reviewed-by: prr, serb ! make/modules/java.desktop/lib/Awt2dLibraries.gmk Changeset: b35ccb27 Author: Erik Gahlin Date: 2023-07-25 09:58:29 +0000 URL: https://git.openjdk.org/crac/commit/b35ccb27c3c4a43eca4843bc1186a171fa23a7ed 8312533: JFR: No message for JFR.view when data is missing Reviewed-by: mgronlun ! src/jdk.jfr/share/classes/jdk/jfr/internal/dcmd/QueryRecording.java + test/jdk/jdk/jfr/jcmd/TestJcmdViewMissingData.java Changeset: bd098806 Author: Matthias Baesken Date: 2023-07-25 10:56:23 +0000 URL: https://git.openjdk.org/crac/commit/bd098806f768c6afd87cee06b983c13a471268d0 8312512: sspi.cpp avoid some NULL checks related to free and delete Reviewed-by: djelinski ! src/java.security.jgss/windows/native/libsspi_bridge/sspi.cpp Changeset: 91fe0323 Author: Jaikiran Pai Date: 2023-07-25 11:00:33 +0000 URL: https://git.openjdk.org/crac/commit/91fe03232760ae0a9b56456f2f5f5ee6e483e4ef 8312818: Incorrect format specifier in a HttpClient log message Reviewed-by: djelinski ! src/java.net.http/share/classes/jdk/internal/net/http/HttpClientImpl.java Changeset: 9606cbcd Author: Doug Simon Date: 2023-07-25 13:12:42 +0000 URL: https://git.openjdk.org/crac/commit/9606cbcd2314506d0054ecba1804e5e0c2670cd6 8312524: [JVMCI] serviceability/dcmd/compiler/CompilerQueueTest.java fails Reviewed-by: never, thartmann ! src/hotspot/share/compiler/compileBroker.cpp Changeset: e554fdee Author: Anthony Scarpino Date: 2023-07-25 15:48:31 +0000 URL: https://git.openjdk.org/crac/commit/e554fdee254ce51d605fe127b73644620e87e23b 8311592: ECKeySizeParameterSpec causes too many exceptions on third party providers Reviewed-by: hchao, valeriep ! src/java.base/share/classes/sun/security/util/KeyUtil.java Changeset: 36f3bae5 Author: Jiangli Zhou Date: 2023-07-25 16:37:51 +0000 URL: https://git.openjdk.org/crac/commit/36f3bae556783e7a9ab27b2a2f8dbb0d38be3583 8312401: SymbolTable::do_add_if_needed hangs when called in InstanceKlass::add_initialization_error path with requesting length exceeds max_symbol_length Reviewed-by: dholmes, coleenp, iklam ! src/hotspot/share/classfile/javaClasses.cpp ! src/hotspot/share/classfile/symbolTable.cpp + test/hotspot/jtreg/runtime/exceptionMsgs/LongExceptionMessageTest.java Changeset: c6396dce Author: Justin Lu Date: 2023-07-25 18:26:23 +0000 URL: https://git.openjdk.org/crac/commit/c6396dceb9a64578d5b335af27ad1d968190a1fa 8039165: [Doc] MessageFormat null locale generates NullPointerException Reviewed-by: naoto ! src/java.base/share/classes/java/text/MessageFormat.java - test/jdk/java/text/Format/MessageFormat/Bug6481179.java + test/jdk/java/text/Format/MessageFormat/MessageFormatExceptions.java Changeset: cb82c954 Author: Joe Darcy Date: 2023-07-25 18:57:32 +0000 URL: https://git.openjdk.org/crac/commit/cb82c954e3a37892ad504fcbb279bcf7619222dc 8312415: Expand -Xlint:serial checks to enum constants with specialized class bodies Reviewed-by: jjg, jlahoda ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Check.java + test/langtools/tools/javac/warnings/Serial/ClassBody.out + test/langtools/tools/javac/warnings/Serial/EnumExternClassBody.java Changeset: 78a8a99d Author: Vladimir Petko Committer: Alexey Semenyuk Date: 2023-07-25 20:12:23 +0000 URL: https://git.openjdk.org/crac/commit/78a8a99d990dcc0b77c096bb2ca2c1bb86462e3f 8312488: tools/jpackage/share/AppLauncherEnvTest.java fails with dynamically linked libstdc++ Reviewed-by: asemenyuk, almatvee ! src/jdk.jpackage/share/native/common/app.cpp Changeset: 2d05d354 Author: Coleen Phillimore Date: 2023-07-25 21:33:54 +0000 URL: https://git.openjdk.org/crac/commit/2d05d3545c8fe4d9e5ad3cee673fc938f84d1901 8312979: Fix assembler_aarch64.hpp after JDK-8311847 Reviewed-by: dlong ! src/hotspot/cpu/aarch64/assembler_aarch64.hpp Changeset: 117f42db Author: Thomas Stuefe Date: 2023-07-26 05:46:13 +0000 URL: https://git.openjdk.org/crac/commit/117f42dbe9a78bcf43bdf3873d5d86a19a9092d3 8312625: Test serviceability/dcmd/vm/TrimLibcHeapTest.java failed: RSS use increased Reviewed-by: kevinw, dholmes ! test/hotspot/jtreg/serviceability/dcmd/vm/TrimLibcHeapTest.java Changeset: e9daf4a0 Author: Jaikiran Pai Date: 2023-07-26 07:34:52 +0000 URL: https://git.openjdk.org/crac/commit/e9daf4a0185b90762d2bdd38d86fe93b4822ea08 8312916: Remove remaining usages of -Xdebug from test/hotspot/jtreg Reviewed-by: kevinw, cjplummer, dholmes ! test/hotspot/jtreg/serviceability/attach/ShMemLongName.java ! test/hotspot/jtreg/vmTestbase/nsk/jdi/AttachingConnector/attach/attach004/TestDriver.java ! test/hotspot/jtreg/vmTestbase/nsk/share/jpda/DebugeeBinder.java Changeset: 1f81e5b1 Author: Jan Lahoda Date: 2023-07-26 09:44:50 +0000 URL: https://git.openjdk.org/crac/commit/1f81e5b19ebfb7cd1b5a01d6cf79efda7e827c35 8312229: Crash involving yield, switch and anonymous classes Reviewed-by: vromero ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/LambdaToMethod.java + test/langtools/tools/javac/patterns/T8312229.java Changeset: cc2a75e1 Author: Jan Lahoda Date: 2023-07-26 10:35:15 +0000 URL: https://git.openjdk.org/crac/commit/cc2a75e11c4b5728c547aa764067427fdea8c941 8312619: Strange error message when switching over long Reviewed-by: vromero ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Attr.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/resources/compiler.properties + test/langtools/tools/javac/diags/examples/SelectorTypeNotAllowed.java ! test/langtools/tools/javac/switchextra/SwitchNoExtraTypes.out Changeset: c22cadf3 Author: Erik Gahlin Date: 2023-07-26 10:47:25 +0000 URL: https://git.openjdk.org/crac/commit/c22cadf32fbfa206f089c9d73c3b7f3db069d47a 8312526: Test dk/jfr/event/oldobject/TestHeapDeep.java failed: Could not find ChainNode Reviewed-by: mgronlun ! test/jdk/jdk/jfr/event/oldobject/TestHeapDeep.java Changeset: 02a04731 Author: Hannes Walln?fer Date: 2023-07-26 13:04:39 +0000 URL: https://git.openjdk.org/crac/commit/02a04731b1b2e68bf1a79f50d036bedd032128f0 8312445: Array types in annotation elements show square brackets twice Reviewed-by: prappo ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/HtmlDocletWriter.java ! test/langtools/jdk/javadoc/doclet/testNewLanguageFeatures/TestNewLanguageFeatures.java ! test/langtools/jdk/javadoc/doclet/testNewLanguageFeatures/pkg1/A.java ! test/langtools/jdk/javadoc/doclet/testNewLanguageFeatures/pkg1/B.java Changeset: e7726fbd Author: Christian Stein Date: 2023-07-26 13:42:10 +0000 URL: https://git.openjdk.org/crac/commit/e7726fbd69232bfa34725c87a7dfd387cce118a0 8313155: Problem list some JUnit-based tests in test/jdk/java/lang/invoke Reviewed-by: dholmes, jpai ! test/jdk/ProblemList.txt Changeset: 74121930 Author: Brian Burkhalter Date: 2023-07-26 15:07:18 +0000 URL: https://git.openjdk.org/crac/commit/74121930e33686d2452170554776c0901f622d3e 4800398: (ch spec) Clarify Channels.newChannel(InputStream) spec Reviewed-by: alanb ! src/java.base/share/classes/java/nio/channels/Channels.java Changeset: 830413f1 Author: John Jiang Date: 2023-07-26 15:16:52 +0000 URL: https://git.openjdk.org/crac/commit/830413f19a6d998ff6c899c05e8fa93b6b2b0644 8313087: DerValue::toString should output a hex view of the values in byte array Reviewed-by: mullan ! src/java.base/share/classes/sun/security/util/DerValue.java Changeset: 4c2e54fb Author: Rajan Halade Date: 2023-07-26 16:55:29 +0000 URL: https://git.openjdk.org/crac/commit/4c2e54fb055bee0af5cd838fdd32a0f7902d51e3 8309088: security/infra/java/security/cert/CertPathValidator/certification/AmazonCA.java fails Reviewed-by: mullan ! test/jdk/security/infra/java/security/cert/CertPathValidator/certification/AmazonCA.java Changeset: a9d21c61 Author: Paul Hohensee Date: 2023-07-26 19:30:21 +0000 URL: https://git.openjdk.org/crac/commit/a9d21c61fb12a11e18c6bb8aa903e5a8e42473f1 8313081: MonitoringSupport_lock should be unconditionally initialized after 8304074 Reviewed-by: dholmes, sspitsyn, shade ! src/hotspot/share/runtime/mutexLocker.cpp ! src/hotspot/share/services/management.cpp ! test/jdk/com/sun/management/ThreadMXBean/ThreadAllocatedMemory.java Changeset: 36d578cd Author: Sean Coffey Date: 2023-07-27 06:33:27 +0000 URL: https://git.openjdk.org/crac/commit/36d578cddb3ae196fb7d4d8e9be6af3520c1d45f 8311653: Modify -XshowSettings launcher behavior Reviewed-by: mchung, rriggs ! src/java.base/share/classes/sun/launcher/LauncherHelper.java ! src/java.base/share/classes/sun/launcher/SecuritySettings.java ! src/java.base/share/classes/sun/launcher/resources/launcher.properties ! test/jdk/tools/launcher/Settings.java Changeset: b7545a69 Author: Matthias Baesken Date: 2023-07-27 07:06:32 +0000 URL: https://git.openjdk.org/crac/commit/b7545a69a27f255cbf26071be5b88f6e3e6b3cd6 8313164: src/java.desktop/windows/native/libawt/windows/awt_Robot.cpp GetRGBPixels adjust releasing of resources Reviewed-by: stuefe ! src/java.desktop/windows/native/libawt/windows/awt_Robot.cpp Changeset: 01e135c9 Author: Roland Westrelin Date: 2023-07-27 07:24:46 +0000 URL: https://git.openjdk.org/crac/commit/01e135c91018a41800c2df534b1d6dbd396adbf4 8312440: assert(cast != nullptr) failed: must have added a cast to pin the node Reviewed-by: chagedorn, kvn, thartmann ! src/hotspot/share/opto/loopopts.cpp + test/hotspot/jtreg/compiler/loopopts/TestSunkNodeMissingCastAssert.java Changeset: 7cbab1f3 Author: Eric Nothum Committer: Tobias Hartmann Date: 2023-07-27 07:29:23 +0000 URL: https://git.openjdk.org/crac/commit/7cbab1f39636f3cf32f1276bc46feaa8107a14e6 8312218: Print additional debug information when hitting assert(in_hash) Reviewed-by: chagedorn, thartmann ! src/hotspot/share/opto/compile.cpp Changeset: 86821a7c Author: Doug Simon Date: 2023-07-27 08:39:32 +0000 URL: https://git.openjdk.org/crac/commit/86821a7ce89c51cc3650228c55a4a88c743209e4 8312235: [JVMCI] ConstantPool should not force eager resolution Reviewed-by: never, matsaave ! src/hotspot/share/jvmci/jvmciCompilerToVM.cpp ! src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/hotspot/CompilerToVM.java ! src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/hotspot/HotSpotConstantPool.java ! src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/meta/ConstantPool.java ! test/hotspot/jtreg/compiler/jvmci/common/patches/jdk.internal.vm.ci/jdk/vm/ci/hotspot/CompilerToVMHelper.java + test/hotspot/jtreg/compiler/jvmci/compilerToVM/LookupConstantInPoolTest.java - test/hotspot/jtreg/compiler/jvmci/compilerToVM/ResolvePossiblyCachedConstantInPoolTest.java ! test/hotspot/jtreg/compiler/jvmci/jdk.vm.ci.hotspot.test/src/jdk/vm/ci/hotspot/test/TestDynamicConstant.java Changeset: 44576a7c Author: Andreas Steiner Committer: Christoph Langer Date: 2023-07-27 10:37:40 +0000 URL: https://git.openjdk.org/crac/commit/44576a7cca18108adafa7efe88de2a4655e9b074 8312466: /bin/nm usage in AIX makes needs -X64 flag Reviewed-by: mbaesken, stuefe, jwaters ! make/hotspot/lib/CompileJvm.gmk Changeset: 271417a0 Author: Gerg? Barany Committer: Doug Simon Date: 2023-07-27 10:48:18 +0000 URL: https://git.openjdk.org/crac/commit/271417a0e10245504e41c98c65941d5fe21f33ac 8312579: [JVMCI] JVMCI support for virtual Vector API objects Reviewed-by: dnsimon, never ! src/hotspot/share/classfile/modules.cpp ! src/hotspot/share/jvmci/jvmciCodeInstaller.cpp ! src/hotspot/share/jvmci/jvmciCodeInstaller.hpp ! src/hotspot/share/jvmci/vmStructs_jvmci.cpp ! src/hotspot/share/runtime/arguments.cpp ! src/hotspot/share/runtime/deoptimization.cpp ! src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/hotspot/HotSpotCompiledCodeStream.java Changeset: 486c7844 Author: Jaikiran Pai Date: 2023-07-27 12:14:14 +0000 URL: https://git.openjdk.org/crac/commit/486c7844f902728ce580c3994f58e3e497834952 8312433: HttpClient request fails due to connection being considered idle and closed Reviewed-by: djelinski ! src/java.net.http/share/classes/jdk/internal/net/http/Http2ClientImpl.java ! src/java.net.http/share/classes/jdk/internal/net/http/Http2Connection.java + test/jdk/java/net/httpclient/http2/IdlePooledConnectionTest.java Changeset: 8661b8e1 Author: Richard Reingruber Date: 2023-07-27 13:40:23 +0000 URL: https://git.openjdk.org/crac/commit/8661b8e11568f752c0bc515a028092f77bcaf940 8312495: assert(0 <= i && i < _len) failed: illegal index after JDK-8287061 on big endian platforms Reviewed-by: clanger, kvn, dlong ! src/hotspot/share/code/debugInfo.cpp ! src/hotspot/share/prims/stackwalk.cpp ! src/hotspot/share/runtime/deoptimization.cpp ! src/hotspot/share/runtime/stackValue.hpp ! src/hotspot/share/runtime/stackValueCollection.cpp ! src/hotspot/share/runtime/vframe.cpp ! src/hotspot/share/runtime/vframeArray.cpp Changeset: 25058cd2 Author: Thomas Stuefe Date: 2023-07-27 13:45:36 +0000 URL: https://git.openjdk.org/crac/commit/25058cd23ac9c8993e7acfd82728ee4c623f0914 8312620: WSL Linux build crashes after JDK-8310233 Reviewed-by: dholmes, djelinski ! src/hotspot/os/linux/hugepages.cpp ! src/hotspot/os/linux/hugepages.hpp = test/hotspot/jtreg/runtime/os/TestHugePageDetection.java Changeset: 8650026f Author: Roger Riggs Date: 2023-07-27 14:01:25 +0000 URL: https://git.openjdk.org/crac/commit/8650026ff16e5c5eff897f9fd39c0c35fd8b7367 8310033: Clarify return value of Java Time compareTo methods Reviewed-by: bpb, scolebourne, prappo, naoto ! src/java.base/share/classes/java/time/Duration.java ! src/java.base/share/classes/java/time/Instant.java ! src/java.base/share/classes/java/time/LocalDate.java ! src/java.base/share/classes/java/time/LocalDateTime.java ! src/java.base/share/classes/java/time/LocalTime.java ! src/java.base/share/classes/java/time/MonthDay.java ! src/java.base/share/classes/java/time/OffsetDateTime.java ! src/java.base/share/classes/java/time/OffsetTime.java ! src/java.base/share/classes/java/time/Year.java ! src/java.base/share/classes/java/time/YearMonth.java ! src/java.base/share/classes/java/time/ZoneOffset.java ! src/java.base/share/classes/java/time/chrono/AbstractChronology.java ! src/java.base/share/classes/java/time/chrono/ChronoLocalDate.java ! src/java.base/share/classes/java/time/chrono/ChronoLocalDateTime.java ! src/java.base/share/classes/java/time/chrono/ChronoZonedDateTime.java ! src/java.base/share/classes/java/time/chrono/Chronology.java ! src/java.base/share/classes/java/time/zone/ZoneOffsetTransition.java Changeset: 169b6e3c Author: Kevin Walls Date: 2023-07-27 15:40:13 +0000 URL: https://git.openjdk.org/crac/commit/169b6e3cff8f9e0e09cdd5145c2dfe73a88519d1 8313174: Create fewer predictable port clashes in management tests Reviewed-by: cjplummer, amenkov ! test/jdk/javax/management/remote/mandatory/passwordAuthenticator/RMIAltAuthTest.java ! test/jdk/javax/management/remote/mandatory/passwordAuthenticator/RMIPasswdAuthTest.java ! test/jdk/javax/management/remote/mandatory/socketFactories/RMISocketFactoriesTest.java ! test/jdk/javax/management/remote/mandatory/subjectDelegation/SubjectDelegation1Test.java ! test/jdk/javax/management/remote/mandatory/subjectDelegation/SubjectDelegation2Test.java ! test/jdk/javax/management/remote/mandatory/subjectDelegation/SubjectDelegation3Test.java Changeset: c05ba48b Author: Thomas Obermeier <128162199+TOatGithub at users.noreply.github.com> Committer: Christoph Langer Date: 2023-07-27 15:45:20 +0000 URL: https://git.openjdk.org/crac/commit/c05ba48b60816db0165a6d3ff534fbbb18433cd4 8313250: Exclude java/foreign/TestByteBuffer.java on AIX Reviewed-by: rriggs, clanger ! test/jdk/ProblemList.txt Changeset: 0ca2bfd7 Author: Alexey Semenyuk Date: 2023-07-27 16:07:54 +0000 URL: https://git.openjdk.org/crac/commit/0ca2bfd77960a84486d10d910aa47b2aa9c14e22 8311104: dangling-gsl warning in libwixhelper.cpp Reviewed-by: almatvee ! src/jdk.jpackage/windows/native/libwixhelper/libwixhelper.cpp Changeset: c55d29ff Author: Jiangli Zhou Date: 2023-07-27 19:12:46 +0000 URL: https://git.openjdk.org/crac/commit/c55d29ff119598a410e714ef36f47fb6626a1a7a 8312626: Resolve multiple definition of 'start_timer' when statically linking JDK native libraries with user code Reviewed-by: serb ! src/java.desktop/share/native/libawt/awt/medialib/awt_ImagingLib.c Changeset: c27c8778 Author: Valerie Peng Date: 2023-07-27 21:24:03 +0000 URL: https://git.openjdk.org/crac/commit/c27c87786a612501e080222dd8647f94b3b261e6 8302017: Allocate BadPaddingException only if it will be thrown Reviewed-by: xuelei ! src/java.base/share/classes/com/sun/crypto/provider/RSACipher.java ! src/java.base/share/classes/sun/security/rsa/RSAPadding.java ! src/java.base/share/classes/sun/security/rsa/RSASignature.java ! src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/P11Signature.java + test/jdk/sun/security/rsa/RSAPaddingCheck.java Changeset: ba645da9 Author: Leonid Mesnik Date: 2023-07-28 02:01:48 +0000 URL: https://git.openjdk.org/crac/commit/ba645da97b00a7cc9d5a9d4dd58b1cd6737b4822 8313082: Enable CreateCoredumpOnCrash for testing in makefiles Reviewed-by: dholmes ! make/RunTests.gmk Changeset: cad6114e Author: Damon Fenacci Date: 2023-07-28 09:09:48 +0000 URL: https://git.openjdk.org/crac/commit/cad6114e1c69bfebe5f7892c3e105b4c70d04398 8304954: SegmentedCodeCache fails when using large pages Reviewed-by: stuefe, thartmann ! src/hotspot/share/code/codeCache.cpp ! src/hotspot/share/code/codeCache.hpp + test/hotspot/jtreg/compiler/codecache/CheckLargePages.java Changeset: 4ae5a3e3 Author: Kevin Walls Date: 2023-07-28 09:44:04 +0000 URL: https://git.openjdk.org/crac/commit/4ae5a3e39b681bfd001df1483d8a6d1fce0bc7f8 8306446: java/lang/management/ThreadMXBean/Locks.java transient failures Reviewed-by: cjplummer, sspitsyn ! test/jdk/java/lang/management/ThreadMXBean/Locks.java Changeset: a3d67231 Author: Alexander Scherbatiy Date: 2023-07-28 10:25:22 +0000 URL: https://git.openjdk.org/crac/commit/a3d67231a71fbe37c509fcedd54c679b4644c0d9 8311033: [macos] PrinterJob does not take into account Sides attribute Reviewed-by: prr, serb ! src/java.desktop/macosx/classes/sun/lwawt/macosx/CPrinterJob.java ! src/java.desktop/macosx/native/libawt_lwawt/awt/CPrinterJob.m ! src/java.desktop/share/classes/sun/print/RasterPrinterJob.java + test/jdk/javax/print/attribute/SidesAttributeTest.java Changeset: 47c4b992 Author: Coleen Phillimore Date: 2023-07-28 12:08:24 +0000 URL: https://git.openjdk.org/crac/commit/47c4b992b44a5ce120aa4fe9e01279d4c52bca0a 8312121: Fix -Wconversion warnings in tribool.hpp Reviewed-by: dlong, dholmes ! src/hotspot/share/c1/c1_Compiler.cpp ! src/hotspot/share/c1/c1_Compiler.hpp ! src/hotspot/share/classfile/vmIntrinsics.cpp ! src/hotspot/share/classfile/vmSymbols.cpp ! src/hotspot/share/utilities/tribool.hpp Changeset: 34173ff0 Author: Matthias Baesken Date: 2023-07-28 13:31:13 +0000 URL: https://git.openjdk.org/crac/commit/34173ff0d11667baffa6604e6f1886b8976ab2c2 8312574: jdk/jdk/jfr/jvm/TestChunkIntegrity.java fails with timeout Reviewed-by: egahlin ! test/jdk/jdk/jfr/jvm/TestChunkIntegrity.java Changeset: d9559f9b Author: Matthias Baesken Date: 2023-07-28 13:45:19 +0000 URL: https://git.openjdk.org/crac/commit/d9559f9b24ee76c074cefcaf256d11ef5a7cc5b7 8312612: handle WideCharToMultiByte return values Reviewed-by: clanger ! src/java.desktop/windows/native/libawt/windows/awt_Font.cpp ! src/java.desktop/windows/native/libawt/windows/awt_PrintJob.cpp ! src/java.desktop/windows/native/libjsound/PLATFORM_API_WinOS_Charset_Util.cpp Changeset: a9a3463a Author: Justin Lu Date: 2023-07-28 16:27:06 +0000 URL: https://git.openjdk.org/crac/commit/a9a3463afb33b9df4cbf64d1866255bff638824f 8312416: Tests in Locale should have more descriptive names Reviewed-by: lancea, naoto = test/jdk/java/util/Locale/AliasesShouldBeRecognizedInCLDR.java - test/jdk/java/util/Locale/Bug4152725.java = test/jdk/java/util/Locale/HashCodeShouldBeThreadSafe.java = test/jdk/java/util/Locale/LegacyCodesClassInvariant.java = test/jdk/java/util/Locale/LegacyCodesClassInvariant_he = test/jdk/java/util/Locale/LegacyCodesClassInvariant_id = test/jdk/java/util/Locale/LegacyCodesClassInvariant_yi = test/jdk/java/util/Locale/LocaleMatchingTest.java + test/jdk/java/util/Locale/LocaleShouldSetFromCLI.java = test/jdk/java/util/Locale/LookupOnValidRangeTest.java = test/jdk/java/util/Locale/MatchEmptyWeightCorrectly.java = test/jdk/java/util/Locale/ProviderPoolMultiThreadAccess.java = test/jdk/java/util/Locale/SubsequentRangeParsingTest.java = test/jdk/java/util/Locale/TurkishLangRangeTest.java - test/jdk/java/util/Locale/bug4123285.html - test/jdk/java/util/Locale/bug4123285.java Changeset: e8970417 Author: Coleen Phillimore Date: 2023-07-28 16:32:06 +0000 URL: https://git.openjdk.org/crac/commit/e897041770f9e321cd8526c6a29c5e19bbecaa55 8312262: Klass::array_klass() should return ArrayKlass pointer Reviewed-by: dlong, ccheung ! src/hotspot/share/oops/arrayKlass.cpp ! src/hotspot/share/oops/arrayKlass.hpp ! src/hotspot/share/oops/arrayKlass.inline.hpp ! src/hotspot/share/oops/instanceKlass.cpp ! src/hotspot/share/oops/instanceKlass.hpp ! src/hotspot/share/oops/klass.hpp ! src/hotspot/share/oops/objArrayKlass.cpp ! src/hotspot/share/oops/objArrayKlass.hpp ! src/hotspot/share/oops/typeArrayKlass.cpp ! src/hotspot/share/oops/typeArrayKlass.hpp ! src/hotspot/share/runtime/vmStructs.cpp ! src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/oops/ArrayKlass.java ! src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/oops/ObjArrayKlass.java ! src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/oops/TypeArrayKlass.java Changeset: 4ae75cab Author: Jonathan Gibbons Date: 2023-07-28 16:39:33 +0000 URL: https://git.openjdk.org/crac/commit/4ae75cab53995a2ed36783a308b706f3f0f4e986 8313253: Rename methods in javadoc Comparators class Reviewed-by: hannesw, prappo ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/AbstractTreeWriter.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/ClassUseWriter.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/ClassWriter.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/ConstantsSummaryWriter.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/MethodWriter.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/ModuleWriter.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/PackageUseWriter.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/SerializedFormWriter.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/AbstractDoclet.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/BaseConfiguration.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/WorkArounds.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/util/ClassTree.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/util/ClassUseMapper.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/util/Comparators.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/util/Group.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/util/IndexBuilder.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/util/SummaryAPIListBuilder.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/util/TypeElementCatalog.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/util/Utils.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/util/VisibleMemberTable.java Changeset: e2cb0bc6 Author: Jonathan Gibbons Date: 2023-07-28 17:05:37 +0000 URL: https://git.openjdk.org/crac/commit/e2cb0bc6f1816f10603b35a4bfe95423bb68c411 8313204: Inconsistent order of sections in generated class documentation Reviewed-by: hannesw, prappo ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/ClassWriter.java ! test/langtools/jdk/javadoc/doclet/testAnnotationTypes/TestAnnotationTypes.java ! test/langtools/jdk/javadoc/doclet/testOverriddenMethods/TestOverrideMethods.java Changeset: 23755f90 Author: Justin Lu Date: 2023-07-28 17:33:20 +0000 URL: https://git.openjdk.org/crac/commit/23755f90c9fb69b0ddad0cdfcdf8add309b1d845 8312411: MessageFormat.formatToCharacterIterator() can be improved Reviewed-by: naoto ! src/java.base/share/classes/java/text/MessageFormat.java Changeset: 402cb6a5 Author: Jonathan Gibbons Date: 2023-07-28 17:48:31 +0000 URL: https://git.openjdk.org/crac/commit/402cb6a550f60c75f93c709b5e5902f3757a8acd 8312201: Clean up common behavior in "page writers" and "member writers" 8284447: Remove the unused NestedClassWriter interface Reviewed-by: prappo ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/AbstractExecutableMemberWriter.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/AbstractMemberWriter.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/AnnotationTypeMemberWriter.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/ClassWriter.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/ConstructorWriter.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/EnumConstantWriter.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/FieldWriter.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/HtmlConfiguration.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/HtmlDoclet.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/HtmlDocletWriter.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/HtmlIndexBuilder.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/MethodWriter.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/ModuleWriter.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/NestedClassWriter.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/PackageWriter.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/PropertyWriter.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/SubWriterHolderWriter.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/Table.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/WriterFactory.java Changeset: d6245b68 Author: Vladimir Kempik Date: 2023-07-28 21:55:33 +0000 URL: https://git.openjdk.org/crac/commit/d6245b6832ccd1da04616e8ba4b90321b2551971 8310268: RISC-V: misaligned memory access in String.Compare intrinsic Co-authored-by: Feilong Jiang Reviewed-by: fyang ! src/hotspot/cpu/riscv/c2_MacroAssembler_riscv.cpp ! src/hotspot/cpu/riscv/macroAssembler_riscv.cpp ! src/hotspot/cpu/riscv/stubGenerator_riscv.cpp ! test/hotspot/jtreg/compiler/intrinsics/string/TestStringCompareToDifferentLength.java Changeset: ad34be1f Author: Thomas Stuefe Date: 2023-07-29 05:36:58 +0000 URL: https://git.openjdk.org/crac/commit/ad34be1f329edc8e7155983835cc70d733c014b8 8312525: New test runtime/os/TestTrimNative.java#trimNative is failing: did not see the expected RSS reduction Reviewed-by: dholmes, shade ! src/hotspot/os/linux/trimCHeapDCmd.cpp ! test/hotspot/jtreg/ProblemList.txt ! test/hotspot/jtreg/runtime/os/TestTrimNative.java Changeset: 807ca2d3 Author: Christoph Langer Date: 2023-07-31 07:42:37 +0000 URL: https://git.openjdk.org/crac/commit/807ca2d3a1d498f8d51a33b062a003c96344d9b7 8313316: Disable runtime/ErrorHandling/MachCodeFramesInErrorFile.java on ppc64le Reviewed-by: mbaesken ! test/hotspot/jtreg/ProblemList.txt Changeset: f8c2b7fe Author: John Jiang Date: 2023-07-31 07:49:10 +0000 URL: https://git.openjdk.org/crac/commit/f8c2b7fee101d66107704b3ee464737c5ccdc13a 8313231: Redundant if statement in ZoneInfoFile Reviewed-by: jiefu, scolebourne ! src/java.base/share/classes/sun/util/calendar/ZoneInfoFile.java Changeset: 6fca2898 Author: Jorn Vernee Date: 2023-07-31 08:01:17 +0000 URL: https://git.openjdk.org/crac/commit/6fca28988794b52a6aa974bed1ed6f4f07e0994b 8313023: Return value corrupted when using CCS + isTrivial (mainline) Reviewed-by: mcimadamore, vlivanov ! src/hotspot/cpu/aarch64/downcallLinker_aarch64.cpp ! src/hotspot/cpu/ppc/downcallLinker_ppc.cpp ! src/hotspot/cpu/riscv/downcallLinker_riscv.cpp ! src/hotspot/cpu/x86/downcallLinker_x86_64.cpp ! test/jdk/java/foreign/capturecallstate/TestCaptureCallState.java Changeset: 408987e1 Author: Aleksey Shipilev Date: 2023-07-31 08:35:31 +0000 URL: https://git.openjdk.org/crac/commit/408987e1ca9a42db8019b1bd7e52f85607975dde 8313307: java/util/Formatter/Padding.java fails on some Locales Reviewed-by: jlu, naoto ! test/jdk/java/util/Formatter/Padding.java Changeset: b60e0ada Author: Matias Saavedra Silva Date: 2023-07-31 13:44:38 +0000 URL: https://git.openjdk.org/crac/commit/b60e0adad6c2a4b8cf2709f810e185ad62777311 8313207: Remove MetaspaceShared::_has_error_classes Reviewed-by: ccheung, iklam ! src/hotspot/share/cds/metaspaceShared.cpp ! src/hotspot/share/cds/metaspaceShared.hpp Changeset: 3671d83c Author: Matthias Baesken Date: 2023-07-31 14:57:28 +0000 URL: https://git.openjdk.org/crac/commit/3671d83c87302ead09d4ebce9cb85bdd803a0c20 8313252: Java_sun_awt_windows_ThemeReader_paintBackground release resources in early returns Reviewed-by: clanger ! src/java.desktop/windows/native/libawt/windows/ThemeReader.cpp Changeset: 97b68834 Author: Qing Xiao Committer: Adam Sotona Date: 2023-07-31 15:03:05 +0000 URL: https://git.openjdk.org/crac/commit/97b688340e2adce8e5f6abf7c3f5cb41e71afc33 8295059: test/langtools/tools/javap 12 test classes use com.sun.tools.classfile library Reviewed-by: asotona ! test/langtools/tools/javap/T6716452.java ! test/langtools/tools/javap/TestClassNameWarning.java ! test/langtools/tools/javap/classfile/6888367/T6888367.java ! test/langtools/tools/javap/classfile/T6887895.java ! test/langtools/tools/javap/typeAnnotations/JSR175Annotations.java ! test/langtools/tools/javap/typeAnnotations/NewArray.java ! test/langtools/tools/javap/typeAnnotations/Presence.java ! test/langtools/tools/javap/typeAnnotations/PresenceInner.java ! test/langtools/tools/javap/typeAnnotations/TypeCasts.java ! test/langtools/tools/javap/typeAnnotations/Visibility.java ! test/langtools/tools/javap/typeAnnotations/Wildcards.java Changeset: 78f67993 Author: Gerard Ziemski Date: 2023-07-31 15:12:22 +0000 URL: https://git.openjdk.org/crac/commit/78f67993f89792d2f0d8dcf04ba12ee93b336a13 8293972: runtime/NMT/NMTInitializationTest.java#default_long-off failed with "Suspiciously long bucket chains in lookup table." Reviewed-by: stuefe, dholmes ! src/hotspot/share/services/nmtPreInit.hpp Changeset: e47a84f2 Author: Hai-May Chao Date: 2023-07-31 15:18:04 +0000 URL: https://git.openjdk.org/crac/commit/e47a84f23dd2608c6f5748093eefe301fb5bf750 8312489: Increase jdk.jar.maxSignatureFileSize default which is too low for JARs such as WhiteSource/Mend unified agent jar Reviewed-by: mullan, mbaesken ! src/java.base/share/classes/java/util/jar/JarFile.java ! src/java.base/share/classes/sun/security/util/SignatureFileVerifier.java Changeset: 5362ec9c Author: Thomas Stuefe Date: 2023-07-31 16:51:29 +0000 URL: https://git.openjdk.org/crac/commit/5362ec9c6e9123d00288497ac9d1879a2bb1ca64 8312492: Remove THP sanity checks at VM startup Reviewed-by: dholmes, coleenp ! src/hotspot/os/linux/os_linux.cpp ! src/hotspot/os/linux/os_linux.hpp ! test/hotspot/jtreg/runtime/memory/LargePages/TestLargePagesFlags.java Changeset: 86783b98 Author: Matias Saavedra Silva Date: 2023-07-31 18:41:38 +0000 URL: https://git.openjdk.org/crac/commit/86783b985175de3a0c02215a862b2a2749d8b408 8301996: Move field resolution information out of the cpCache Co-authored-by: Gui Cao Co-authored-by: Dingli Zhang Co-authored-by: Martin Doerr Reviewed-by: coleenp, fparain ! src/hotspot/cpu/aarch64/interp_masm_aarch64.cpp ! src/hotspot/cpu/aarch64/interp_masm_aarch64.hpp ! src/hotspot/cpu/aarch64/templateTable_aarch64.cpp ! src/hotspot/cpu/ppc/interp_masm_ppc.hpp ! src/hotspot/cpu/ppc/interp_masm_ppc_64.cpp ! src/hotspot/cpu/ppc/templateTable_ppc_64.cpp ! src/hotspot/cpu/riscv/interp_masm_riscv.cpp ! src/hotspot/cpu/riscv/interp_masm_riscv.hpp ! src/hotspot/cpu/riscv/templateTable_riscv.cpp ! src/hotspot/cpu/x86/interp_masm_x86.cpp ! src/hotspot/cpu/x86/interp_masm_x86.hpp ! src/hotspot/cpu/x86/templateTable_x86.cpp ! src/hotspot/cpu/zero/zeroInterpreter_zero.cpp ! src/hotspot/share/ci/ciStreams.cpp ! src/hotspot/share/interpreter/bytecode.cpp ! src/hotspot/share/interpreter/bytecodeTracer.cpp ! src/hotspot/share/interpreter/bytecodeUtils.cpp ! src/hotspot/share/interpreter/bytecodes.hpp ! src/hotspot/share/interpreter/interpreterRuntime.cpp ! src/hotspot/share/interpreter/interpreterRuntime.hpp ! src/hotspot/share/interpreter/rewriter.cpp ! src/hotspot/share/interpreter/rewriter.hpp ! src/hotspot/share/interpreter/templateTable.hpp ! src/hotspot/share/interpreter/zero/bytecodeInterpreter.cpp ! src/hotspot/share/oops/constantPool.cpp ! src/hotspot/share/oops/constantPool.hpp ! src/hotspot/share/oops/constantPool.inline.hpp ! src/hotspot/share/oops/cpCache.cpp ! src/hotspot/share/oops/cpCache.hpp ! src/hotspot/share/oops/cpCache.inline.hpp ! src/hotspot/share/oops/generateOopMap.cpp + src/hotspot/share/oops/resolvedFieldEntry.cpp + src/hotspot/share/oops/resolvedFieldEntry.hpp ! src/hotspot/share/prims/jvmtiClassFileReconstituter.cpp ! src/hotspot/share/prims/methodComparator.cpp ! src/hotspot/share/prims/whitebox.cpp ! src/hotspot/share/runtime/vmStructs.cpp ! src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/oops/ConstantPool.java ! src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/oops/ConstantPoolCache.java + src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/oops/ResolvedFieldArray.java + src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/oops/ResolvedFieldEntry.java ! test/hotspot/gtest/oops/test_cpCache_output.cpp ! test/hotspot/jtreg/compiler/jvmci/compilerToVM/ConstantPoolTestsHelper.java ! test/hotspot/jtreg/runtime/interpreter/BytecodeTracerTest.java ! test/lib/jdk/test/whitebox/WhiteBox.java Changeset: 6af0af59 Author: Jim Laskey Date: 2023-07-31 19:11:14 +0000 URL: https://git.openjdk.org/crac/commit/6af0af593446bc33dc94bbf7334c325c4ac0ac0f 8310913: Move ReferencedKeyMap to jdk.internal so it may be shared Reviewed-by: naoto, rriggs, mchung, liach ! src/java.base/share/classes/java/lang/invoke/MethodType.java ! src/java.base/share/classes/java/lang/runtime/Carriers.java - src/java.base/share/classes/java/lang/runtime/ReferenceKey.java - src/java.base/share/classes/java/lang/runtime/ReferencedKeyMap.java ! src/java.base/share/classes/jdk/internal/access/JavaLangRefAccess.java + src/java.base/share/classes/jdk/internal/util/ReferenceKey.java + src/java.base/share/classes/jdk/internal/util/ReferencedKeyMap.java + src/java.base/share/classes/jdk/internal/util/ReferencedKeySet.java = src/java.base/share/classes/jdk/internal/util/SoftReferenceKey.java = src/java.base/share/classes/jdk/internal/util/StrongReferenceKey.java = src/java.base/share/classes/jdk/internal/util/WeakReferenceKey.java - test/jdk/java/lang/runtime/ReferencedKeyTest.java + test/jdk/jdk/internal/util/ReferencedKeyTest.java Changeset: c91a3002 Author: Matias Saavedra Silva Date: 2023-07-31 20:23:59 +0000 URL: https://git.openjdk.org/crac/commit/c91a3002fb4304b6184d1d8d5611873c4e028af2 8307312: Replace "int which" with "int cp_index" in constantPool Reviewed-by: coleenp, dholmes, iklam ! src/hotspot/share/c1/c1_GraphBuilder.cpp ! src/hotspot/share/ci/ciStreams.cpp ! src/hotspot/share/ci/ciStreams.hpp ! src/hotspot/share/ci/ciTypeFlow.cpp ! src/hotspot/share/interpreter/bytecode.cpp ! src/hotspot/share/interpreter/interpreterRuntime.cpp ! src/hotspot/share/oops/constantPool.cpp ! src/hotspot/share/oops/constantPool.hpp Changeset: 0a3c6d6b Author: Tejesh R Date: 2023-08-01 04:28:42 +0000 URL: https://git.openjdk.org/crac/commit/0a3c6d6bd010231d02e92016037149e85fb1db3f 8280482: Window transparency bug on Linux Reviewed-by: dnguyen, azvegint ! src/java.desktop/unix/classes/sun/awt/X11/XWindowPeer.java + test/jdk/java/awt/Multiscreen/MultiScreenCheckScreenIDTest.java Changeset: e36960ec Author: Joshua Cao Committer: Koichi Sakata Date: 2023-08-01 10:48:38 +0000 URL: https://git.openjdk.org/crac/commit/e36960ec6d543b48a7739e249c4a18883b2723f8 8312420: Integrate Graal's blender micro benchmark Reviewed-by: dnsimon, thartmann, ksakata + test/micro/org/openjdk/bench/vm/compiler/pea/Blender.java Changeset: ee3e0917 Author: Coleen Phillimore Date: 2023-08-01 11:59:11 +0000 URL: https://git.openjdk.org/crac/commit/ee3e0917b393b879a543060ace2537be84f20e82 8313249: Fix -Wconversion warnings in verifier code Reviewed-by: matsaave, iklam, dlong ! src/hotspot/share/classfile/stackMapFrame.hpp ! src/hotspot/share/classfile/stackMapTableFormat.hpp ! src/hotspot/share/classfile/verifier.cpp ! src/hotspot/share/classfile/verifier.hpp ! src/hotspot/share/interpreter/bytecode.hpp ! src/hotspot/share/interpreter/bytecodeStream.hpp Changeset: 94b50b71 Author: Christoph Langer Date: 2023-08-01 13:45:10 +0000 URL: https://git.openjdk.org/crac/commit/94b50b714a3d7696908e13b44eceeec60b82fcc6 8313404: Fix section label in test/jdk/ProblemList.txt Reviewed-by: mbaesken, alanb ! test/jdk/ProblemList.txt Changeset: 98a915a5 Author: Thomas Obermeier <128162199+TOatGithub at users.noreply.github.com> Committer: Christoph Langer Date: 2023-08-01 15:31:54 +0000 URL: https://git.openjdk.org/crac/commit/98a915a54ce62da7cebc1f0ab07dab276291a1d1 8313256: Exclude failing multicast tests on AIX Reviewed-by: clanger ! test/jdk/ProblemList.txt Changeset: ec2f38fd Author: Aleksey Shipilev Date: 2023-08-01 16:03:24 +0000 URL: https://git.openjdk.org/crac/commit/ec2f38fd389dc51dc4d8925e037a8bf2e64a3722 8313428: GHA: Bump GCC versions for July 2023 updates Reviewed-by: clanger, mbaesken, stuefe ! .github/workflows/main.yml Changeset: 7ba8c69a Author: Ashutosh Mehra Committer: Aleksey Shipilev Date: 2023-08-01 19:26:45 +0000 URL: https://git.openjdk.org/crac/commit/7ba8c69a2cb094f124234fef5a0f7ac98993c1a4 8312596: Null pointer access in Compile::TracePhase::~TracePhase after JDK-8311976 Reviewed-by: chagedorn, dlong, shade ! src/hotspot/share/opto/compile.cpp + test/hotspot/jtreg/compiler/c2/TestPrintIdealNodeCount.java Changeset: bf707775 Author: Calvin Cheung Date: 2023-08-01 20:31:25 +0000 URL: https://git.openjdk.org/crac/commit/bf7077752aa6676b0a5a7f799b6823f38fbd8196 8312181: CDS dynamic dump crashes when verifying unlinked class from static archive Reviewed-by: iklam, matsaave ! src/hotspot/share/cds/metaspaceShared.cpp + test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/OldClassVerifierTrouble.java = test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/test-classes/ChildOldSuper.java + test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/test-classes/VerifierTroubleApp.java + test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/test-classes/VerifierTroublev49.jasm Changeset: dc142470 Author: Calvin Cheung Date: 2023-08-01 22:08:55 +0000 URL: https://git.openjdk.org/crac/commit/dc142470773ba53b06d424f489d5f1919b2d713b 8309240: Array classes should be stored in dynamic CDS archive Reviewed-by: iklam ! src/hotspot/share/cds/archiveBuilder.cpp ! src/hotspot/share/cds/archiveBuilder.hpp ! src/hotspot/share/cds/dynamicArchive.cpp ! src/hotspot/share/cds/dynamicArchive.hpp ! src/hotspot/share/cds/metaspaceShared.cpp ! src/hotspot/share/cds/metaspaceShared.hpp ! src/hotspot/share/logging/logTag.hpp ! src/hotspot/share/oops/arrayKlass.cpp ! src/hotspot/share/oops/arrayKlass.hpp ! src/hotspot/share/oops/instanceKlass.hpp ! test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/ArrayKlasses.java ! test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/test-classes/ArrayKlassesApp.java Changeset: 28be34c1 Author: John Jiang Date: 2023-08-01 22:35:27 +0000 URL: https://git.openjdk.org/crac/commit/28be34c1b9179e21c8ec5d2f9b05e3f842bb30a1 8313226: Redundant condition test in X509CRLImpl Reviewed-by: jnimeh ! src/java.base/share/classes/sun/security/x509/X509CRLImpl.java Changeset: 9b55e9a7 Author: Justin Lu Date: 2023-08-01 23:16:39 +0000 URL: https://git.openjdk.org/crac/commit/9b55e9a706de9893b1a71c7a6a4e23c4b8842f18 8312572: JDK 21 RDP2 L10n resource files update Reviewed-by: naoto ! src/java.base/share/classes/sun/launcher/resources/launcher_de.properties ! src/java.base/share/classes/sun/launcher/resources/launcher_ja.properties ! src/java.base/share/classes/sun/launcher/resources/launcher_zh_CN.properties ! src/java.desktop/macosx/classes/com/apple/laf/resources/aqua_ja.properties ! src/java.xml/share/classes/com/sun/org/apache/xalan/internal/res/XSLTErrorResources_zh_CN.java ! src/java.xml/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XMLSchemaMessages_zh_CN.properties ! src/java.xml/share/classes/com/sun/org/apache/xml/internal/res/XMLErrorResources_zh_CN.java ! src/java.xml/share/classes/com/sun/org/apache/xml/internal/serializer/utils/SerializerMessages_zh_CN.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/resources/compiler_de.properties ! src/jdk.compiler/share/classes/com/sun/tools/javac/resources/compiler_ja.properties ! src/jdk.compiler/share/classes/com/sun/tools/javac/resources/compiler_zh_CN.properties ! src/jdk.compiler/share/classes/com/sun/tools/javac/resources/javac_zh_CN.properties ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/resources/standard_zh_CN.properties ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/resources/doclets_de.properties ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/resources/doclets_ja.properties ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/resources/doclets_zh_CN.properties ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/tool/resources/javadoc_zh_CN.properties ! src/jdk.jdeps/share/classes/com/sun/tools/javap/resources/javap_zh_CN.properties ! src/jdk.jdeps/share/classes/com/sun/tools/jdeps/resources/jdeps_de.properties ! src/jdk.jdeps/share/classes/com/sun/tools/jdeps/resources/jdeps_ja.properties ! src/jdk.jdeps/share/classes/com/sun/tools/jdeps/resources/jdeps_zh_CN.properties ! src/jdk.jlink/share/classes/jdk/tools/jlink/resources/jlink_de.properties ! src/jdk.jlink/share/classes/jdk/tools/jlink/resources/jlink_ja.properties ! src/jdk.jlink/share/classes/jdk/tools/jlink/resources/jlink_zh_CN.properties ! src/jdk.jlink/share/classes/jdk/tools/jlink/resources/plugins_de.properties ! src/jdk.jlink/share/classes/jdk/tools/jlink/resources/plugins_ja.properties ! src/jdk.jlink/share/classes/jdk/tools/jlink/resources/plugins_zh_CN.properties ! src/jdk.jpackage/share/classes/jdk/jpackage/internal/resources/HelpResources_zh_CN.properties ! src/jdk.jshell/share/classes/jdk/internal/jshell/tool/resources/l10n.properties ! src/jdk.jshell/share/classes/jdk/internal/jshell/tool/resources/l10n_de.properties ! src/jdk.jshell/share/classes/jdk/internal/jshell/tool/resources/l10n_ja.properties ! src/jdk.jshell/share/classes/jdk/internal/jshell/tool/resources/l10n_zh_CN.properties Changeset: f14245b3 Author: Jim Laskey Date: 2023-08-02 00:47:20 +0000 URL: https://git.openjdk.org/crac/commit/f14245b3880ff735ae231b4c7d2c6b6907c5f7d4 8312814: Compiler crash when template processor type is a captured wildcard Reviewed-by: jlahoda, mcimadamore, vromero ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/TransTypes.java + test/langtools/tools/javac/template/T8312814.java Changeset: 528596fa Author: Joe Wang Date: 2023-08-02 01:37:40 +0000 URL: https://git.openjdk.org/crac/commit/528596fa937f8589f71fa06929fbb75f62142a4f 8310991: missing @since tags in java.xml Reviewed-by: iris, naoto, lancea ! src/java.xml/share/classes/org/w3c/dom/Attr.java ! src/java.xml/share/classes/org/w3c/dom/CDATASection.java ! src/java.xml/share/classes/org/w3c/dom/CharacterData.java ! src/java.xml/share/classes/org/w3c/dom/Comment.java ! src/java.xml/share/classes/org/w3c/dom/DOMException.java ! src/java.xml/share/classes/org/w3c/dom/DOMImplementation.java ! src/java.xml/share/classes/org/w3c/dom/Document.java ! src/java.xml/share/classes/org/w3c/dom/DocumentFragment.java ! src/java.xml/share/classes/org/w3c/dom/DocumentType.java ! src/java.xml/share/classes/org/w3c/dom/Element.java ! src/java.xml/share/classes/org/w3c/dom/Entity.java ! src/java.xml/share/classes/org/w3c/dom/EntityReference.java ! src/java.xml/share/classes/org/w3c/dom/NamedNodeMap.java ! src/java.xml/share/classes/org/w3c/dom/Node.java ! src/java.xml/share/classes/org/w3c/dom/NodeList.java ! src/java.xml/share/classes/org/w3c/dom/Notation.java ! src/java.xml/share/classes/org/w3c/dom/ProcessingInstruction.java ! src/java.xml/share/classes/org/w3c/dom/Text.java Changeset: e8471f6b Author: Daniel Jeli?ski Date: 2023-08-02 05:45:24 +0000 URL: https://git.openjdk.org/crac/commit/e8471f6bbe692a0d1e293f9e09aaa4f32312eb6a 8313507: Remove pkcs11/Cipher/TestKATForGCM.java from ProblemList Reviewed-by: mullan ! test/jdk/ProblemList.txt Changeset: 6a853bba Author: Jenny Shivayogi Committer: Aleksey Shipilev Date: 2023-08-02 07:00:13 +0000 URL: https://git.openjdk.org/crac/commit/6a853bba09092141f436d4cb1e8fdc5a06beac82 8311821: Simplify ParallelGCThreadsConstraintFunc after CMS removal Reviewed-by: kbarrett, shade, tschatzl ! src/hotspot/share/gc/parallel/jvmFlagConstraintsParallel.cpp ! src/hotspot/share/gc/parallel/jvmFlagConstraintsParallel.hpp ! src/hotspot/share/gc/shared/gc_globals.hpp ! src/hotspot/share/gc/shared/jvmFlagConstraintsGC.cpp ! src/hotspot/share/gc/shared/jvmFlagConstraintsGC.hpp ! test/hotspot/jtreg/gc/arguments/TestParallelGCThreads.java Changeset: 9454b2bb Author: Aleksey Shipilev Date: 2023-08-02 07:00:37 +0000 URL: https://git.openjdk.org/crac/commit/9454b2bbe130fdbe86485b928b80d19156c709ee 8312591: GCC 6 build failure after JDK-8280982 Reviewed-by: jiefu, prr ! make/modules/java.desktop/lib/Awt2dLibraries.gmk Changeset: 5d1b911c Author: Albert Mingkun Yang Date: 2023-08-02 09:17:41 +0000 URL: https://git.openjdk.org/crac/commit/5d1b911c92b933c257c8e9afe1464ec175ca1cc2 8310311: Serial: move Generation::contribute_scratch to DefNewGeneration Reviewed-by: tschatzl, kbarrett ! src/hotspot/share/gc/serial/defNewGeneration.cpp ! src/hotspot/share/gc/serial/defNewGeneration.hpp ! src/hotspot/share/gc/serial/genMarkSweep.cpp ! src/hotspot/share/gc/shared/genCollectedHeap.cpp ! src/hotspot/share/gc/shared/genCollectedHeap.hpp ! src/hotspot/share/gc/shared/generation.hpp Changeset: 6faf05c6 Author: Alan Bateman Date: 2023-08-02 10:40:25 +0000 URL: https://git.openjdk.org/crac/commit/6faf05c6ddb3a0bcf4dce9516b8fca15d25cd80f 8311989: Test java/lang/Thread/virtual/Reflection.java timed out Reviewed-by: jpai, mchung ! test/jdk/java/lang/Thread/virtual/Reflection.java Changeset: 46fbedb2 Author: Aleksey Shipilev Date: 2023-08-02 11:21:34 +0000 URL: https://git.openjdk.org/crac/commit/46fbedb2be98a9b8aba042fa9f90c3b25c312cd6 8313402: C1: Incorrect LoadIndexed value numbering Reviewed-by: phh, thartmann ! src/hotspot/share/c1/c1_Instruction.hpp + test/hotspot/jtreg/compiler/c1/TestLoadIndexedMismatch.java Changeset: 19e2c8c3 Author: Stefan Karlsson Date: 2023-08-02 12:13:47 +0000 URL: https://git.openjdk.org/crac/commit/19e2c8c321823c056091e6e9f6c3d0db7ba9ec2b 8313593: Generational ZGC: NMT assert when the heap fails to expand Reviewed-by: stuefe, tschatzl, eosterlund ! src/hotspot/share/gc/z/zPhysicalMemory.cpp Changeset: b093880a Author: Antonios Printezis Date: 2023-08-02 13:17:00 +0000 URL: https://git.openjdk.org/crac/commit/b093880acd89d8d0bccd4b8b260b721f4dcfc161 8313322: RISC-V: implement MD5 intrinsic Reviewed-by: luhenry, rehn ! src/hotspot/cpu/riscv/macroAssembler_riscv.cpp ! src/hotspot/cpu/riscv/macroAssembler_riscv.hpp ! src/hotspot/cpu/riscv/stubGenerator_riscv.cpp ! src/hotspot/cpu/riscv/vm_version_riscv.cpp Changeset: 64467923 Author: Cesar Soares Lucas Committer: Tobias Hartmann Date: 2023-08-02 14:27:07 +0000 URL: https://git.openjdk.org/crac/commit/6446792327c629dbd1dfc1edfb547065f6fce651 8312617: SIGSEGV in ConnectionGraph::verify_ram_nodes Reviewed-by: kvn, thartmann ! src/hotspot/share/opto/c2compiler.cpp ! src/hotspot/share/opto/compile.cpp ! src/hotspot/share/opto/escape.cpp Changeset: c1a3f143 Author: Deepa Kumari Committer: Tyler Steele Date: 2023-08-02 14:39:33 +0000 URL: https://git.openjdk.org/crac/commit/c1a3f143bf881dac6d6e517293c79a68129c6f5a 8312078: [PPC] JcmdScale.java Failing on AIX Reviewed-by: stuefe, tsteele ! src/hotspot/share/services/nmtDCmd.cpp Changeset: 4ba81f63 Author: Brian Burkhalter Date: 2023-08-02 15:25:59 +0000 URL: https://git.openjdk.org/crac/commit/4ba81f631f572d870d0f2c96fefe0cabc55e1841 8313368: (fc) FileChannel.size returns 0 on block special files Reviewed-by: vtewari, alanb ! src/java.base/unix/native/libnio/ch/UnixFileDispatcherImpl.c ! test/jdk/java/nio/channels/FileChannel/BlockDeviceSize.java Changeset: cff25dd5 Author: Matias Saavedra Silva Date: 2023-08-02 17:11:22 +0000 URL: https://git.openjdk.org/crac/commit/cff25dd574203d0840d11ce083a5b825fb26d61d 8306582: Remove MetaspaceShared::exit_after_static_dump() Reviewed-by: iklam, alanb, ccheung ! src/hotspot/share/cds/archiveBuilder.cpp ! src/hotspot/share/cds/archiveBuilder.hpp ! src/hotspot/share/cds/heapShared.cpp ! src/hotspot/share/cds/heapShared.hpp ! src/hotspot/share/cds/metaspaceShared.cpp ! src/hotspot/share/cds/metaspaceShared.hpp ! src/hotspot/share/oops/constantPool.cpp ! src/hotspot/share/runtime/threads.cpp ! src/java.base/share/native/libjli/java.c Changeset: bc1d2eac Author: Jim Laskey Date: 2023-08-02 21:01:44 +0000 URL: https://git.openjdk.org/crac/commit/bc1d2eac9abd5fb38402113c7f0805c21ef7787f 8312821: Javac accepts char literal as template Reviewed-by: jlahoda ! src/jdk.compiler/share/classes/com/sun/tools/javac/parser/JavaTokenizer.java ! test/langtools/tools/javac/lexer/JavaLexerTest.java ! test/langtools/tools/javac/unicode/TripleQuote.out Changeset: 6d180d5f Author: Jonathan Gibbons Date: 2023-08-02 21:59:22 +0000 URL: https://git.openjdk.org/crac/commit/6d180d5fbfb7ba2a6cebebe637e791dd540a80d7 8313349: Introduce `abstract void HtmlDocletWriter.buildPage()` Reviewed-by: prappo ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/AbstractExecutableMemberWriter.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/AbstractMemberWriter.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/AbstractOverviewIndexWriter.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/AllClassesIndexWriter.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/AllPackagesIndexWriter.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/AnnotationTypeMemberWriter.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/ClassUseWriter.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/ClassWriter.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/ConstantsSummaryWriter.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/ConstructorWriter.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/DeprecatedListWriter.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/DocFilesHandler.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/EnumConstantWriter.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/ExternalSpecsWriter.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/FieldWriter.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/HelpWriter.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/HtmlDoclet.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/HtmlDocletWriter.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/HtmlIds.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/HtmlIndexBuilder.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/IndexRedirectWriter.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/IndexWriter.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/MethodWriter.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/ModuleIndexWriter.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/ModuleWriter.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/NestedClassWriter.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/NewAPIListWriter.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/PackageIndexWriter.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/PackageTreeWriter.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/PackageUseWriter.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/PackageWriter.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/PreviewListWriter.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/PropertyWriter.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/SearchWriter.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/SerialFieldWriter.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/SerialMethodWriter.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/SerializedFormWriter.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/SubWriterHolderWriter.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/SummaryListWriter.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/SystemPropertiesWriter.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/TreeWriter.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/WriterFactory.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/markup/Entity.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/markup/Head.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/DocFileElement.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/util/Utils.java Changeset: 8248e351 Author: Sergey Bylokhov Date: 2023-08-02 23:37:35 +0000 URL: https://git.openjdk.org/crac/commit/8248e351d0bed263fb68d8468004a4286e6391af 8313576: GCC 7 reports compiler warning in bundled freetype 2.13.0 Reviewed-by: shade, prr ! make/modules/java.desktop/lib/Awt2dLibraries.gmk Changeset: 87d7e976 Author: Tejesh R Date: 2023-08-03 04:44:41 +0000 URL: https://git.openjdk.org/crac/commit/87d7e976cbb9a4441f6f215252383b41b2b69f97 8311031: JTable header border vertical lines are not aligned with data grid lines Reviewed-by: abhiscxk, psadhukhan, aivanov ! src/java.desktop/share/classes/javax/swing/plaf/metal/MetalBorders.java + test/jdk/javax/swing/JTableHeader/TableHeaderBorderPositionTest.java Changeset: 53ca75b1 Author: Amit Kumar Date: 2023-08-03 05:47:22 +0000 URL: https://git.openjdk.org/crac/commit/53ca75b18ea419d469758475fac8352bf915b484 8313312: Add missing classpath exception copyright header Reviewed-by: rriggs, asotona ! src/java.base/share/classes/jdk/internal/classfile/components/ClassRemapper.java ! src/java.base/share/classes/jdk/internal/classfile/components/CodeLocalsShifter.java ! src/java.base/share/classes/jdk/internal/classfile/components/CodeRelabeler.java ! src/java.base/share/classes/jdk/internal/classfile/components/CodeStackTracker.java ! src/java.base/share/classes/jdk/internal/classfile/impl/ClassHierarchyImpl.java ! src/java.base/share/classes/jdk/internal/classfile/impl/ClassRemapperImpl.java ! src/java.base/share/classes/jdk/internal/classfile/impl/CodeLocalsShifterImpl.java ! src/java.base/share/classes/jdk/internal/classfile/impl/CodeRelabelerImpl.java ! src/java.base/share/classes/jdk/internal/classfile/impl/CodeStackTrackerImpl.java ! src/java.base/share/classes/jdk/internal/classfile/impl/StackCounter.java ! src/java.base/share/classes/jdk/internal/classfile/impl/StackMapGenerator.java ! src/java.base/share/classes/jdk/internal/classfile/impl/verifier/VerificationWrapper.java ! src/java.base/share/classes/jdk/internal/util/Architecture.java ! src/java.base/share/classes/jdk/internal/util/OSVersion.java ! src/java.base/share/classes/jdk/internal/util/OperatingSystem.java ! src/java.base/share/classes/jdk/internal/util/PlatformProps.java.template Changeset: 3c920f9c Author: Jaikiran Pai Date: 2023-08-03 07:15:21 +0000 URL: https://git.openjdk.org/crac/commit/3c920f9cc61566b7bd08d2bf8773d39a616082d3 8313274: [BACKOUT] Relax prerequisites for java.base-jmod target Reviewed-by: dholmes ! make/Main.gmk Changeset: 58906bf8 Author: Prasanta Sadhukhan Date: 2023-08-03 07:23:19 +0000 URL: https://git.openjdk.org/crac/commit/58906bf8fbbf4417149e796325bcbaec189d538b 4893524: Swing drop targets should call close() on transferred readers and streams Reviewed-by: serb, tr, aivanov ! src/java.desktop/share/classes/javax/swing/plaf/basic/BasicTextUI.java Changeset: bdac348c Author: Matthias Baesken Date: 2023-08-03 08:12:20 +0000 URL: https://git.openjdk.org/crac/commit/bdac348c80d451cefbc73eb8313e8511dbb0de31 8313602: increase timeout for jdk/classfile/CorpusTest.java Reviewed-by: clanger ! test/jdk/jdk/classfile/CorpusTest.java Changeset: 3212b64f Author: Thomas Stuefe Date: 2023-08-03 08:32:13 +0000 URL: https://git.openjdk.org/crac/commit/3212b64f8efc32a95808cd33e16b6cf989173a3f 8313582: Problemlist failing test on linux x86 Reviewed-by: tschatzl ! test/langtools/ProblemList.txt Changeset: c3860917 Author: Jan Lahoda Date: 2023-08-03 08:37:15 +0000 URL: https://git.openjdk.org/crac/commit/c3860917346fb53ed3d23f11d112b58b8cd8448a 8312984: javac may crash on a record pattern with too few components Reviewed-by: vromero ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Flow.java ! test/langtools/tools/javac/patterns/PatternErrorRecovery-old.out ! test/langtools/tools/javac/patterns/PatternErrorRecovery.java ! test/langtools/tools/javac/patterns/PatternErrorRecovery.out Changeset: ab1c212a Author: Tobias Hartmann Date: 2023-08-03 11:02:42 +0000 URL: https://git.openjdk.org/crac/commit/ab1c212ac1097ae6e1122ef1aba47ca51eca11f2 8312909: C1 should not inline through interface calls with non-subtype receiver Reviewed-by: kvn, chagedorn ! src/hotspot/share/c1/c1_GraphBuilder.cpp + test/hotspot/jtreg/compiler/c1/TestInvokeinterfaceWithBadReceiver.java + test/hotspot/jtreg/compiler/c1/TestInvokeinterfaceWithBadReceiverHelper.jasm Changeset: 0f2fce71 Author: Matthias Baesken Date: 2023-08-03 12:02:52 +0000 URL: https://git.openjdk.org/crac/commit/0f2fce71680355412896b2cb2d96cc85f69324e7 8313632: ciEnv::dump_replay_data use fclose Reviewed-by: thartmann, lucy ! src/hotspot/share/ci/ciEnv.cpp Changeset: bb3aac60 Author: Tejesh R Date: 2023-08-03 16:09:47 +0000 URL: https://git.openjdk.org/crac/commit/bb3aac606397481cb4832cb75ec0a549d079ab13 8301606: JFileChooser file chooser details view "size" label cut off in Metal Look&Feel Reviewed-by: aivanov, abhiscxk ! src/java.desktop/share/classes/javax/swing/plaf/metal/MetalBorders.java + test/jdk/javax/swing/JTableHeader/JTableHeaderLabelRightAlignTest.java Changeset: 45771479 Author: Tobias Hartmann Date: 2023-08-03 18:08:29 +0000 URL: https://git.openjdk.org/crac/commit/4577147993c2f87e6ba298a664acad5decc968f0 8313712: [BACKOUT] 8313632: ciEnv::dump_replay_data use fclose Reviewed-by: mikael ! src/hotspot/share/ci/ciEnv.cpp Changeset: d60352e2 Author: Joe Wang Date: 2023-08-03 21:49:05 +0000 URL: https://git.openjdk.org/crac/commit/d60352e26fd8b7e51eeaf299e3f88783b739b02a 8311006: missing @since info in jdk.xml.dom Reviewed-by: iris, naoto, lancea ! src/jdk.xml.dom/share/classes/org/w3c/dom/xpath/XPathEvaluator.java ! src/jdk.xml.dom/share/classes/org/w3c/dom/xpath/XPathException.java ! src/jdk.xml.dom/share/classes/org/w3c/dom/xpath/XPathExpression.java ! src/jdk.xml.dom/share/classes/org/w3c/dom/xpath/XPathNSResolver.java ! src/jdk.xml.dom/share/classes/org/w3c/dom/xpath/XPathNamespace.java ! src/jdk.xml.dom/share/classes/org/w3c/dom/xpath/XPathResult.java Changeset: e8c325de Author: KIRIYAMA Takuya Committer: Erik Gahlin Date: 2023-08-04 03:19:53 +0000 URL: https://git.openjdk.org/crac/commit/e8c325dea39f959ab6bb310c3913b98655e95734 8313394: Array Elements in OldObjectSample event has the incorrect description Reviewed-by: egahlin ! src/hotspot/share/jfr/metadata/metadata.xml Changeset: 10a26058 Author: Qing Xiao Committer: Koichi Sakata Date: 2023-08-04 05:13:57 +0000 URL: https://git.openjdk.org/crac/commit/10a260588497eafa6c6c1caae4a15f354f7e2402 8294979: test/jdk/tools/jlink 3 test classes use ASM library Reviewed-by: mchung, ksakata ! test/jdk/tools/jlink/plugins/SystemModuleDescriptors/CompiledVersionTest.java ! test/jdk/tools/jlink/plugins/SystemModuleDescriptors/SystemModulesTest.java ! test/jdk/tools/jlink/plugins/SystemModuleDescriptors/UserModuleTest.java Changeset: c4b8574b Author: Andreas Steiner Committer: Matthias Baesken Date: 2023-08-04 06:56:12 +0000 URL: https://git.openjdk.org/crac/commit/c4b8574b94c1987d45fae8d9d39acf4883363591 8311938: Add default cups include location for configure on AIX Reviewed-by: clanger, mbaesken, jwaters ! make/autoconf/lib-cups.m4 Changeset: 5d232959 Author: Matthias Baesken Date: 2023-08-04 07:03:25 +0000 URL: https://git.openjdk.org/crac/commit/5d232959c2d98b632a5c48c89f369f7e80c8b68f 8313251: Add NativeLibraryLoad event Reviewed-by: jbechberger, egahlin, dholmes ! src/hotspot/os/aix/os_aix.cpp ! src/hotspot/os/bsd/os_bsd.cpp ! src/hotspot/os/linux/os_linux.cpp ! src/hotspot/os/windows/os_windows.cpp ! src/hotspot/share/jfr/metadata/metadata.xml ! src/jdk.jfr/share/conf/jfr/default.jfc ! src/jdk.jfr/share/conf/jfr/profile.jfc + test/jdk/jdk/jfr/event/runtime/TestNativeLibraryLoadEvent.java ! test/lib/jdk/test/lib/jfr/EventNames.java Changeset: 61c58fdd Author: Raffaello Giulietti Date: 2023-08-04 07:11:18 +0000 URL: https://git.openjdk.org/crac/commit/61c58fdd00727da2841a052477e4f4ecfa7094d6 8312976: MatchResult produces StringIndexOutOfBoundsException for groups outside match Reviewed-by: alanb, smarks ! src/java.base/share/classes/java/util/regex/Matcher.java ! test/jdk/java/util/regex/ImmutableMatchResultTest.java Changeset: 29f1d8ef Author: Aleksey Shipilev Date: 2023-08-04 09:11:32 +0000 URL: https://git.openjdk.org/crac/commit/29f1d8ef50e3b4b235177fd9642a1fcf26fe3bab 8313707: GHA: Bootstrap sysroots with --variant=minbase Reviewed-by: clanger, fyang ! .github/workflows/build-cross-compile.yml Changeset: e8a37b90 Author: Aleksey Shipilev Date: 2023-08-04 09:53:20 +0000 URL: https://git.openjdk.org/crac/commit/e8a37b90db8dca4dc3653970b2d66d2faf8ef452 8313248: C2: setScopedValueCache intrinsic exposes nullptr pre-values to store barriers Reviewed-by: thartmann, rkennke ! src/hotspot/share/opto/library_call.cpp ! src/hotspot/share/opto/library_call.hpp Changeset: f66cd500 Author: Coleen Phillimore Date: 2023-08-04 14:06:16 +0000 URL: https://git.openjdk.org/crac/commit/f66cd5008d155e52a20a351ecd10469286517bf4 8313564: Fix -Wconversion warnings in classfile code Reviewed-by: matsaave, dholmes ! src/hotspot/cpu/x86/vm_version_x86.cpp ! src/hotspot/share/classfile/altHashing.cpp ! src/hotspot/share/classfile/classFileParser.cpp ! src/hotspot/share/classfile/classFileParser.hpp ! src/hotspot/share/classfile/classLoader.cpp ! src/hotspot/share/classfile/classLoaderExt.cpp ! src/hotspot/share/classfile/compactHashtable.cpp ! src/hotspot/share/classfile/compactHashtable.hpp ! src/hotspot/share/classfile/klassFactory.cpp ! src/hotspot/share/classfile/loaderConstraints.cpp ! src/hotspot/share/classfile/stringTable.cpp ! src/hotspot/share/classfile/stringTable.hpp ! src/hotspot/share/classfile/symbolTable.cpp ! src/hotspot/share/classfile/systemDictionaryShared.cpp ! src/hotspot/share/classfile/vmIntrinsics.cpp ! src/hotspot/share/jvmci/jvmciCompilerToVMInit.cpp ! src/hotspot/share/runtime/flags/jvmFlagConstraintsRuntime.cpp ! src/hotspot/share/runtime/flags/jvmFlagConstraintsRuntime.hpp ! src/hotspot/share/runtime/globals.hpp Changeset: 017e0c78 Author: Thomas Stuefe Date: 2023-08-04 18:40:16 +0000 URL: https://git.openjdk.org/crac/commit/017e0c7850e305877e3e0b1d4644b5605225e07c 8310388: Shenandoah: Auxiliary bitmap is not madvised for THP Reviewed-by: shade, kdnilsen ! src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp Changeset: 873d1179 Author: Ashutosh Mehra Committer: Chris Plummer Date: 2023-08-04 18:42:37 +0000 URL: https://git.openjdk.org/crac/commit/873d11793211717c37c6c72c80a76d1472c64c8a 8312623: SA add NestHost and NestMembers attributes when dumping class Reviewed-by: cjplummer, sspitsyn, stuefe ! src/hotspot/share/runtime/vmStructs.cpp ! src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/oops/InstanceKlass.java ! src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/tools/jcore/ClassWriter.java Changeset: b2add96c Author: Stuart Marks Date: 2023-08-04 19:27:56 +0000 URL: https://git.openjdk.org/crac/commit/b2add96c353f15b91524e10207e49841298bed01 8159527: Collections mutator methods should all be marked as optional operations Reviewed-by: naoto, bpb ! src/java.base/share/classes/java/util/Collection.java ! src/java.base/share/classes/java/util/List.java ! src/java.base/share/classes/java/util/Map.java ! src/java.base/share/classes/java/util/NavigableMap.java ! src/java.base/share/classes/java/util/NavigableSet.java Changeset: b463c6d3 Author: danthe1st Committer: Stuart Marks Date: 2023-08-04 20:21:25 +0000 URL: https://git.openjdk.org/crac/commit/b463c6d3b0f27c8f124b5733cb9e7677542abe37 8311517: Add performance information to ArrayList javadoc Reviewed-by: smarks, bpb ! src/java.base/share/classes/java/util/ArrayList.java Changeset: ad6e9e75 Author: Matias Saavedra Silva Date: 2023-08-04 20:24:50 +0000 URL: https://git.openjdk.org/crac/commit/ad6e9e75bff24e74c888d9b96c3f698ae0f54127 8313554: Fix -Wconversion warnings for ResolvedFieldEntry Reviewed-by: coleenp, dlong ! src/hotspot/share/interpreter/interpreterRuntime.cpp ! src/hotspot/share/interpreter/rewriter.cpp ! src/hotspot/share/oops/resolvedFieldEntry.hpp Changeset: 6d185296 Author: Christoph Langer Date: 2023-08-04 22:33:36 +0000 URL: https://git.openjdk.org/crac/commit/6d185296161606edbc9f737a6b1b27496add9367 8313795: Fix for JDK-8313564 breaks ppc and s390x builds Reviewed-by: stuefe ! src/hotspot/cpu/ppc/vm_version_ppc.cpp ! src/hotspot/cpu/s390/vm_version_s390.cpp Changeset: 90d795ab Author: Julian Waters Date: 2023-08-05 05:24:08 +0000 URL: https://git.openjdk.org/crac/commit/90d795abf10bf8b8b53079c1afd19fee7b4cb6cf 8313141: Missing check for os_thread type in os_windows.cpp Reviewed-by: dholmes, mgronlun ! src/hotspot/os/windows/os_windows.cpp Changeset: c1f4595e Author: Abhishek Kumar Date: 2023-08-07 05:02:16 +0000 URL: https://git.openjdk.org/crac/commit/c1f4595e64b0ea0439c6e7f61a6a92b56b526d97 8311160: [macOS, Accessibility] VoiceOver: No announcements on JRadioButtonMenuItem and JCheckBoxMenuItem Reviewed-by: asemenov, kizune ! src/java.desktop/macosx/classes/sun/lwawt/macosx/CAccessible.java Changeset: a38fdaf1 Author: Prasanta Sadhukhan Date: 2023-08-07 09:12:33 +0000 URL: https://git.openjdk.org/crac/commit/a38fdaf18dfeeb23775516d1986c720190ba9fc2 8166900: If you wrap a JTable in a JLayer, the cursor is moved to the last row of table by you press the page down key. Reviewed-by: abhiscxk, dnguyen, prr, serb ! src/java.desktop/share/classes/javax/swing/plaf/basic/BasicTableUI.java + test/jdk/javax/swing/JTable/JLayerTableTest.java Changeset: dc016047 Author: Christian Hagedorn Date: 2023-08-07 09:14:16 +0000 URL: https://git.openjdk.org/crac/commit/dc01604756c22889412f9f25b534488180327317 8305636: Expand and clean up predicate classes and move them into separate files Reviewed-by: thartmann, roland ! src/hotspot/share/opto/cfgnode.hpp ! src/hotspot/share/opto/ifnode.cpp ! src/hotspot/share/opto/loopPredicate.cpp ! src/hotspot/share/opto/loopTransform.cpp ! src/hotspot/share/opto/loopUnswitch.cpp ! src/hotspot/share/opto/loopnode.cpp ! src/hotspot/share/opto/loopnode.hpp + src/hotspot/share/opto/predicates.cpp + src/hotspot/share/opto/predicates.hpp ! src/hotspot/share/opto/superword.cpp Changeset: 226cdc69 Author: Aleksey Shipilev Date: 2023-08-07 10:45:14 +0000 URL: https://git.openjdk.org/crac/commit/226cdc696d933fbc174d07b0d9817246dbc0e06c 8312585: Rename DisableTHPStackMitigation flag to THPStackMitigation Reviewed-by: dholmes, stuefe ! src/hotspot/os/linux/globals_linux.hpp ! src/hotspot/os/linux/os_linux.cpp ! test/hotspot/jtreg/runtime/os/THPsInThreadStackPreventionTest.java Changeset: 538f9557 Author: Aleksey Shipilev Date: 2023-08-07 10:48:11 +0000 URL: https://git.openjdk.org/crac/commit/538f9557b87f750264231f04bfbc91d15f8af8c0 8313701: GHA: RISC-V should use the official repository for bootstrap Reviewed-by: clanger, fyang ! .github/workflows/build-cross-compile.yml Changeset: 0b4387e3 Author: Per Minborg Date: 2023-08-07 10:58:11 +0000 URL: https://git.openjdk.org/crac/commit/0b4387e3a33dd360efc5856126394739256505f8 8310643: Misformatted copyright messages in FFM Reviewed-by: jvernee ! src/java.base/share/classes/java/lang/foreign/AddressLayout.java ! src/java.base/share/classes/java/lang/foreign/FunctionDescriptor.java ! src/java.base/share/classes/java/lang/foreign/GroupLayout.java ! src/java.base/share/classes/java/lang/foreign/Linker.java ! src/java.base/share/classes/java/lang/foreign/MemoryLayout.java ! src/java.base/share/classes/java/lang/foreign/MemorySegment.java ! src/java.base/share/classes/java/lang/foreign/PaddingLayout.java ! src/java.base/share/classes/java/lang/foreign/SequenceLayout.java ! src/java.base/share/classes/java/lang/foreign/StructLayout.java ! src/java.base/share/classes/java/lang/foreign/UnionLayout.java ! src/java.base/share/classes/java/lang/foreign/ValueLayout.java ! src/java.base/share/classes/java/lang/foreign/package-info.java ! src/java.base/share/classes/java/lang/foreign/snippet-files/Snippets.java ! src/java.base/share/classes/jdk/internal/foreign/abi/riscv64/RISCV64Architecture.java ! src/java.base/share/classes/jdk/internal/foreign/abi/riscv64/linux/LinuxRISCV64CallArranger.java ! src/java.base/share/classes/jdk/internal/foreign/abi/riscv64/linux/LinuxRISCV64Linker.java ! src/java.base/share/classes/jdk/internal/foreign/abi/riscv64/linux/TypeClass.java ! test/jdk/java/foreign/CompositeLookupTest.java ! test/jdk/java/foreign/LibraryLookupTest.java ! test/jdk/java/foreign/NativeTestHelper.java ! test/jdk/java/foreign/SafeFunctionAccessTest.java ! test/jdk/java/foreign/TestAddressDereference.java ! test/jdk/java/foreign/TestDowncallBase.java ! test/jdk/java/foreign/TestFallbackLookup.java ! test/jdk/java/foreign/TestFree.java ! test/jdk/java/foreign/TestFunctionDescriptor.java ! test/jdk/java/foreign/TestHeapAlignment.java ! test/jdk/java/foreign/TestIllegalLink.java ! test/jdk/java/foreign/TestIntrinsics.java ! test/jdk/java/foreign/TestLayouts.java ! test/jdk/java/foreign/TestMemoryAccess.java ! test/jdk/java/foreign/TestMemoryAccessInstance.java ! test/jdk/java/foreign/TestMemoryAlignment.java ! test/jdk/java/foreign/TestMemoryDereference.java ! test/jdk/java/foreign/TestMismatch.java ! test/jdk/java/foreign/TestNULLAddress.java ! test/jdk/java/foreign/TestNulls.java ! test/jdk/java/foreign/TestScopedOperations.java ! test/jdk/java/foreign/TestSegmentOffset.java ! test/jdk/java/foreign/TestSegmentOverlap.java ! test/jdk/java/foreign/TestSegments.java ! test/jdk/java/foreign/TestValueLayouts.java ! test/jdk/java/foreign/callarranger/platform/PlatformLayouts.java ! test/jdk/java/foreign/enablenativeaccess/org/openjdk/foreigntest/libLinkerInvokerUnnamed.cpp ! test/jdk/java/foreign/enablenativeaccess/panama_module/org/openjdk/foreigntest/libLinkerInvokerModule.cpp ! test/jdk/java/foreign/libLibraryLookup.c ! test/jdk/java/foreign/libLookupTest.c ! test/jdk/java/foreign/libNativeAccess.c ! test/jdk/java/foreign/libSafeAccess.c ! test/jdk/java/foreign/loaderLookup/TestLoaderLookupJNI.java ! test/jdk/java/foreign/loaderLookup/libLoaderLookupInvoker.cpp ! test/jdk/java/foreign/stackwalk/TestAsyncStackWalk.java ! test/jdk/java/foreign/stackwalk/TestReentrantUpcalls.java ! test/jdk/java/foreign/stackwalk/TestStackWalk.java ! test/jdk/java/foreign/stackwalk/libAsyncStackWalk.cpp ! test/jdk/java/foreign/stackwalk/libReentrantUpcalls.c ! test/jdk/java/foreign/stackwalk/libStackWalk.c ! test/jdk/java/foreign/virtual/TestVirtualCalls.java Changeset: 4b192a8d Author: Aleksey Shipilev Date: 2023-08-07 11:26:08 +0000 URL: https://git.openjdk.org/crac/commit/4b192a8dc37297f0746c0c68322e0168d9f47771 8313676: Amend TestLoadIndexedMismatch test to target intrinsic directly Reviewed-by: thartmann, chagedorn ! test/hotspot/jtreg/compiler/c1/TestLoadIndexedMismatch.java ! test/hotspot/jtreg/compiler/patches/java.base/java/lang/Helper.java Changeset: 0bb6af3b Author: Coleen Phillimore Date: 2023-08-07 12:06:41 +0000 URL: https://git.openjdk.org/crac/commit/0bb6af3bc0fa608c4a988fee9c0f10947e899e2e 8313791: Fix just zPage.inline.hpp and xPage.inline.hpp Reviewed-by: stefank, tschatzl ! src/hotspot/share/gc/x/xPage.inline.hpp ! src/hotspot/share/gc/z/zPage.inline.hpp Changeset: bbbfa217 Author: Per Minborg Date: 2023-08-07 12:34:52 +0000 URL: https://git.openjdk.org/crac/commit/bbbfa217a030e90e41c036203f85b764927f4848 8313880: Incorrect copyright header in jdk/java/foreign/TestFree.java after JDK-8310643 Reviewed-by: thartmann ! test/jdk/java/foreign/TestFree.java Changeset: 4726960f Author: Antonios Printezis Date: 2023-08-07 14:17:44 +0000 URL: https://git.openjdk.org/crac/commit/4726960fcdc9489fb8f9c7e1a100828f1347c30c 8313779: RISC-V: use andn / orn in the MD5 instrinsic Reviewed-by: luhenry, fyang ! src/hotspot/cpu/riscv/macroAssembler_riscv.cpp ! src/hotspot/cpu/riscv/macroAssembler_riscv.hpp ! src/hotspot/cpu/riscv/stubGenerator_riscv.cpp Changeset: 380418fa Author: Qing Xiao Committer: Adam Sotona Date: 2023-08-07 15:49:11 +0000 URL: https://git.openjdk.org/crac/commit/380418fad07c0526bb698b4bfcbacbd65a8615be 8295058: test/langtools/tools/javac 116 test classes uses com.sun.tools.classfile library Reviewed-by: asotona ! test/langtools/lib/annotations/annotations/classfile/ClassfileInspector.java ! test/langtools/tools/javac/8009170/RedundantByteCodeInArrayTest.java ! test/langtools/tools/javac/StringConcat/WellKnownTypes.java ! test/langtools/tools/javac/T7165659/InnerClassAttrMustNotHaveStrictFPFlagTest.java ! test/langtools/tools/javac/T8011181/EmptyUTF8ForInnerClassNameTest.java ! test/langtools/tools/javac/T8028504/DontGenerateLVTForGNoneOpTest.java ! test/langtools/tools/javac/T8210435/NoLocalsMustBeReservedForDCEedVarsTest.java ! test/langtools/tools/javac/annotations/SyntheticParameters.java ! test/langtools/tools/javac/annotations/typeAnnotations/classfile/AnonymousClassTest.java ! test/langtools/tools/javac/annotations/typeAnnotations/classfile/ClassfileTestHelper.java ! test/langtools/tools/javac/annotations/typeAnnotations/classfile/CombinationsTargetTest1.java ! test/langtools/tools/javac/annotations/typeAnnotations/classfile/CombinationsTargetTest2.java ! test/langtools/tools/javac/annotations/typeAnnotations/classfile/CombinationsTargetTest3.java ! test/langtools/tools/javac/annotations/typeAnnotations/classfile/DeadCode.java ! test/langtools/tools/javac/annotations/typeAnnotations/classfile/InstanceInitializer.java ! test/langtools/tools/javac/annotations/typeAnnotations/classfile/NewTypeArguments.java ! test/langtools/tools/javac/annotations/typeAnnotations/classfile/NoTargetAnnotations.java ! test/langtools/tools/javac/annotations/typeAnnotations/classfile/Scopes.java ! test/langtools/tools/javac/annotations/typeAnnotations/classfile/StaticInitializer.java ! test/langtools/tools/javac/annotations/typeAnnotations/classfile/SyntheticParameters.java ! test/langtools/tools/javac/annotations/typeAnnotations/classfile/T8008762.java ! test/langtools/tools/javac/annotations/typeAnnotations/classfile/T8008769.java ! test/langtools/tools/javac/annotations/typeAnnotations/classfile/T8010015.java ! test/langtools/tools/javac/annotations/typeAnnotations/classfile/TestAnonInnerClasses.java ! test/langtools/tools/javac/annotations/typeAnnotations/classfile/TestNewCastArray.java ! test/langtools/tools/javac/annotations/typeAnnotations/classfile/TypeAnnotationPropagationTest.java ! test/langtools/tools/javac/annotations/typeAnnotations/classfile/TypeCasts.java ! test/langtools/tools/javac/annotations/typeAnnotations/classfile/Wildcards.java ! test/langtools/tools/javac/classfiles/attributes/AnnotationDefault/AnnotationDefaultTest.java ! test/langtools/tools/javac/classfiles/attributes/AnnotationDefault/AnnotationDefaultVerifier.java ! test/langtools/tools/javac/classfiles/attributes/EnclosingMethod/EnclosingMethodTest.java ! test/langtools/tools/javac/classfiles/attributes/LineNumberTable/LineNumberTest.java ! test/langtools/tools/javac/classfiles/attributes/LineNumberTable/LineNumberTestBase.java ! test/langtools/tools/javac/classfiles/attributes/LineNumberTable/MultipleRecordPatterns.java ! test/langtools/tools/javac/classfiles/attributes/LineNumberTable/RuleSwitchBreaks.java ! test/langtools/tools/javac/classfiles/attributes/LineNumberTable/StringSwitchBreaks.java ! test/langtools/tools/javac/classfiles/attributes/LineNumberTable/T8050993.java ! test/langtools/tools/javac/classfiles/attributes/LocalVariableTable/LocalVariableTableTest.java ! test/langtools/tools/javac/classfiles/attributes/LocalVariableTable/LocalVariableTestBase.java ! test/langtools/tools/javac/classfiles/attributes/LocalVariableTable/LocalVariableTypeTableTest.java ! test/langtools/tools/javac/classfiles/attributes/Module/ModuleFlagTest.java ! test/langtools/tools/javac/classfiles/attributes/Module/ModuleTest.java ! test/langtools/tools/javac/classfiles/attributes/Module/ModuleTestBase.java ! test/langtools/tools/javac/classfiles/attributes/Signature/ConstructorTest.java ! test/langtools/tools/javac/classfiles/attributes/Signature/Driver.java ! test/langtools/tools/javac/classfiles/attributes/Signature/EnumTest.java ! test/langtools/tools/javac/classfiles/attributes/Signature/ExceptionTest.java ! test/langtools/tools/javac/classfiles/attributes/Signature/FieldTest.java ! test/langtools/tools/javac/classfiles/attributes/Signature/InnerClassTest.java ! test/langtools/tools/javac/classfiles/attributes/Signature/MethodParameterTest.java ! test/langtools/tools/javac/classfiles/attributes/Signature/MethodTypeBoundTest.java ! test/langtools/tools/javac/classfiles/attributes/Signature/ReturnTypeTest.java ! test/langtools/tools/javac/classfiles/attributes/SourceFile/AnonymousClassTest.java ! test/langtools/tools/javac/classfiles/attributes/SourceFile/InnerClassTest.java ! test/langtools/tools/javac/classfiles/attributes/SourceFile/LocalClassTest.java ! test/langtools/tools/javac/classfiles/attributes/SourceFile/MixTest.java ! test/langtools/tools/javac/classfiles/attributes/SourceFile/ModuleInfoTest.java ! test/langtools/tools/javac/classfiles/attributes/SourceFile/NoSourceFileAttribute.java ! test/langtools/tools/javac/classfiles/attributes/SourceFile/SourceFileTestBase.java ! test/langtools/tools/javac/classfiles/attributes/SourceFile/SyntheticClassTest.java ! test/langtools/tools/javac/classfiles/attributes/SourceFile/TopLevelClassesOneFileTest.java ! test/langtools/tools/javac/classfiles/attributes/Synthetic/AccessToPrivateInnerClassConstructorsTest.java ! test/langtools/tools/javac/classfiles/attributes/Synthetic/AccessToPrivateInnerClassMembersTest.java ! test/langtools/tools/javac/classfiles/attributes/Synthetic/AccessToPrivateSiblingsTest.java ! test/langtools/tools/javac/classfiles/attributes/Synthetic/AssertFieldTest.java ! test/langtools/tools/javac/classfiles/attributes/Synthetic/BridgeMethodForGenericMethodTest.java ! test/langtools/tools/javac/classfiles/attributes/Synthetic/BridgeMethodsForLambdaTargetRelease14Test.java ! test/langtools/tools/javac/classfiles/attributes/Synthetic/BridgeMethodsForLambdaTest.java ! test/langtools/tools/javac/classfiles/attributes/Synthetic/EnumTest.java ! test/langtools/tools/javac/classfiles/attributes/Synthetic/PackageInfoTest.java ! test/langtools/tools/javac/classfiles/attributes/Synthetic/SyntheticTestDriver.java ! test/langtools/tools/javac/classfiles/attributes/Synthetic/ThisFieldTest.java ! test/langtools/tools/javac/classfiles/attributes/annotations/AnnotationsTestBase.java ! test/langtools/tools/javac/classfiles/attributes/annotations/RuntimeAnnotationsForGenericMethodTest.java ! test/langtools/tools/javac/classfiles/attributes/annotations/RuntimeAnnotationsForInnerAnnotationTest.java ! test/langtools/tools/javac/classfiles/attributes/annotations/RuntimeAnnotationsForInnerClassTest.java ! test/langtools/tools/javac/classfiles/attributes/annotations/RuntimeAnnotationsForInnerEnumTest.java ! test/langtools/tools/javac/classfiles/attributes/annotations/RuntimeAnnotationsForInnerInterfaceTest.java ! test/langtools/tools/javac/classfiles/attributes/annotations/RuntimeAnnotationsForTopLevelClassTest.java ! test/langtools/tools/javac/classfiles/attributes/annotations/RuntimeAnnotationsTestBase.java ! test/langtools/tools/javac/classfiles/attributes/annotations/RuntimeParameterAnnotationsForGenericMethodTest.java ! test/langtools/tools/javac/classfiles/attributes/annotations/RuntimeParameterAnnotationsForLambdaTest.java ! test/langtools/tools/javac/classfiles/attributes/annotations/RuntimeParameterAnnotationsTest.java ! test/langtools/tools/javac/classfiles/attributes/annotations/RuntimeParameterAnnotationsTestBase.java ! test/langtools/tools/javac/classfiles/attributes/annotations/TestAnnotationInfo.java ! test/langtools/tools/javac/classfiles/attributes/deprecated/DeprecatedPackageTest.java ! test/langtools/tools/javac/classfiles/attributes/deprecated/DeprecatedTest.java ! test/langtools/tools/javac/classfiles/attributes/innerclasses/InnerAnnotationsInInnerAnnotationTest.java ! test/langtools/tools/javac/classfiles/attributes/innerclasses/InnerAnnotationsInInnerClassTest.java ! test/langtools/tools/javac/classfiles/attributes/innerclasses/InnerAnnotationsInInnerEnumTest.java ! test/langtools/tools/javac/classfiles/attributes/innerclasses/InnerAnnotationsInInnerInterfaceTest.java ! test/langtools/tools/javac/classfiles/attributes/innerclasses/InnerClassesHierarchyTest.java ! test/langtools/tools/javac/classfiles/attributes/innerclasses/InnerClassesInAnonymousClassTest.java ! test/langtools/tools/javac/classfiles/attributes/innerclasses/InnerClassesInInnerAnnotationTest.java ! test/langtools/tools/javac/classfiles/attributes/innerclasses/InnerClassesInInnerClassTest.java ! test/langtools/tools/javac/classfiles/attributes/innerclasses/InnerClassesInInnerEnumTest.java ! test/langtools/tools/javac/classfiles/attributes/innerclasses/InnerClassesInInnerInterfaceTest.java ! test/langtools/tools/javac/classfiles/attributes/innerclasses/InnerClassesInLocalClassTest.java ! test/langtools/tools/javac/classfiles/attributes/innerclasses/InnerClassesIndexTest.java ! test/langtools/tools/javac/classfiles/attributes/innerclasses/InnerClassesTest.java ! test/langtools/tools/javac/classfiles/attributes/innerclasses/InnerClassesTestBase.java ! test/langtools/tools/javac/classfiles/attributes/innerclasses/InnerEnumInInnerAnnotationTest.java ! test/langtools/tools/javac/classfiles/attributes/innerclasses/InnerEnumInInnerEnumTest.java ! test/langtools/tools/javac/classfiles/attributes/innerclasses/InnerEnumInInnerInterfaceTest.java ! test/langtools/tools/javac/classfiles/attributes/innerclasses/InnerEnumsInInnerClassTest.java ! test/langtools/tools/javac/classfiles/attributes/innerclasses/InnerInterfacesInInnerAnnotationTest.java ! test/langtools/tools/javac/classfiles/attributes/innerclasses/InnerInterfacesInInnerClassTest.java ! test/langtools/tools/javac/classfiles/attributes/innerclasses/InnerInterfacesInInnerEnumTest.java ! test/langtools/tools/javac/classfiles/attributes/innerclasses/InnerInterfacesInInnerInterfaceTest.java ! test/langtools/tools/javac/classfiles/attributes/innerclasses/NoInnerClassesTest.java ! test/langtools/tools/javac/classfiles/attributes/lib/TestBase.java ! test/langtools/tools/javac/classreader/BadClass.java ! test/langtools/tools/javac/constDebug/ConstDebugTest.java ! test/langtools/tools/javac/lambda/LambdaTestStrictFPFlag.java ! test/langtools/tools/javac/linenumbers/ConditionalLineNumberTest.java ! test/langtools/tools/javac/resolve/NoObjectToString.java ! test/langtools/tools/javac/sealed/CheckSubtypesOfSealedTest.java Changeset: 9c6eb67e Author: Christian Stein Date: 2023-08-07 16:09:23 +0000 URL: https://git.openjdk.org/crac/commit/9c6eb67e85e35b3b40c258891789bd3e757a0c17 8313167: Update to use jtreg 7.3 Reviewed-by: jjg, iris ! make/autoconf/lib-tests.m4 ! make/conf/github-actions.conf ! make/conf/jib-profiles.js ! test/hotspot/jtreg/TEST.ROOT ! test/jaxp/TEST.ROOT ! test/jdk/TEST.ROOT ! test/langtools/TEST.ROOT ! test/lib-test/TEST.ROOT Changeset: 1da82a34 Author: Justin Lu Date: 2023-08-07 17:10:27 +0000 URL: https://git.openjdk.org/crac/commit/1da82a34b14189814e45a93c68620ccb51427111 8313702: Update IANA Language Subtag Registry to Version 2023-08-02 Reviewed-by: naoto, iris ! src/java.base/share/data/lsrdata/language-subtag-registry.txt ! test/jdk/java/util/Locale/LanguageSubtagRegistryTest.java Changeset: 83edffa6 Author: Alex Menkov Date: 2023-08-07 18:27:33 +0000 URL: https://git.openjdk.org/crac/commit/83edffa608d998a118d1d12f62d73be40a8982bc 8309663: test fails "assert(check_alignment(result)) failed: address not aligned: 0x00000008baadbabe" Reviewed-by: sspitsyn, eosterlund ! src/hotspot/share/prims/jvmtiTagMap.cpp ! test/hotspot/jtreg/ProblemList-zgc.txt Changeset: 87b08b6e Author: Chris Plummer Date: 2023-08-07 18:51:29 +0000 URL: https://git.openjdk.org/crac/commit/87b08b6e0192d88025c2275c7dd2c4bdecda58e8 8307408: Some jdk/sun/tools/jhsdb tests don't pass test JVM args to the debuggee JVM Reviewed-by: sspitsyn, lmesnik ! test/jdk/ProblemList-zgc.txt ! test/jdk/ProblemList.txt ! test/jdk/sun/tools/jhsdb/JShellHeapDumpTest.java ! test/jdk/sun/tools/jhsdb/JStackStressTest.java Changeset: 87a6acbe Author: Jan Lahoda Date: 2023-08-08 08:49:39 +0000 URL: https://git.openjdk.org/crac/commit/87a6acbeee1673526bfc5f8692e0949cb113e841 8313792: Verify 4th party information in src/jdk.internal.le/share/legal/jline.md Reviewed-by: vromero ! src/jdk.internal.le/share/legal/jline.md Changeset: a1115a7a Author: Jan Lahoda Date: 2023-08-08 09:28:21 +0000 URL: https://git.openjdk.org/crac/commit/a1115a7a39438438ec247743718cdc1ec59823d6 8312204: unexpected else with statement causes compiler crash Reviewed-by: vromero ! src/jdk.compiler/share/classes/com/sun/tools/javac/parser/VirtualParser.java ! test/langtools/tools/javac/parser/JavacParserTest.java Changeset: 28fd7a17 Author: Stefan Karlsson Date: 2023-08-08 09:57:52 +0000 URL: https://git.openjdk.org/crac/commit/28fd7a1739fd3c50c43ebfe6017a835225a453c6 8311179: Generational ZGC: gc/z/TestSmallHeap.java failed with OutOfMemoryError Reviewed-by: ayang, aboldtch, tschatzl ! test/hotspot/jtreg/gc/z/TestSmallHeap.java Changeset: 7e209528 Author: Thomas Schatzl Date: 2023-08-08 10:29:14 +0000 URL: https://git.openjdk.org/crac/commit/7e209528d3690ff25f00efaa60bc10fadfb2c010 8140326: G1: Consider putting regions where evacuation failed into next collection set Co-authored-by: Albert Mingkun Yang Reviewed-by: iwalulya, ayang ! src/hotspot/share/gc/g1/g1CollectedHeap.cpp ! src/hotspot/share/gc/g1/g1CollectedHeap.hpp ! src/hotspot/share/gc/g1/g1CollectionSet.cpp ! src/hotspot/share/gc/g1/g1CollectionSetCandidates.cpp ! src/hotspot/share/gc/g1/g1CollectionSetCandidates.hpp ! src/hotspot/share/gc/g1/g1CollectionSetCandidates.inline.hpp ! src/hotspot/share/gc/g1/g1CollectionSetChooser.cpp ! src/hotspot/share/gc/g1/g1CollectionSetChooser.hpp ! src/hotspot/share/gc/g1/g1ConcurrentMark.cpp ! src/hotspot/share/gc/g1/g1ConcurrentMark.hpp ! src/hotspot/share/gc/g1/g1ConcurrentRebuildAndScrub.cpp ! src/hotspot/share/gc/g1/g1EvacFailureRegions.hpp ! src/hotspot/share/gc/g1/g1EvacFailureRegions.inline.hpp ! src/hotspot/share/gc/g1/g1GCPhaseTimes.cpp ! src/hotspot/share/gc/g1/g1GCPhaseTimes.hpp ! src/hotspot/share/gc/g1/g1HeapVerifier.cpp ! src/hotspot/share/gc/g1/g1HeapVerifier.hpp ! src/hotspot/share/gc/g1/g1ParScanThreadState.cpp ! src/hotspot/share/gc/g1/g1ParScanThreadState.hpp ! src/hotspot/share/gc/g1/g1ParScanThreadState.inline.hpp ! src/hotspot/share/gc/g1/g1Policy.cpp ! src/hotspot/share/gc/g1/g1Policy.hpp ! src/hotspot/share/gc/g1/g1RemSet.cpp ! src/hotspot/share/gc/g1/g1YoungCollector.cpp ! src/hotspot/share/gc/g1/g1YoungCollector.hpp ! src/hotspot/share/gc/g1/g1YoungGCEvacFailureInjector.cpp ! src/hotspot/share/gc/g1/g1YoungGCPostEvacuateTasks.cpp ! src/hotspot/share/gc/g1/g1YoungGCPostEvacuateTasks.hpp ! src/hotspot/share/gc/g1/g1_globals.hpp ! src/hotspot/share/gc/g1/heapRegion.cpp ! src/hotspot/share/gc/g1/heapRegion.hpp ! src/hotspot/share/gc/g1/heapRegion.inline.hpp ! src/hotspot/share/gc/g1/heapRegionRemSet.cpp ! src/hotspot/share/gc/g1/heapRegionRemSet.hpp ! test/hotspot/jtreg/gc/g1/TestGCLogMessages.java ! test/jdk/jdk/jfr/event/gc/collection/TestG1ParallelPhases.java Changeset: 091e65e9 Author: Markus Gr?nlund Date: 2023-08-08 11:01:59 +0000 URL: https://git.openjdk.org/crac/commit/091e65e95b42f7c425b1a39ee518230d4e8bb05c 8313552: Fix -Wconversion warnings in JFR code Reviewed-by: coleenp ! src/hotspot/share/jfr/instrumentation/jfrEventClassTransformer.cpp ! src/hotspot/share/jfr/leakprofiler/sampling/objectSample.hpp ! src/hotspot/share/jfr/leakprofiler/sampling/objectSampler.cpp ! src/hotspot/share/jfr/periodic/jfrPeriodic.cpp ! src/hotspot/share/jfr/periodic/jfrThreadCPULoadEvent.cpp ! src/hotspot/share/jfr/recorder/checkpoint/jfrCheckpointManager.cpp ! src/hotspot/share/jfr/recorder/checkpoint/types/jfrThreadGroup.cpp ! src/hotspot/share/jfr/recorder/checkpoint/types/traceid/jfrTraceIdBits.hpp ! src/hotspot/share/jfr/recorder/checkpoint/types/traceid/jfrTraceIdBits.inline.hpp ! src/hotspot/share/jfr/recorder/checkpoint/types/traceid/jfrTraceIdEpoch.hpp ! src/hotspot/share/jfr/recorder/checkpoint/types/traceid/jfrTraceIdKlassQueue.cpp ! src/hotspot/share/jfr/recorder/checkpoint/types/traceid/jfrTraceIdMacros.hpp ! src/hotspot/share/jfr/recorder/repository/jfrChunkWriter.cpp ! src/hotspot/share/jfr/recorder/service/jfrEventThrottler.cpp ! src/hotspot/share/jfr/recorder/stacktrace/jfrStackTrace.cpp ! src/hotspot/share/jfr/recorder/stacktrace/jfrStackTrace.hpp ! src/hotspot/share/jfr/recorder/stacktrace/jfrStackTraceRepository.cpp ! src/hotspot/share/jfr/recorder/stacktrace/jfrStackTraceRepository.hpp ! src/hotspot/share/jfr/support/jfrAdaptiveSampler.cpp ! src/hotspot/share/jfr/support/jfrAdaptiveSampler.hpp ! src/hotspot/share/jfr/support/jfrStackTraceMark.hpp ! src/hotspot/share/jfr/support/jfrThreadLocal.cpp ! src/hotspot/share/jfr/support/jfrThreadLocal.hpp ! src/hotspot/share/jfr/support/jfrTraceIdExtension.hpp ! src/hotspot/share/jfr/utilities/jfrBigEndian.hpp ! src/hotspot/share/jfr/writers/jfrEncoders.hpp ! src/hotspot/share/runtime/safepoint.cpp ! test/hotspot/gtest/jfr/test_adaptiveSampler.cpp Changeset: 41bdcded Author: Andrey Turbanov Date: 2023-08-08 11:38:15 +0000 URL: https://git.openjdk.org/crac/commit/41bdcded65eefd1b82a1f18dd49a61473d7072be 8313875: Use literals instead of static fields in java.util.Math: twoToTheDoubleScaleUp, twoToTheDoubleScaleDown Reviewed-by: redestad, darcy, bpb, rgiulietti ! src/java.base/share/classes/java/lang/Math.java Changeset: 8752d498 Author: Coleen Phillimore Date: 2023-08-08 11:51:42 +0000 URL: https://git.openjdk.org/crac/commit/8752d4984a762393ffbe53181e07ce254df2cd19 8313785: Fix -Wconversion warnings in prims code Reviewed-by: sspitsyn, dlong ! src/hotspot/share/prims/forte.cpp ! src/hotspot/share/prims/jni.cpp ! src/hotspot/share/prims/jvm.cpp ! src/hotspot/share/prims/jvmtiEnvBase.cpp ! src/hotspot/share/prims/methodHandles.cpp ! src/hotspot/share/prims/stackwalk.cpp ! src/hotspot/share/prims/stackwalk.hpp ! src/hotspot/share/prims/unsafe.cpp ! src/hotspot/share/prims/wbtestmethods/parserTests.cpp ! src/hotspot/share/prims/whitebox.cpp ! src/hotspot/share/runtime/jfieldIDWorkaround.hpp Changeset: 5c3041ce Author: Coleen Phillimore Date: 2023-08-08 12:12:57 +0000 URL: https://git.openjdk.org/crac/commit/5c3041ce838cbfcfb87ce29ff969f627e6f5ceae 8313435: Clean up unused default methods code Reviewed-by: kbarrett, iklam ! src/hotspot/share/classfile/bytecodeAssembler.cpp ! src/hotspot/share/classfile/bytecodeAssembler.hpp ! src/hotspot/share/classfile/defaultMethods.cpp Changeset: 509f80bb Author: Jorn Vernee Date: 2023-08-08 13:59:35 +0000 URL: https://git.openjdk.org/crac/commit/509f80bb047beb49fb8ecb62bffb0d0fd4fe75cb 8313889: Fix -Wconversion warnings in foreign benchmarks Reviewed-by: pminborg, mcimadamore ! test/micro/org/openjdk/bench/java/lang/foreign/libQSortJNI.c Changeset: 68644411 Author: Jim Laskey Date: 2023-08-08 19:33:44 +0000 URL: https://git.openjdk.org/crac/commit/6864441163f946d0bec7380a2a120e31b812a6dc 8313809: String template fails with java.lang.StringIndexOutOfBoundsException if last fragment is UTF16 Reviewed-by: redestad ! src/java.base/share/classes/java/lang/invoke/StringConcatFactory.java + test/jdk/java/lang/template/T8313809.java Changeset: 515add88 Author: Rajan Halade Date: 2023-08-08 20:21:16 +0000 URL: https://git.openjdk.org/crac/commit/515add88ed6c290ee90f3d6f522a22971e37a62c 8313206: PKCS11 tests silently skip execution Reviewed-by: ssahoo, mullan ! test/jdk/sun/security/pkcs11/KeyStore/Basic.java ! test/jdk/sun/security/pkcs11/KeyStore/CertChainRemoval.java ! test/jdk/sun/security/pkcs11/KeyStore/ClientAuth.java ! test/jdk/sun/security/pkcs11/KeyStore/SecretKeysBasic.java ! test/jdk/sun/security/pkcs11/PKCS11Test.java ! test/jdk/sun/security/pkcs11/Provider/ConfigQuotedString.java ! test/jdk/sun/security/pkcs11/Provider/Login.java ! test/jdk/sun/security/pkcs11/Provider/MultipleLogins.sh ! test/jdk/sun/security/pkcs11/SecmodTest.java ! test/jdk/sun/security/pkcs11/SecureRandom/Basic.java Changeset: 31a307f2 Author: Yi Yang Date: 2023-08-09 01:58:57 +0000 URL: https://git.openjdk.org/crac/commit/31a307f2fbe7b99435f50e5404c2a95f07b9a77b 8306441: Two phase segmented heap dump Co-authored-by: Kevin Walls Reviewed-by: amenkov, kevinw ! src/hotspot/share/logging/logTag.hpp ! src/hotspot/share/runtime/thread.hpp ! src/hotspot/share/runtime/vmOperation.hpp ! src/hotspot/share/runtime/vmStructs.cpp ! src/hotspot/share/services/attachListener.cpp ! src/hotspot/share/services/attachListener.hpp ! src/hotspot/share/services/diagnosticCommand.cpp ! src/hotspot/share/services/diagnosticCommand.hpp ! src/hotspot/share/services/heapDumper.cpp ! src/hotspot/share/services/heapDumper.hpp ! src/hotspot/share/services/heapDumperCompression.cpp ! src/hotspot/share/services/heapDumperCompression.hpp + src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/runtime/AttachListenerThread.java ! src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/runtime/Thread.java ! src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/runtime/Threads.java + test/hotspot/jtreg/serviceability/dcmd/gc/HeapDumpParallelTest.java Changeset: d3b578f1 Author: Tobias Hartmann Date: 2023-08-09 05:16:02 +0000 URL: https://git.openjdk.org/crac/commit/d3b578f1c9d296ce8f99c70069df886e9f2dbef9 8313345: SuperWord fails due to CMove without matching Bool pack Co-authored-by: Emanuel Peter Co-authored-by: Hannes Greule Reviewed-by: chagedorn, epeter, hgreule ! src/hotspot/share/opto/superword.cpp + test/hotspot/jtreg/compiler/vectorization/TestCMoveWithoutBoolPack.java Changeset: 735b16a6 Author: Stefan Karlsson Date: 2023-08-09 06:16:18 +0000 URL: https://git.openjdk.org/crac/commit/735b16a6969ba5998b4f809927e5ac42a7e72d2d 8313752: InstanceKlassFlags::print_on doesn't print the flag names Reviewed-by: stuefe, shade, coleenp ! src/hotspot/share/oops/constMethodFlags.cpp ! src/hotspot/share/oops/instanceKlassFlags.cpp ! src/hotspot/share/oops/methodFlags.cpp ! test/hotspot/jtreg/runtime/CommandLine/PrintClasses.java Changeset: 0a42c44b Author: Stefan Karlsson Date: 2023-08-09 06:16:39 +0000 URL: https://git.openjdk.org/crac/commit/0a42c44bf8dee12baeb72123b24b659ffdee6cf1 8313954: Add gc logging to vmTestbase/vm/gc/containers/Combination05 Reviewed-by: tschatzl, lmesnik ! test/hotspot/jtreg/vmTestbase/vm/gc/containers/Combination05/TestDescription.java Changeset: 3fb4805b Author: Leonid Mesnik Date: 2023-08-09 06:29:42 +0000 URL: https://git.openjdk.org/crac/commit/3fb4805b1ad6d66924fd961f62126a91d188abab 8307462: [REDO] VmObjectAlloc is not generated by intrinsics methods which allocate objects Reviewed-by: sspitsyn, thartmann ! src/hotspot/share/opto/library_call.cpp ! src/hotspot/share/prims/jvmtiEventController.cpp ! src/hotspot/share/prims/jvmtiExport.cpp ! src/hotspot/share/prims/jvmtiExport.hpp ! test/hotspot/jtreg/ProblemList-Xcomp.txt ! test/hotspot/jtreg/ProblemList.txt Changeset: 96304f37 Author: Matthias Baesken Date: 2023-08-09 06:54:15 +0000 URL: https://git.openjdk.org/crac/commit/96304f37f8344b0c0e271ff9cda84961519d5109 8313691: use close after failing os::fdopen in vmError and ciEnv Reviewed-by: dholmes, thartmann ! src/hotspot/share/ci/ciEnv.cpp ! src/hotspot/share/utilities/vmError.cpp Changeset: 77e5739f Author: Hannes Walln?fer Date: 2023-08-09 07:01:15 +0000 URL: https://git.openjdk.org/crac/commit/77e5739f60d5a3d62642be55462e90d66c374bf3 8310118: Resource files should be moved to appropriate directories Reviewed-by: jjg ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/HtmlDoclet.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/HtmlDocletWriter.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/IndexRedirectWriter.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/SearchWriter.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/SourceToHTMLConverter.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/markup/Head.java = src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/resources/copy.svg = src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/resources/external-link.svg = src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/resources/jquery/jquery-3.6.1.js = src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/resources/jquery/jquery-3.6.1.min.js = src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/resources/jquery/jquery-ui.css = src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/resources/jquery/jquery-ui.js = src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/resources/jquery/jquery-ui.min.css = src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/resources/jquery/jquery-ui.min.js = src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/resources/link.svg - src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/resources/script-dir/images/ui-bg_glass_55_fbf9ee_1x400.png - src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/resources/script-dir/images/ui-bg_glass_65_dadada_1x400.png - src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/resources/script-dir/images/ui-bg_glass_75_dadada_1x400.png - src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/resources/script-dir/images/ui-bg_glass_75_e6e6e6_1x400.png - src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/resources/script-dir/images/ui-bg_glass_95_fef1ec_1x400.png - src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/resources/script-dir/images/ui-bg_highlight-soft_75_cccccc_1x100.png - src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/resources/script-dir/images/ui-icons_222222_256x240.png - src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/resources/script-dir/images/ui-icons_2e83ff_256x240.png - src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/resources/script-dir/images/ui-icons_454545_256x240.png - src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/resources/script-dir/images/ui-icons_888888_256x240.png - src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/resources/script-dir/images/ui-icons_cd0a0a_256x240.png = src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/resources/script.js ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/resources/search.js.template = src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/resources/stylesheet.css ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/taglets/SnippetTaglet.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/util/DocFile.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/util/DocPaths.java ! test/langtools/jdk/javadoc/doclet/AccessH1/AccessH1.java ! test/langtools/jdk/javadoc/doclet/checkLibraryVersions/CheckLibraryVersions.java ! test/langtools/jdk/javadoc/doclet/checkStylesheetClasses/CheckStylesheetClasses.java ! test/langtools/jdk/javadoc/doclet/testDocEncoding/TestDocEncoding.java ! test/langtools/jdk/javadoc/doclet/testJavascript/TestJavascript.java ! test/langtools/jdk/javadoc/doclet/testOptions/TestOptions.java ! test/langtools/jdk/javadoc/doclet/testSearch/TestSearch.java ! test/langtools/jdk/javadoc/doclet/testSnippetTag/SnippetTester.java ! test/langtools/jdk/javadoc/doclet/testStylesheet/TestStylesheet.java ! test/langtools/jdk/javadoc/doclet/testStylesheetOverwrite/TestStylesheetOverwrite.java ! test/langtools/jdk/javadoc/doclet/testTerminology/TestTerminology.java ! test/langtools/jdk/javadoc/tool/api/basic/APITest.java Changeset: 6e3cc131 Author: Matthias Baesken Date: 2023-08-09 07:08:52 +0000 URL: https://git.openjdk.org/crac/commit/6e3cc131daa9f3b883164333bdaad7aa3a6ca018 8312467: relax the builddir check in make/autoconf/basic.m4 Reviewed-by: clanger, erikj ! make/autoconf/basic.m4 Changeset: 9cf12bb9 Author: Albert Mingkun Yang Date: 2023-08-09 09:13:34 +0000 URL: https://git.openjdk.org/crac/commit/9cf12bb977df44b81854ba16cd869c38b8d44450 8313922: Remove unused WorkerPolicy::_debug_perturbation Reviewed-by: tschatzl ! src/hotspot/share/gc/shared/workerPolicy.hpp Changeset: 52ec4bcb Author: Hannes Walln?fer Date: 2023-08-09 09:50:21 +0000 URL: https://git.openjdk.org/crac/commit/52ec4bcb1bab15dbf0a9b2488d33a23cdc1cb0e1 8303056: Improve support for Unicode characters and digits in JavaDoc search Reviewed-by: jjg ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/resources/search.js.template ! test/langtools/jdk/javadoc/doclet/testSearchScript/TestSearchScript.java ! test/langtools/jdk/javadoc/doclet/testSearchScript/listpkg/List.java ! test/langtools/jdk/javadoc/doclet/testSearchScript/listpkg/ListProvider.java ! test/langtools/jdk/javadoc/doclet/testSearchScript/listpkg/MyList.java Changeset: 0e2c72d7 Author: Richard Startin Committer: Thomas Stuefe Date: 2023-08-09 11:23:32 +0000 URL: https://git.openjdk.org/crac/commit/0e2c72d7a5206b7173af5bf69e21d21ea276bd94 8313796: AsyncGetCallTrace crash on unreadable interpreter method pointer Reviewed-by: coleenp, aph, stuefe ! src/hotspot/cpu/aarch64/frame_aarch64.cpp ! src/hotspot/cpu/arm/frame_arm.cpp ! src/hotspot/cpu/ppc/frame_ppc.cpp ! src/hotspot/cpu/riscv/frame_riscv.cpp ! src/hotspot/cpu/x86/frame_x86.cpp ! src/hotspot/share/runtime/frame.cpp ! src/hotspot/share/runtime/frame.hpp Changeset: 213d3c44 Author: Erik Gahlin Date: 2023-08-09 11:46:25 +0000 URL: https://git.openjdk.org/crac/commit/213d3c449ae89b71c222b889443e77ad912791df 8313891: JFR: Incorrect exception message for RecordedObject::getInt Reviewed-by: mgronlun ! src/jdk.jfr/share/classes/jdk/jfr/consumer/RecordedObject.java Changeset: e9f751ab Author: Daniel Jeli?ski Date: 2023-08-09 12:26:32 +0000 URL: https://git.openjdk.org/crac/commit/e9f751ab161ae3663e13108a47fdf722fcb84d67 8311247: Some cpp files are compiled with -std:c11 flag Reviewed-by: aivanov, jwaters, prr, erikj ! make/modules/java.desktop/lib/Awt2dLibraries.gmk ! make/modules/java.security.jgss/Lib.gmk ! make/modules/jdk.accessibility/Launcher.gmk ! make/modules/jdk.accessibility/Lib.gmk ! make/modules/jdk.crypto.mscapi/Lib.gmk Changeset: 19ae62ae Author: Pavel Rappo Date: 2023-08-09 12:34:40 +0000 URL: https://git.openjdk.org/crac/commit/19ae62ae2cd2bbb436924b296151021864a3fcd9 8311170: Simplify and modernize equals and hashCode in security area Reviewed-by: djelinski, rriggs, valeriep ! src/java.base/share/classes/com/sun/crypto/provider/DESKey.java ! src/java.base/share/classes/com/sun/crypto/provider/DESedeKey.java ! src/java.base/share/classes/com/sun/crypto/provider/DHPrivateKey.java ! src/java.base/share/classes/com/sun/crypto/provider/DHPublicKey.java ! src/java.base/share/classes/com/sun/crypto/provider/PBEKey.java ! src/java.base/share/classes/com/sun/crypto/provider/PBKDF2KeyImpl.java ! src/java.base/share/classes/java/security/AccessControlContext.java ! src/java.base/share/classes/java/security/AllPermission.java ! src/java.base/share/classes/java/security/BasicPermission.java ! src/java.base/share/classes/java/security/CodeSigner.java ! src/java.base/share/classes/java/security/CodeSource.java ! src/java.base/share/classes/java/security/Identity.java ! src/java.base/share/classes/java/security/PKCS12Attribute.java ! src/java.base/share/classes/java/security/Permission.java ! src/java.base/share/classes/java/security/Principal.java ! src/java.base/share/classes/java/security/SecureClassLoader.java ! src/java.base/share/classes/java/security/UnresolvedPermission.java ! src/java.base/share/classes/java/security/cert/CertPath.java ! src/java.base/share/classes/java/security/cert/Certificate.java ! src/java.base/share/classes/java/security/cert/URICertStoreParameters.java ! src/java.base/share/classes/java/security/cert/X509CRL.java ! src/java.base/share/classes/java/security/cert/X509CRLEntry.java ! src/java.base/share/classes/java/security/spec/ECFieldF2m.java ! src/java.base/share/classes/java/security/spec/ECFieldFp.java ! src/java.base/share/classes/java/security/spec/ECPoint.java ! src/java.base/share/classes/javax/crypto/CryptoAllPermission.java ! src/java.base/share/classes/javax/crypto/CryptoPermission.java ! src/java.base/share/classes/javax/crypto/CryptoPolicyParser.java ! src/java.base/share/classes/javax/crypto/spec/RC2ParameterSpec.java ! src/java.base/share/classes/javax/crypto/spec/RC5ParameterSpec.java ! src/java.base/share/classes/javax/crypto/spec/SecretKeySpec.java ! src/java.base/share/classes/javax/security/auth/PrivateCredentialPermission.java ! src/java.base/share/classes/javax/security/auth/Subject.java ! src/java.base/share/classes/javax/security/auth/x500/X500Principal.java ! src/java.base/share/classes/javax/security/cert/Certificate.java ! src/java.base/share/classes/sun/security/jca/ProviderConfig.java ! src/java.base/share/classes/sun/security/pkcs/EncryptedPrivateKeyInfo.java ! src/java.base/share/classes/sun/security/pkcs/PKCS8Key.java ! src/java.base/share/classes/sun/security/pkcs10/PKCS10.java ! src/java.base/share/classes/sun/security/pkcs10/PKCS10Attributes.java ! src/java.base/share/classes/sun/security/provider/PolicyFile.java ! src/java.base/share/classes/sun/security/provider/PolicyParser.java ! src/java.base/share/classes/sun/security/provider/certpath/CertId.java ! src/java.base/share/classes/sun/security/provider/certpath/ResponderId.java ! src/java.base/share/classes/sun/security/ssl/SSLSessionImpl.java ! src/java.base/share/classes/sun/security/tools/keytool/Main.java ! src/java.base/share/classes/sun/security/util/BitArray.java ! src/java.base/share/classes/sun/security/util/DerValue.java ! src/java.base/share/classes/sun/security/x509/AVA.java ! src/java.base/share/classes/sun/security/x509/AlgorithmId.java ! src/java.base/share/classes/sun/security/x509/CRLExtensions.java ! src/java.base/share/classes/sun/security/x509/CertificateExtensions.java ! src/java.base/share/classes/sun/security/x509/CertificatePolicyId.java ! src/java.base/share/classes/sun/security/x509/DNSName.java ! src/java.base/share/classes/sun/security/x509/DistributionPoint.java ! src/java.base/share/classes/sun/security/x509/DistributionPointName.java ! src/java.base/share/classes/sun/security/x509/EDIPartyName.java ! src/java.base/share/classes/sun/security/x509/Extension.java ! src/java.base/share/classes/sun/security/x509/GeneralName.java ! src/java.base/share/classes/sun/security/x509/GeneralSubtree.java ! src/java.base/share/classes/sun/security/x509/IPAddressName.java ! src/java.base/share/classes/sun/security/x509/KeyIdentifier.java ! src/java.base/share/classes/sun/security/x509/OIDName.java ! src/java.base/share/classes/sun/security/x509/OtherName.java ! src/java.base/share/classes/sun/security/x509/PolicyInformation.java ! src/java.base/share/classes/sun/security/x509/RFC822Name.java ! src/java.base/share/classes/sun/security/x509/URIName.java ! src/java.base/share/classes/sun/security/x509/X500Name.java ! src/java.base/share/classes/sun/security/x509/X509CRLImpl.java ! src/java.base/share/classes/sun/security/x509/X509CertInfo.java ! src/java.base/share/classes/sun/security/x509/X509Key.java ! src/java.security.jgss/share/classes/javax/security/auth/kerberos/DelegationPermission.java ! src/java.security.jgss/share/classes/javax/security/auth/kerberos/EncryptionKey.java ! src/java.security.jgss/share/classes/javax/security/auth/kerberos/KerberosCredMessage.java ! src/java.security.jgss/share/classes/javax/security/auth/kerberos/KerberosKey.java ! src/java.security.jgss/share/classes/javax/security/auth/kerberos/KerberosPrincipal.java ! src/java.security.jgss/share/classes/javax/security/auth/kerberos/KerberosTicket.java ! src/java.security.jgss/share/classes/javax/security/auth/kerberos/KeyTab.java ! src/java.security.jgss/share/classes/javax/security/auth/kerberos/ServicePermission.java ! src/java.security.jgss/share/classes/org/ietf/jgss/ChannelBinding.java ! src/java.security.jgss/share/classes/org/ietf/jgss/GSSCredential.java ! src/java.security.jgss/share/classes/org/ietf/jgss/GSSName.java ! src/java.security.jgss/share/classes/org/ietf/jgss/Oid.java ! src/java.security.jgss/share/classes/sun/security/jgss/GSSCredentialImpl.java ! src/java.security.jgss/share/classes/sun/security/jgss/GSSNameImpl.java ! src/java.security.jgss/share/classes/sun/security/jgss/ProviderList.java ! src/java.security.jgss/share/classes/sun/security/jgss/krb5/Krb5NameElement.java ! src/java.security.jgss/share/classes/sun/security/jgss/spi/GSSNameSpi.java ! src/java.security.jgss/share/classes/sun/security/krb5/KrbException.java ! src/java.security.jgss/share/classes/sun/security/krb5/PrincipalName.java ! src/java.security.jgss/share/classes/sun/security/krb5/Realm.java ! src/java.security.jgss/share/classes/sun/security/krb5/internal/HostAddress.java ! src/java.security.jgss/share/classes/sun/security/krb5/internal/HostAddresses.java ! src/java.security.jgss/share/classes/sun/security/krb5/internal/KRBError.java ! src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/P11Key.java ! test/jdk/jdk/security/logging/TestX509ValidationLog.java Changeset: 0eb0997a Author: Markus Gr?nlund Date: 2023-08-09 13:34:04 +0000 URL: https://git.openjdk.org/crac/commit/0eb0997ae4f81314b764241e69dae5c698dbb6c6 8288936: Wrong lock ordering writing G1HeapRegionTypeChange JFR event Reviewed-by: egahlin ! src/hotspot/share/runtime/mutexLocker.cpp Changeset: 360f65d7 Author: Christian Stein Date: 2023-08-09 14:00:21 +0000 URL: https://git.openjdk.org/crac/commit/360f65d7b15b327e2f160c42f318945cc6548bda 8314022: Problem-list tests failing with jtreg 7.3 Reviewed-by: dholmes ! test/jdk/ProblemList.txt Changeset: 593ba2fe Author: Pavel Rappo Date: 2023-08-09 16:08:23 +0000 URL: https://git.openjdk.org/crac/commit/593ba2fe47ce6bd341ee6e1329aa02d4b472fb60 8313693: Introduce an internal utility for the Damerau?Levenshtein distance calculation Reviewed-by: jlahoda, jjg ! src/jdk.compiler/share/classes/com/sun/tools/javac/util/StringUtils.java ! test/langtools/tools/javac/util/StringUtilsTest.java Changeset: c307391a Author: Joe Darcy Date: 2023-08-09 21:17:10 +0000 URL: https://git.openjdk.org/crac/commit/c307391ab1f071b1473cd5f4c12437b8d5e0ca93 8307184: Incorrect/inconsistent specification and implementation for Elements.getDocComment Reviewed-by: vromero, jjg ! src/java.compiler/share/classes/javax/lang/model/util/Elements.java + test/langtools/tools/javac/processing/model/util/elements/TestGetDocComments.java Changeset: cd16158e Author: Alexandre Iline Date: 2023-08-10 00:43:28 +0000 URL: https://git.openjdk.org/crac/commit/cd16158edb254af82f29cd1705c90a710b171403 8314075: Update JCov version for JDK 22 Reviewed-by: serb ! make/conf/jib-profiles.js Changeset: c822183e Author: Sergey Tsypanov Committer: Jaikiran Pai Date: 2023-08-10 05:50:19 +0000 URL: https://git.openjdk.org/crac/commit/c822183e98aa26f005338464f3946dcbf34802aa 8313768: Reduce interaction with volatile field in j.u.l.StreamHandler Reviewed-by: dfuchs, jpai ! src/java.logging/share/classes/java/util/logging/StreamHandler.java Changeset: 242a2e63 Author: Axel Boldt-Christmas Date: 2023-08-10 07:16:36 +0000 URL: https://git.openjdk.org/crac/commit/242a2e63df0d4995bdc9aba00510fada19fd2e23 8308843: Generational ZGC: Remove gc/z/TestHighUsage.java Reviewed-by: ayang, tschatzl - test/hotspot/jtreg/gc/z/TestHighUsage.java Changeset: bdb38a6b Author: Anton Kozlov Date: 2023-08-12 13:48:06 +0000 URL: https://git.openjdk.org/crac/commit/bdb38a6bd5fd2335bbf4db031bc491175be77c7b Merge tag 'jdk-22+10' into crac Added tag jdk-22+10 for changeset 242a2e63 ! make/conf/github-actions.conf ! src/hotspot/cpu/x86/vm_version_x86.cpp ! src/hotspot/os/linux/os_linux.cpp ! src/hotspot/os/linux/os_linux.hpp ! src/hotspot/os/windows/os_windows.cpp ! src/hotspot/share/gc/g1/g1CollectedHeap.cpp ! src/hotspot/share/gc/serial/defNewGeneration.cpp ! src/hotspot/share/prims/jvm.cpp ! src/hotspot/share/runtime/arguments.cpp ! src/hotspot/share/runtime/globals.hpp ! src/hotspot/share/runtime/threads.cpp ! src/hotspot/share/runtime/vmOperation.hpp ! src/hotspot/share/runtime/vmStructs.cpp ! src/hotspot/share/services/diagnosticCommand.cpp ! src/hotspot/share/services/diagnosticCommand.hpp ! src/hotspot/share/services/management.cpp ! src/java.base/share/classes/jdk/internal/access/JavaLangRefAccess.java ! make/conf/github-actions.conf ! src/hotspot/cpu/x86/vm_version_x86.cpp ! src/hotspot/os/linux/os_linux.cpp ! src/hotspot/os/linux/os_linux.hpp ! src/hotspot/os/windows/os_windows.cpp ! src/hotspot/share/gc/g1/g1CollectedHeap.cpp ! src/hotspot/share/gc/serial/defNewGeneration.cpp ! src/hotspot/share/prims/jvm.cpp ! src/hotspot/share/runtime/arguments.cpp ! src/hotspot/share/runtime/globals.hpp ! src/hotspot/share/runtime/threads.cpp ! src/hotspot/share/runtime/vmOperation.hpp ! src/hotspot/share/runtime/vmStructs.cpp ! src/hotspot/share/services/diagnosticCommand.cpp ! src/hotspot/share/services/diagnosticCommand.hpp ! src/hotspot/share/services/management.cpp ! src/java.base/share/classes/jdk/internal/access/JavaLangRefAccess.java From jkratochvil at openjdk.org Sat Aug 12 11:04:06 2023 From: jkratochvil at openjdk.org (Jan Kratochvil) Date: Sat, 12 Aug 2023 11:04:06 GMT Subject: [crac] Integrated: Fix missing include file. In-Reply-To: References: Message-ID: On Fri, 11 Aug 2023 07:34:40 GMT, Jan Kratochvil wrote: > It is probably because I am using `--disable-precompiled-headers `. > > src/hotspot/share/runtime/threads.cpp: In static member function 'static jint Threads::check_for_restore(JavaVMInitArgs*)': src/hotspot/share/runtime/threads.cpp:415:5: error: 'crac' has not been declared > 415 | crac::restore(); > | ^~~~ > src/hotspot/share/runtime/threads.cpp: In static member function 'static jint Threads::create_vm(JavaVMInitArgs*, bool*)': > src/hotspot/share/runtime/threads.cpp:494:3: error: 'crac' has not been declared > 494 | crac::vm_create_start(); > | ^~~~ This pull request has now been integrated. Changeset: 6b5ea026 Author: Jan Kratochvil Committer: Anton Kozlov URL: https://git.openjdk.org/crac/commit/6b5ea026ee26e9645f9d2a19ccd4afe8d0ac4b89 Stats: 1 line in 1 file changed: 1 ins; 0 del; 0 mod Fix missing include file. Reviewed-by: akozlov ------------- PR: https://git.openjdk.org/crac/pull/102 From akozlov at openjdk.org Sat Aug 12 12:08:28 2023 From: akozlov at openjdk.org (Anton Kozlov) Date: Sat, 12 Aug 2023 12:08:28 GMT Subject: [crac] RFR: Fix builds Message-ID: <5WYCgmBgakVYzppfrwUd5NpXLiy0Hyo_ktD5A427Lkg=.20830890-d262-4c43-8eac-296d0294646d@github.com> Fix builds in vairous configurations ------------- Commit messages: - Fix s390 build - Fix riscv build - Fix zero and cross builds - Fix minimal build - Fix linux-x86 Changes: https://git.openjdk.org/crac/pull/104/files Webrev: https://webrevs.openjdk.org/?repo=crac&pr=104&range=00 Stats: 38 lines in 10 files changed: 28 ins; 3 del; 7 mod Patch: https://git.openjdk.org/crac/pull/104.diff Fetch: git fetch https://git.openjdk.org/crac.git pull/104/head:pull/104 PR: https://git.openjdk.org/crac/pull/104 From jkratochvil at openjdk.org Sun Aug 13 12:41:58 2023 From: jkratochvil at openjdk.org (Jan Kratochvil) Date: Sun, 13 Aug 2023 12:41:58 GMT Subject: [crac] RFR: Fix builds In-Reply-To: <5WYCgmBgakVYzppfrwUd5NpXLiy0Hyo_ktD5A427Lkg=.20830890-d262-4c43-8eac-296d0294646d@github.com> References: <5WYCgmBgakVYzppfrwUd5NpXLiy0Hyo_ktD5A427Lkg=.20830890-d262-4c43-8eac-296d0294646d@github.com> Message-ID: On Sat, 12 Aug 2023 11:48:03 GMT, Anton Kozlov wrote: > Fix builds in vairous configurations src/hotspot/cpu/s390/vm_version_s390.hpp line 571: > 569: > 570: // No _features_names[] available on this CPU. > 571: static void insert_features_names(char* buf, size_t buflen, unsigned long features[] = _features) {} I do not see a reason for this change. How to test the s390 build? ------------- PR Review Comment: https://git.openjdk.org/crac/pull/104#discussion_r1292776247 From jkratochvil at openjdk.org Sun Aug 13 13:09:29 2023 From: jkratochvil at openjdk.org (Jan Kratochvil) Date: Sun, 13 Aug 2023 13:09:29 GMT Subject: [crac] RFR: Fix JVMCI after #41 In-Reply-To: <-WR30gYJtf2g3rcDrRjciI5hog0ZXrxWK2PYz1OuSyY=.5478c7a5-c20d-4742-a33a-d86fe620d976@github.com> References: <-WR30gYJtf2g3rcDrRjciI5hog0ZXrxWK2PYz1OuSyY=.5478c7a5-c20d-4742-a33a-d86fe620d976@github.com> Message-ID: <3ZNYSq9_hh_BRcE8Qo3_unuFgj2c6ajBnMCXkpRKZU8=.87c81d7f-8637-4467-b898-03174fa249ba@github.com> On Wed, 28 Jun 2023 12:13:16 GMT, Anton Kozlov wrote: > The recently added CPU_MAX feature went out of sync with JVMCI code [1]. Since this is not a real feature, but auxilary value, a distinct name for the maximum value solves the issue. > > [1] jtreg_test_hotspot_jtreg_tier1_compiler/compiler/jvmci/JVM_GetJVMCIRuntimeTest.jtr: > > jdk.vm.ci.common.JVMCIError: Missing CPU feature constants: [MAX] > at jdk.internal.vm.ci/jdk.vm.ci.hotspot.HotSpotJVMCIBackendFactory.convertFeatures(HotSpotJVMCIBackendFactory.java:79) > at jdk.internal.vm.ci/jdk.vm.ci.hotspot.amd64.AMD64HotSpotJVMCIBackendFactory.computeFeatures(AMD64HotSpotJVMCIBackendFactory.java:53) > at jdk.internal.vm.ci/jdk.vm.ci.hotspot.amd64.AMD64HotSpotJVMCIBackendFactory.createTarget(AMD64HotSpotJVMCIBackendFactory.java:74) > at jdk.internal.vm.ci/jdk.vm.ci.hotspot.amd64.AMD64HotSpotJVMCIBackendFactory.createJVMCIBackend(AMD64HotSpotJVMCIBackendFactory.java:109) > at jdk.internal.vm.ci/jdk.vm.ci.hotspot.HotSpotJVMCIRuntime.(HotSpotJVMCIRuntime.java:549) > at jdk.internal.vm.ci/jdk.vm.ci.hotspot.HotSpotJVMCIRuntime.runtime(HotSpotJVMCIRuntime.java:176) > at jdk.internal.vm.ci/jdk.vm.ci.runtime.JVMCI.initializeRuntime(Native Method) > at jdk.internal.vm.ci/jdk.vm.ci.runtime.JVMCI.getRuntime(JVMCI.java:65) > at compiler.jvmci.JVM_GetJVMCIRuntimeTest.run(JVM_GetJVMCIRuntimeTest.java:77) > at compiler.jvmci.JVM_GetJVMCIRuntimeTest.main(JVM_GetJVMCIRuntimeTest.java:70) > at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) > at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > at java.base/java.lang.reflect.Method.invoke(Method.java:568) > at com.sun.javatest.regtest.agent.MainWrapper$MainThread.run(MainWrapper.java:127) > at java.base/java.lang.Thread.run(Thread.java:833) This change introduced a regeression as the `MAX` elements were intended as `== last+1` and not `== last`. But then I agree the name `MAX` was unfortunate as that suggests more the `== last` semantics. It is fixed by #105. ------------- PR Comment: https://git.openjdk.org/crac/pull/88#issuecomment-1676350689 From jkratochvil at openjdk.org Sun Aug 13 13:15:58 2023 From: jkratochvil at openjdk.org (Jan Kratochvil) Date: Sun, 13 Aug 2023 13:15:58 GMT Subject: [crac] RFR: Synchronize CPUFeatures with JDK trunk Message-ID: It also fixes an off-by-one regression from #88. ------------- Commit messages: - Synchronize CPUFeatures with JDK trunk Changes: https://git.openjdk.org/crac/pull/105/files Webrev: https://webrevs.openjdk.org/?repo=crac&pr=105&range=00 Stats: 17 lines in 2 files changed: 12 ins; 0 del; 5 mod Patch: https://git.openjdk.org/crac/pull/105.diff Fetch: git fetch https://git.openjdk.org/crac.git pull/105/head:pull/105 PR: https://git.openjdk.org/crac/pull/105 From jkratochvil at openjdk.org Sun Aug 13 13:47:28 2023 From: jkratochvil at openjdk.org (Jan Kratochvil) Date: Sun, 13 Aug 2023 13:47:28 GMT Subject: [crac] RFR: Synchronize CPUFeatures with JDK trunk [v2] In-Reply-To: References: Message-ID: > Synchronize CPUFeatures with JDK trunk Jan Kratochvil has updated the pull request incrementally with one additional commit since the last revision: Fix my off-by-one mistake. ------------- Changes: - all: https://git.openjdk.org/crac/pull/105/files - new: https://git.openjdk.org/crac/pull/105/files/6857077a..1cd1bc33 Webrevs: - full: https://webrevs.openjdk.org/?repo=crac&pr=105&range=01 - incr: https://webrevs.openjdk.org/?repo=crac&pr=105&range=00-01 Stats: 4 lines in 1 file changed: 0 ins; 0 del; 4 mod Patch: https://git.openjdk.org/crac/pull/105.diff Fetch: git fetch https://git.openjdk.org/crac.git pull/105/head:pull/105 PR: https://git.openjdk.org/crac/pull/105 From rmarchenko at openjdk.org Mon Aug 14 07:25:58 2023 From: rmarchenko at openjdk.org (Roman Marchenko) Date: Mon, 14 Aug 2023 07:25:58 GMT Subject: [crac] RFR: Adapted some FileDescriptor tests for Win [v7] In-Reply-To: References: Message-ID: > Made changes regarding FileDescriptor for Win platform, adapted some tests. Roman Marchenko has updated the pull request with a new target base due to a merge or a rebase. The pull request now contains 12 commits: - Merge branch 'openjdk:crac' into win_fd - Fixing review comments - Moving macro outside func to make it clearer - Fixing review comments - Fixing a typo - Fixing review comments - Fixed nativeDescription0 for Win - Changes to nativeDescription (win) - Adapted JarFileFactory - Merge branch 'crac' into win_fd - ... and 2 more: https://git.openjdk.org/crac/compare/6b5ea026...004915b4 ------------- Changes: https://git.openjdk.org/crac/pull/91/files Webrev: https://webrevs.openjdk.org/?repo=crac&pr=91&range=06 Stats: 65 lines in 5 files changed: 51 ins; 3 del; 11 mod Patch: https://git.openjdk.org/crac/pull/91.diff Fetch: git fetch https://git.openjdk.org/crac.git pull/91/head:pull/91 PR: https://git.openjdk.org/crac/pull/91 From jkratochvil at openjdk.org Mon Aug 14 09:38:58 2023 From: jkratochvil at openjdk.org (Jan Kratochvil) Date: Mon, 14 Aug 2023 09:38:58 GMT Subject: [crac] RFR: Support -XX:+IgnoreCPUFeatures during -XX:CRaCRestoreFrom [v3] In-Reply-To: References: Message-ID: > Support -XX:+IgnoreCPUFeatures during -XX:CRaCRestoreFrom Jan Kratochvil has updated the pull request with a new target base due to a merge or a rebase. The pull request now contains five commits: - Implement -XX:+IgnoreCPUFeatures - Merge branch 'crac' into crac-restoreignore - Split off crac_restore_finalize() from crac_restore(). - Document -XX:CPUFeatures=ignore, reject !ignore during -XX:CRaCRestoreFrom - Support -XX:CPUFeatures=ignore during -XX:CRaCRestoreFrom ------------- Changes: https://git.openjdk.org/crac/pull/100/files Webrev: https://webrevs.openjdk.org/?repo=crac&pr=100&range=02 Stats: 46 lines in 11 files changed: 32 ins; 0 del; 14 mod Patch: https://git.openjdk.org/crac/pull/100.diff Fetch: git fetch https://git.openjdk.org/crac.git pull/100/head:pull/100 PR: https://git.openjdk.org/crac/pull/100 From jkratochvil at openjdk.org Mon Aug 14 09:40:28 2023 From: jkratochvil at openjdk.org (Jan Kratochvil) Date: Mon, 14 Aug 2023 09:40:28 GMT Subject: [crac] RFR: Support -XX:+IgnoreCPUFeatures during -XX:CRaCRestoreFrom [v3] In-Reply-To: References: Message-ID: On Wed, 9 Aug 2023 20:00:15 GMT, Anton Kozlov wrote: >> src/hotspot/cpu/x86/globals_x86.hpp line 229: >> >>> 227: "get an error during -XX:CRaCRestoreFrom on a different machine; " \ >>> 228: "-XX:CPUFeatures=native is the default; " \ >>> 229: "-XX:CPUFeatures=ignore will disable the CPU features check; " \ >> >> What happens when you set `CPUFeatures=ignore` on checkpoint? > > That should make to use the current CPU features, the option was supported, apparently just not documented. There is now `-XX:+IgnoreCPUFeatures` instead. >> src/hotspot/cpu/x86/vm_version_x86.cpp line 2569: >> >>> 2567: tty->print_raw(part2, sizeof(part2) - 1); >>> 2568: tty->cr(); >>> 2569: vm_exit_during_initialization(); >> >> Will this work when you set `CPUFeatures=generic` before checkpoint and don't set anything during restore? The option will keep its value and this might trigger the error. >> If you don't want to add some extra tests you might piggyback in `VMOptionsTest`. > > Agree. And we are unable to handle e.g. `generic` specified for restore, although it's documented. > > Having dedicated IgnoreCPUFeatures would simplify the implementation a lot, and we'd also could make it Experimental, as it should be. There are currently no tests. Implemented the `-XX:+IgnoreCPUFeatures` option. ------------- PR Review Comment: https://git.openjdk.org/crac/pull/100#discussion_r1293218428 PR Review Comment: https://git.openjdk.org/crac/pull/100#discussion_r1293219378 From jkratochvil at openjdk.org Mon Aug 14 09:41:28 2023 From: jkratochvil at openjdk.org (Jan Kratochvil) Date: Mon, 14 Aug 2023 09:41:28 GMT Subject: [crac] RFR: Support -XX:+IgnoreCPUFeatures during -XX:CRaCRestoreFrom [v3] In-Reply-To: References: Message-ID: <_c6rxua7drYSWoYBX5I-gFwkeQv1BVgxv6Y367xP5xY=.b877c8bd-99e6-4f4b-80f8-9c27ac320c2e@github.com> On Wed, 9 Aug 2023 20:00:27 GMT, Anton Kozlov wrote: >> Jan Kratochvil has updated the pull request with a new target base due to a merge or a rebase. The pull request now contains five commits: >> >> - Implement -XX:+IgnoreCPUFeatures >> - Merge branch 'crac' into crac-restoreignore >> - Split off crac_restore_finalize() from crac_restore(). >> - Document -XX:CPUFeatures=ignore, reject !ignore during -XX:CRaCRestoreFrom >> - Support -XX:CPUFeatures=ignore during -XX:CRaCRestoreFrom > > src/hotspot/cpu/x86/vm_version_x86.cpp line 1219: > >> 1217: } >> 1218: return !*a && !*b; >> 1219: } > > Compiler can inline a call to strcmp if it recognizes the pattern, so this is not really safe. And since we are calling the argument check after VM_Crac::read_shm, it's a bit late to worry about libc... It may be just fine to leave the one who are give up the safety with possible crashes. That was a gross mistake in this patch, I have fixed it so that it no longer crashes. That was the whole effort of the original patch so that it does not crash without any error if it is being restored on under-featured CPU. ------------- PR Review Comment: https://git.openjdk.org/crac/pull/100#discussion_r1293217434 From akozlov at openjdk.org Mon Aug 14 13:05:59 2023 From: akozlov at openjdk.org (Anton Kozlov) Date: Mon, 14 Aug 2023 13:05:59 GMT Subject: [crac] RFR: Fix builds In-Reply-To: References: <5WYCgmBgakVYzppfrwUd5NpXLiy0Hyo_ktD5A427Lkg=.20830890-d262-4c43-8eac-296d0294646d@github.com> Message-ID: On Sun, 13 Aug 2023 12:22:04 GMT, Jan Kratochvil wrote: >> Fix builds in vairous configurations > > src/hotspot/cpu/s390/vm_version_s390.hpp line 571: > >> 569: >> 570: // No _features_names[] available on this CPU. >> 571: static void insert_features_names(char* buf, size_t buflen, unsigned long features[] = _features) {} > > I do not see a reason for this change. How to test the s390 build? >From the line 123 from this file -- _features is static unsigned long _features[_features_buffer_len]; The build is tested in GHA https://github.com/AntonKozlov/crac/actions/runs/5841005695/job/15841780175 ------------- PR Review Comment: https://git.openjdk.org/crac/pull/104#discussion_r1293408702 From akozlov at openjdk.org Mon Aug 14 13:06:01 2023 From: akozlov at openjdk.org (Anton Kozlov) Date: Mon, 14 Aug 2023 13:06:01 GMT Subject: [crac] RFR: Fix builds In-Reply-To: References: <5WYCgmBgakVYzppfrwUd5NpXLiy0Hyo_ktD5A427Lkg=.20830890-d262-4c43-8eac-296d0294646d@github.com> Message-ID: On Mon, 14 Aug 2023 12:42:12 GMT, Anton Kozlov wrote: >> src/hotspot/cpu/s390/vm_version_s390.hpp line 571: >> >>> 569: >>> 570: // No _features_names[] available on this CPU. >>> 571: static void insert_features_names(char* buf, size_t buflen, unsigned long features[] = _features) {} >> >> I do not see a reason for this change. How to test the s390 build? > > From the line 123 from this file -- _features is > > static unsigned long _features[_features_buffer_len]; > > > The build is tested in GHA https://github.com/AntonKozlov/crac/actions/runs/5841005695/job/15841780175 Here the failure before the change: https://github.com/jankratochvil/crac/actions/runs/5854032342/job/15870802152 ------------- PR Review Comment: https://git.openjdk.org/crac/pull/104#discussion_r1293412644 From jkratochvil at openjdk.org Mon Aug 14 13:06:03 2023 From: jkratochvil at openjdk.org (Jan Kratochvil) Date: Mon, 14 Aug 2023 13:06:03 GMT Subject: [crac] RFR: Fix builds In-Reply-To: References: <5WYCgmBgakVYzppfrwUd5NpXLiy0Hyo_ktD5A427Lkg=.20830890-d262-4c43-8eac-296d0294646d@github.com> Message-ID: On Mon, 14 Aug 2023 12:46:12 GMT, Anton Kozlov wrote: >> From the line 123 from this file -- _features is >> >> static unsigned long _features[_features_buffer_len]; >> >> >> The build is tested in GHA https://github.com/AntonKozlov/crac/actions/runs/5841005695/job/15841780175 > > Here the failure before the change: https://github.com/jankratochvil/crac/actions/runs/5854032342/job/15870802152 Thanks, I see now GHA does it test. Yes, I agree your fix is correct. ------------- PR Review Comment: https://git.openjdk.org/crac/pull/104#discussion_r1293416095 From akozlov at openjdk.org Mon Aug 14 16:01:29 2023 From: akozlov at openjdk.org (Anton Kozlov) Date: Mon, 14 Aug 2023 16:01:29 GMT Subject: [crac] RFR: Fix builds In-Reply-To: References: <5WYCgmBgakVYzppfrwUd5NpXLiy0Hyo_ktD5A427Lkg=.20830890-d262-4c43-8eac-296d0294646d@github.com> Message-ID: On Mon, 14 Aug 2023 12:49:38 GMT, Jan Kratochvil wrote: >> Here the failure before the change: https://github.com/jankratochvil/crac/actions/runs/5854032342/job/15870802152 > > Thanks, I see now GHA does it test. Yes, I agree your fix is correct. Could you Approve the PR then? ------------- PR Review Comment: https://git.openjdk.org/crac/pull/104#discussion_r1293647240 From akozlov at openjdk.org Mon Aug 14 16:43:58 2023 From: akozlov at openjdk.org (Anton Kozlov) Date: Mon, 14 Aug 2023 16:43:58 GMT Subject: [crac] RFR: Synchronize CPUFeatures with JDK trunk [v2] In-Reply-To: References: Message-ID: On Sun, 13 Aug 2023 13:47:28 GMT, Jan Kratochvil wrote: >> Synchronize CPUFeatures with JDK trunk > > Jan Kratochvil has updated the pull request incrementally with one additional commit since the last revision: > > Fix my off-by-one mistake. I assume that each CPU feature should be in GLIBC_DISABLE() or GLIBC_UNSUPPORTED() set. All new CPU features were added here. LGTM. ------------- Marked as reviewed by akozlov (Lead). PR Review: https://git.openjdk.org/crac/pull/105#pullrequestreview-1577234647 From akozlov at openjdk.org Mon Aug 14 17:37:28 2023 From: akozlov at openjdk.org (Anton Kozlov) Date: Mon, 14 Aug 2023 17:37:28 GMT Subject: [crac] RFR: Support -XX:+IgnoreCPUFeatures during -XX:CRaCRestoreFrom [v3] In-Reply-To: References: Message-ID: On Mon, 14 Aug 2023 09:38:58 GMT, Jan Kratochvil wrote: >> Support -XX:+IgnoreCPUFeatures during -XX:CRaCRestoreFrom > > Jan Kratochvil has updated the pull request with a new target base due to a merge or a rebase. The pull request now contains five commits: > > - Implement -XX:+IgnoreCPUFeatures > - Merge branch 'crac' into crac-restoreignore > - Split off crac_restore_finalize() from crac_restore(). > - Document -XX:CPUFeatures=ignore, reject !ignore during -XX:CRaCRestoreFrom > - Support -XX:CPUFeatures=ignore during -XX:CRaCRestoreFrom LGTM except the declaration nit. src/hotspot/cpu/x86/vm_version_x86.cpp line 2758: > 2756: } > 2757: > 2758: auto supports_exit = [&](const char *supports, bool file, bool this_cpu) { Just a note, not a part of this PR: all `_supports_*`, except _supports_cx8, are hard-wired to `true`, and all of them mostly serve to communicate CPU capabilities to the shared code. The `_supports_cx8` equals to supports_cmpxchg8(), and I assume this is supported pretty widely. And supports_cmpxchg8 implemented via` _features & CPU_CX8`, so that is tested along CPU features check. It looks the whole handling of `_supports_*` can be removed, or at least be turned into assert()s. src/hotspot/cpu/x86/vm_version_x86.hpp line 630: > 628: static void nonlibc_tty_print_uint64_comma_uint64(uint64_t num1, uint64_t num2); > 629: static void print_using_features_cr(); > 630: static bool nonlibc_str_equals(const char *a, const char *b); Stray declaration ------------- PR Review: https://git.openjdk.org/crac/pull/100#pullrequestreview-1577278348 PR Review Comment: https://git.openjdk.org/crac/pull/100#discussion_r1293759380 PR Review Comment: https://git.openjdk.org/crac/pull/100#discussion_r1293742065 From jkratochvil at openjdk.org Mon Aug 14 21:47:38 2023 From: jkratochvil at openjdk.org (Jan Kratochvil) Date: Mon, 14 Aug 2023 21:47:38 GMT Subject: [crac] RFR: Fix builds In-Reply-To: <5WYCgmBgakVYzppfrwUd5NpXLiy0Hyo_ktD5A427Lkg=.20830890-d262-4c43-8eac-296d0294646d@github.com> References: <5WYCgmBgakVYzppfrwUd5NpXLiy0Hyo_ktD5A427Lkg=.20830890-d262-4c43-8eac-296d0294646d@github.com> Message-ID: On Sat, 12 Aug 2023 11:48:03 GMT, Anton Kozlov wrote: > Fix builds in vairous configurations Marked as reviewed by jkratochvil (no project role). ------------- PR Review: https://git.openjdk.org/crac/pull/104#pullrequestreview-1577697753 From jkratochvil at openjdk.org Mon Aug 14 22:20:37 2023 From: jkratochvil at openjdk.org (Jan Kratochvil) Date: Mon, 14 Aug 2023 22:20:37 GMT Subject: [crac] RFR: Synchronize CPUFeatures with JDK trunk [v2] In-Reply-To: References: Message-ID: On Mon, 14 Aug 2023 16:37:44 GMT, Anton Kozlov wrote: > I assume that each CPU feature should be in GLIBC_DISABLE() or GLIBC_UNSUPPORTED() set. Yes. And the `GLIBC_DISABLE()` set must be the same as `EXCESSIVE()` set. Which reminds me it could be simplified a bit but that will be a different patch. ------------- PR Comment: https://git.openjdk.org/crac/pull/105#issuecomment-1678155448 From jkratochvil at openjdk.org Mon Aug 14 22:27:18 2023 From: jkratochvil at openjdk.org (Jan Kratochvil) Date: Mon, 14 Aug 2023 22:27:18 GMT Subject: [crac] RFR: Support -XX:+IgnoreCPUFeatures during -XX:CRaCRestoreFrom [v4] In-Reply-To: References: Message-ID: > Support -XX:+IgnoreCPUFeatures during -XX:CRaCRestoreFrom Jan Kratochvil has updated the pull request incrementally with one additional commit since the last revision: Remove an unused nonlibc_str_equals declaration. - found by Anton Kozlov ------------- Changes: - all: https://git.openjdk.org/crac/pull/100/files - new: https://git.openjdk.org/crac/pull/100/files/d42f08b9..fe9af53e Webrevs: - full: https://webrevs.openjdk.org/?repo=crac&pr=100&range=03 - incr: https://webrevs.openjdk.org/?repo=crac&pr=100&range=02-03 Stats: 1 line in 1 file changed: 0 ins; 1 del; 0 mod Patch: https://git.openjdk.org/crac/pull/100.diff Fetch: git fetch https://git.openjdk.org/crac.git pull/100/head:pull/100 PR: https://git.openjdk.org/crac/pull/100 From jkratochvil at openjdk.org Tue Aug 15 06:56:35 2023 From: jkratochvil at openjdk.org (Jan Kratochvil) Date: Tue, 15 Aug 2023 06:56:35 GMT Subject: [crac] Integrated: Synchronize CPUFeatures with JDK trunk In-Reply-To: References: Message-ID: On Sun, 13 Aug 2023 12:48:57 GMT, Jan Kratochvil wrote: > Synchronize CPUFeatures with JDK trunk This pull request has now been integrated. Changeset: c0ea21ec Author: Jan Kratochvil Committer: Anton Kozlov URL: https://git.openjdk.org/crac/commit/c0ea21ec63cc5b48eed1beef2143437cac15efb2 Stats: 13 lines in 2 files changed: 12 ins; 0 del; 1 mod Synchronize CPUFeatures with JDK trunk Reviewed-by: akozlov ------------- PR: https://git.openjdk.org/crac/pull/105 From akozlov at openjdk.org Tue Aug 15 06:57:39 2023 From: akozlov at openjdk.org (Anton Kozlov) Date: Tue, 15 Aug 2023 06:57:39 GMT Subject: [crac] RFR: Support -XX:+IgnoreCPUFeatures during -XX:CRaCRestoreFrom [v4] In-Reply-To: References: Message-ID: On Mon, 14 Aug 2023 22:27:18 GMT, Jan Kratochvil wrote: >> Support -XX:+IgnoreCPUFeatures during -XX:CRaCRestoreFrom > > Jan Kratochvil has updated the pull request incrementally with one additional commit since the last revision: > > Remove an unused nonlibc_str_equals declaration. > - found by Anton Kozlov Marked as reviewed by akozlov (Lead). ------------- PR Review: https://git.openjdk.org/crac/pull/100#pullrequestreview-1578056347 From akozlov at openjdk.org Tue Aug 15 07:02:45 2023 From: akozlov at openjdk.org (Anton Kozlov) Date: Tue, 15 Aug 2023 07:02:45 GMT Subject: [crac] Integrated: Fix builds In-Reply-To: <5WYCgmBgakVYzppfrwUd5NpXLiy0Hyo_ktD5A427Lkg=.20830890-d262-4c43-8eac-296d0294646d@github.com> References: <5WYCgmBgakVYzppfrwUd5NpXLiy0Hyo_ktD5A427Lkg=.20830890-d262-4c43-8eac-296d0294646d@github.com> Message-ID: On Sat, 12 Aug 2023 11:48:03 GMT, Anton Kozlov wrote: > Fix builds in vairous configurations This pull request has now been integrated. Changeset: cac87595 Author: Anton Kozlov URL: https://git.openjdk.org/crac/commit/cac875950ec0e1c528659de39cc6903cb968b26f Stats: 38 lines in 10 files changed: 28 ins; 3 del; 7 mod Fix builds Reviewed-by: jkratochvil ------------- PR: https://git.openjdk.org/crac/pull/104 From jkratochvil at openjdk.org Tue Aug 15 09:29:05 2023 From: jkratochvil at openjdk.org (Jan Kratochvil) Date: Tue, 15 Aug 2023 09:29:05 GMT Subject: [crac] RFR: Keep _features the same after CRaC restore [v2] In-Reply-To: References: Message-ID: > Extending `_features` may change ABI or existing JIT-compiled code. Unfortunately we cannot use more advanced CPU features after restore, we need to stick to the same features of CPU used to make the checkpoint file. Jan Kratochvil has updated the pull request with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. The pull request contains three additional commits since the last revision: - Do not modify global variables in crac_restore() - Merge branch 'crac' into crac-keepfeatures - Keep _features the same after CRaC restore ------------- Changes: - all: https://git.openjdk.org/crac/pull/103/files - new: https://git.openjdk.org/crac/pull/103/files/93435f79..fda35d13 Webrevs: - full: https://webrevs.openjdk.org/?repo=crac&pr=103&range=01 - incr: https://webrevs.openjdk.org/?repo=crac&pr=103&range=00-01 Stats: 25432 lines in 1022 files changed: 12003 ins; 6328 del; 7101 mod Patch: https://git.openjdk.org/crac/pull/103.diff Fetch: git fetch https://git.openjdk.org/crac.git pull/103/head:pull/103 PR: https://git.openjdk.org/crac/pull/103 From jkratochvil at openjdk.org Tue Aug 15 09:29:21 2023 From: jkratochvil at openjdk.org (Jan Kratochvil) Date: Tue, 15 Aug 2023 09:29:21 GMT Subject: [crac] RFR: Keep _features the same after CRaC restore In-Reply-To: References: Message-ID: On Fri, 11 Aug 2023 12:11:19 GMT, Jan Kratochvil wrote: > Extending `_features` may change ABI or existing JIT-compiled code. Unfortunately we cannot use more advanced CPU features after restore, we need to stick to the same features of CPU used to make the checkpoint file. Is this update OK or not? Most of the changes (moving the methods under `VM_Version::CpuidInfo`) could be attempted to be upstreamed to OpenJDK as I find them as a cleanup. ------------- PR Comment: https://git.openjdk.org/crac/pull/103#issuecomment-1678651722 From akozlov at openjdk.org Wed Aug 16 09:58:40 2023 From: akozlov at openjdk.org (Anton Kozlov) Date: Wed, 16 Aug 2023 09:58:40 GMT Subject: [crac] RFR: Keep _features the same after CRaC restore [v2] In-Reply-To: References: Message-ID: On Tue, 15 Aug 2023 09:29:05 GMT, Jan Kratochvil wrote: >> Extending `_features` may change ABI or existing JIT-compiled code. Unfortunately we cannot use more advanced CPU features after restore, we need to stick to the same features of CPU used to make the checkpoint file. > > Jan Kratochvil has updated the pull request with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. The pull request contains three additional commits since the last revision: > > - Do not modify global variables in crac_restore() > - Merge branch 'crac' into crac-keepfeatures > - Keep _features the same after CRaC restore LGTM, and thank you for the SUPPORTS() cleanup ------------- Marked as reviewed by akozlov (Lead). PR Review: https://git.openjdk.org/crac/pull/103#pullrequestreview-1580233312 From akozlov at openjdk.org Wed Aug 16 11:57:54 2023 From: akozlov at openjdk.org (Anton Kozlov) Date: Wed, 16 Aug 2023 11:57:54 GMT Subject: [crac] RFR: Adapted some FileDescriptor tests for Win [v7] In-Reply-To: References: Message-ID: On Mon, 14 Aug 2023 07:25:58 GMT, Roman Marchenko wrote: >> Made changes regarding FileDescriptor for Win platform, adapted some tests. > > Roman Marchenko has updated the pull request with a new target base due to a merge or a rebase. The pull request now contains 12 commits: > > - Merge branch 'openjdk:crac' into win_fd > - Fixing review comments > - Moving macro outside func to make it clearer > - Fixing review comments > - Fixing a typo > - Fixing review comments > - Fixed nativeDescription0 for Win > - Changes to nativeDescription (win) > - Adapted JarFileFactory > - Merge branch 'crac' into win_fd > - ... and 2 more: https://git.openjdk.org/crac/compare/6b5ea026...004915b4 Marked as reviewed by akozlov (Lead). ------------- PR Review: https://git.openjdk.org/crac/pull/91#pullrequestreview-1580426466 From rmarchenko at openjdk.org Wed Aug 16 14:15:43 2023 From: rmarchenko at openjdk.org (Roman Marchenko) Date: Wed, 16 Aug 2023 14:15:43 GMT Subject: [crac] Integrated: Adapted some FileDescriptor tests for Win In-Reply-To: References: Message-ID: <63yrApghMJziPnMr-rGZu0vzuJtZV4s85WCH0WBzHDI=.501c23a9-5c2f-4557-86b8-34e005c9ee4d@github.com> On Mon, 24 Jul 2023 07:22:00 GMT, Roman Marchenko wrote: > Made changes regarding FileDescriptor for Win platform, adapted some tests. This pull request has now been integrated. Changeset: 77acc688 Author: Roman Marchenko Committer: Anton Kozlov URL: https://git.openjdk.org/crac/commit/77acc688b4a5e7ccc9940908f382d5434dffdabe Stats: 65 lines in 5 files changed: 51 ins; 3 del; 11 mod Adapted some FileDescriptor tests for Win Reviewed-by: rvansa, akozlov ------------- PR: https://git.openjdk.org/crac/pull/91 From jkratochvil at openjdk.org Thu Aug 17 10:18:06 2023 From: jkratochvil at openjdk.org (Jan Kratochvil) Date: Thu, 17 Aug 2023 10:18:06 GMT Subject: [crac] Integrated: Keep _features the same after CRaC restore In-Reply-To: References: Message-ID: <9rzEhoQZHvZM2l6KpsoPdDgYiDm6TWQdlzjoPJtglQ4=.3e94e16f-af16-4c71-8df2-a44601432767@github.com> On Fri, 11 Aug 2023 12:11:19 GMT, Jan Kratochvil wrote: > Extending `_features` may change ABI or existing JIT-compiled code. Unfortunately we cannot use more advanced CPU features after restore, we need to stick to the same features of CPU used to make the checkpoint file. This pull request has now been integrated. Changeset: ed4ad9ba Author: Jan Kratochvil Committer: Anton Kozlov URL: https://git.openjdk.org/crac/commit/ed4ad9ba31b77732dcede2eb743b2f389ec9a0fe Stats: 222 lines in 2 files changed: 69 ins; 71 del; 82 mod Keep _features the same after CRaC restore Reviewed-by: akozlov ------------- PR: https://git.openjdk.org/crac/pull/103 From jkratochvil at openjdk.org Sun Aug 20 16:31:10 2023 From: jkratochvil at openjdk.org (Jan Kratochvil) Date: Sun, 20 Aug 2023 16:31:10 GMT Subject: [crac] RFR: Prevent an assertion: Attempting to acquire lock PeriodicTask_lock... Message-ID: Prevent an assertion: `Attempting to acquire lock PeriodicTask_lock/safepoint out of order with lock Threads_lock/safepoint-1 -- possible deadlock` ------------- Commit messages: - Prevent an assertion: Attempting to acquire lock PeriodicTask_lock/safepoint out of order with lock Threads_lock/safepoint-1 -- possible deadlock Changes: https://git.openjdk.org/crac/pull/106/files Webrev: https://webrevs.openjdk.org/?repo=crac&pr=106&range=00 Stats: 27 lines in 1 file changed: 25 ins; 0 del; 2 mod Patch: https://git.openjdk.org/crac/pull/106.diff Fetch: git fetch https://git.openjdk.org/crac.git pull/106/head:pull/106 PR: https://git.openjdk.org/crac/pull/106 From jkratochvil at openjdk.org Sun Aug 20 16:53:10 2023 From: jkratochvil at openjdk.org (Jan Kratochvil) Date: Sun, 20 Aug 2023 16:53:10 GMT Subject: [crac] RFR: Support -XX:+IgnoreCPUFeatures during -XX:CRaCRestoreFrom [v5] In-Reply-To: References: Message-ID: > Support -XX:+IgnoreCPUFeatures during -XX:CRaCRestoreFrom Jan Kratochvil has updated the pull request with a new target base due to a merge or a rebase. The pull request now contains seven commits: - Merge branch 'crac' into crac-restoreignore - Remove an unused nonlibc_str_equals declaration. - found by Anton Kozlov - Implement -XX:+IgnoreCPUFeatures - Merge branch 'crac' into crac-restoreignore - Split off crac_restore_finalize() from crac_restore(). - Document -XX:CPUFeatures=ignore, reject !ignore during -XX:CRaCRestoreFrom - Support -XX:CPUFeatures=ignore during -XX:CRaCRestoreFrom ------------- Changes: https://git.openjdk.org/crac/pull/100/files Webrev: https://webrevs.openjdk.org/?repo=crac&pr=100&range=04 Stats: 45 lines in 11 files changed: 30 ins; 0 del; 15 mod Patch: https://git.openjdk.org/crac/pull/100.diff Fetch: git fetch https://git.openjdk.org/crac.git pull/100/head:pull/100 PR: https://git.openjdk.org/crac/pull/100 From jkratochvil at openjdk.org Sun Aug 20 16:57:05 2023 From: jkratochvil at openjdk.org (Jan Kratochvil) Date: Sun, 20 Aug 2023 16:57:05 GMT Subject: [crac] RFR: Support -XX:+IgnoreCPUFeatures during -XX:CRaCRestoreFrom [v3] In-Reply-To: References: Message-ID: On Mon, 14 Aug 2023 17:23:06 GMT, Anton Kozlov wrote: >> Jan Kratochvil has updated the pull request with a new target base due to a merge or a rebase. The pull request now contains five commits: >> >> - Implement -XX:+IgnoreCPUFeatures >> - Merge branch 'crac' into crac-restoreignore >> - Split off crac_restore_finalize() from crac_restore(). >> - Document -XX:CPUFeatures=ignore, reject !ignore during -XX:CRaCRestoreFrom >> - Support -XX:CPUFeatures=ignore during -XX:CRaCRestoreFrom > > src/hotspot/cpu/x86/vm_version_x86.cpp line 2758: > >> 2756: } >> 2757: >> 2758: auto supports_exit = [&](const char *supports, bool file, bool this_cpu) { > > Just a note, not a part of this PR: all `_supports_*`, except _supports_cx8, are hard-wired to `true`, and all of them mostly serve to communicate CPU capabilities to the shared code. > > The `_supports_cx8` equals to supports_cmpxchg8(), and I assume this is supported pretty widely. And supports_cmpxchg8 implemented via` _features & CPU_CX8`, so that is tested along CPU features check. > > It looks the whole handling of `_supports_*` can be removed, or at least be turned into assert()s. The `_supports_*` code It has been removed by #103 so it is no longer relevant. `CX8` is not supported by 32-bit CPUs. ------------- PR Review Comment: https://git.openjdk.org/crac/pull/100#discussion_r1299405902 From jkratochvil at openjdk.org Sun Aug 20 18:33:24 2023 From: jkratochvil at openjdk.org (Jan Kratochvil) Date: Sun, 20 Aug 2023 18:33:24 GMT Subject: [crac] RFR: Wait until G1 GC has finished before creating a snapshot. [v8] In-Reply-To: References: Message-ID: <6D-rJ9W-OTN8UZvujJ4pP33Jf2QhPpJOkPf_D2tXbmE=.d4d94d40-c4af-4d53-829f-633c402f7d20@github.com> > @rvansa did report his snapshots are about 2x-3x bigger than they should be. He then also found it only happens if the snapshot is done too quickly after GC should have been run. > > One can reproduce the race case by: > > --- a/src/hotspot/share/gc/g1/g1UncommitRegionTask.hpp > +++ b/src/hotspot/share/gc/g1/g1UncommitRegionTask.hpp > @@ -35,7 +35,7 @@ class G1UncommitRegionTask : public G1ServiceTask { > // is short, while still making reasonable progress. > static const uint UncommitSizeLimit = 128 * M; > // Initial delay in milliseconds after GC before the regions are uncommitted. > - static const uint UncommitInitialDelayMs = 100; > + static const uint UncommitInitialDelayMs = 10*1000; > // The delay between two uncommit task executions. > static const uint UncommitTaskDelayMs = 10; Jan Kratochvil has updated the pull request with a new target base due to a merge or a rebase. The pull request now contains 10 commits: - Merge branch 'crac' into crac-g1gcwait - Merge branch 'crac' into crac-g1gcwait - Do not use synchronization, directly unmap it. - Merge branch 'crac' into crac-g1gcwait - Make -active volatile. - bugreported by Sergey Nazarkin - Remove accidental change of UncommitInitialDelayMs. - bugreported by Radim Vansa - Add an assertion at least for !is_ConcurrentGC_thread(). - Remove calling thread state assertions for wait_for_collection_finish(). - Add a generic virtual method wait_for_collection_finish(). - based on a review by Radim Vansa. Assert calling thread state for wait_for_collection_finish(). - based on a review by Radim Vansa. - Wait until G1 GC has finished before creating a snapshot. ------------- Changes: https://git.openjdk.org/crac/pull/93/files Webrev: https://webrevs.openjdk.org/?repo=crac&pr=93&range=07 Stats: 18 lines in 5 files changed: 18 ins; 0 del; 0 mod Patch: https://git.openjdk.org/crac/pull/93.diff Fetch: git fetch https://git.openjdk.org/crac.git pull/93/head:pull/93 PR: https://git.openjdk.org/crac/pull/93 From akozlov at openjdk.org Mon Aug 21 10:03:59 2023 From: akozlov at openjdk.org (Anton Kozlov) Date: Mon, 21 Aug 2023 10:03:59 GMT Subject: [crac] RFR: Prevent an assertion: Attempting to acquire lock PeriodicTask_lock... In-Reply-To: References: Message-ID: On Sun, 20 Aug 2023 16:24:50 GMT, Jan Kratochvil wrote: > Prevent an assertion: `Attempting to acquire lock PeriodicTask_lock/safepoint out of order with lock Threads_lock/safepoint-1 -- possible deadlock` src/hotspot/share/runtime/crac.cpp line 299: > 297: Threads::java_threads_do(&wc); > 298: > 299: MonitorLocker ml(PeriodicTask_lock, Mutex::_no_safepoint_check_flag); I see the problematic locking is performed during the safepoint. The code was added in https://github.com/openjdk/crac/pull/85. AFAICS it's enough to wake up all threads to make them recompute the current time. As more simple approach, would it be enough to move wakeup_threads_in_timedwait out from VM Operation? ------------- PR Review Comment: https://git.openjdk.org/crac/pull/106#discussion_r1299896209 From akozlov at openjdk.org Mon Aug 21 10:29:04 2023 From: akozlov at openjdk.org (Anton Kozlov) Date: Mon, 21 Aug 2023 10:29:04 GMT Subject: [crac] RFR: Support -XX:+IgnoreCPUFeatures during -XX:CRaCRestoreFrom [v5] In-Reply-To: References: Message-ID: <4EQi5HbdAQr1TNQQtHabUiruE1UhAbESZ4aikbNNkLs=.d4475f95-65d4-48c1-9101-1a8f0429650f@github.com> On Sun, 20 Aug 2023 16:53:10 GMT, Jan Kratochvil wrote: >> Support -XX:+IgnoreCPUFeatures during -XX:CRaCRestoreFrom > > Jan Kratochvil has updated the pull request with a new target base due to a merge or a rebase. The pull request now contains seven commits: > > - Merge branch 'crac' into crac-restoreignore > - Remove an unused nonlibc_str_equals declaration. > - found by Anton Kozlov > - Implement -XX:+IgnoreCPUFeatures > - Merge branch 'crac' into crac-restoreignore > - Split off crac_restore_finalize() from crac_restore(). > - Document -XX:CPUFeatures=ignore, reject !ignore during -XX:CRaCRestoreFrom > - Support -XX:CPUFeatures=ignore during -XX:CRaCRestoreFrom I'm not sure why it's stuck, may be needs another `/integrate`? ------------- PR Comment: https://git.openjdk.org/crac/pull/100#issuecomment-1686062473 From jkratochvil at openjdk.org Mon Aug 21 14:01:03 2023 From: jkratochvil at openjdk.org (Jan Kratochvil) Date: Mon, 21 Aug 2023 14:01:03 GMT Subject: [crac] Integrated: Support -XX:+IgnoreCPUFeatures during -XX:CRaCRestoreFrom In-Reply-To: References: Message-ID: On Wed, 9 Aug 2023 13:55:30 GMT, Jan Kratochvil wrote: > Support -XX:+IgnoreCPUFeatures during -XX:CRaCRestoreFrom This pull request has now been integrated. Changeset: 3c8c350d Author: Jan Kratochvil Committer: Anton Kozlov URL: https://git.openjdk.org/crac/commit/3c8c350d8743d6c5d60e3e1041d7394dc4ac1801 Stats: 45 lines in 11 files changed: 30 ins; 0 del; 15 mod Support -XX:+IgnoreCPUFeatures during -XX:CRaCRestoreFrom Reviewed-by: akozlov ------------- PR: https://git.openjdk.org/crac/pull/100 From jkratochvil at openjdk.org Mon Aug 21 17:17:23 2023 From: jkratochvil at openjdk.org (Jan Kratochvil) Date: Mon, 21 Aug 2023 17:17:23 GMT Subject: [crac] RFR: Prevent an assertion: Attempting to acquire lock PeriodicTask_lock... [v2] In-Reply-To: References: Message-ID: > Prevent an assertion: `Attempting to acquire lock PeriodicTask_lock/safepoint out of order with lock Threads_lock/safepoint-1 -- possible deadlock` Jan Kratochvil has updated the pull request incrementally with one additional commit since the last revision: Move a part of wakeup_threads_in_timedwait() out of VM_Operation. - suggested by Anton Kozlov ------------- Changes: - all: https://git.openjdk.org/crac/pull/106/files - new: https://git.openjdk.org/crac/pull/106/files/78daa0f3..ee770814 Webrevs: - full: https://webrevs.openjdk.org/?repo=crac&pr=106&range=01 - incr: https://webrevs.openjdk.org/?repo=crac&pr=106&range=00-01 Stats: 33 lines in 1 file changed: 4 ins; 21 del; 8 mod Patch: https://git.openjdk.org/crac/pull/106.diff Fetch: git fetch https://git.openjdk.org/crac.git pull/106/head:pull/106 PR: https://git.openjdk.org/crac/pull/106 From jkratochvil at openjdk.org Mon Aug 21 17:17:25 2023 From: jkratochvil at openjdk.org (Jan Kratochvil) Date: Mon, 21 Aug 2023 17:17:25 GMT Subject: [crac] RFR: Prevent an assertion: Attempting to acquire lock PeriodicTask_lock... [v2] In-Reply-To: References: Message-ID: On Mon, 21 Aug 2023 10:00:44 GMT, Anton Kozlov wrote: >> Jan Kratochvil has updated the pull request incrementally with one additional commit since the last revision: >> >> Move a part of wakeup_threads_in_timedwait() out of VM_Operation. >> - suggested by Anton Kozlov > > src/hotspot/share/runtime/crac.cpp line 299: > >> 297: Threads::java_threads_do(&wc); >> 298: >> 299: MonitorLocker ml(PeriodicTask_lock, Mutex::_no_safepoint_check_flag); > > I see the problematic locking is performed during the safepoint. The code was added in https://github.com/openjdk/crac/pull/85. AFAICS it's enough to wake up all threads to make them recompute the current time. As more simple approach, would it be enough to move wakeup_threads_in_timedwait out from VM Operation? Yes, you are right. ------------- PR Review Comment: https://git.openjdk.org/crac/pull/106#discussion_r1300419734 From jkratochvil at openjdk.org Mon Aug 21 18:13:58 2023 From: jkratochvil at openjdk.org (Jan Kratochvil) Date: Mon, 21 Aug 2023 18:13:58 GMT Subject: [crac] RFR: Wait until G1 GC has finished before creating a snapshot. [v6] In-Reply-To: References: Message-ID: On Mon, 7 Aug 2023 12:35:22 GMT, Anton Kozlov wrote: >> I read now I should contact https://mail.openjdk.org/pipermail/hotspot-gc-dev/ , thanks for the advice. > > AFAICS HeapRegionManager::uncommit_inactive_regions is synchronized by Uncommit_lock. > > https://github.com/openjdk/crac/blob/fbeaadb611f355b0616ebd25d86b9a7ced83276a/src/hotspot/share/gc/g1/heapRegionManager.cpp#L311 I somehow missed this lock. OK, I agree it is safe. ------------- PR Review Comment: https://git.openjdk.org/crac/pull/93#discussion_r1300477950 From jkratochvil at openjdk.org Tue Aug 22 15:32:48 2023 From: jkratochvil at openjdk.org (Jan Kratochvil) Date: Tue, 22 Aug 2023 15:32:48 GMT Subject: [crac] RFR: Wait until G1 GC has finished before creating a snapshot. [v8] In-Reply-To: <5xKEvUqWDoTWkdtwKktORg79dJE0QfVBOZyKqtSTU5s=.df1879e3-f964-40bc-a49e-e589467b0737@github.com> References: <5xKEvUqWDoTWkdtwKktORg79dJE0QfVBOZyKqtSTU5s=.df1879e3-f964-40bc-a49e-e589467b0737@github.com> Message-ID: On Thu, 27 Jul 2023 07:30:53 GMT, Radim Vansa wrote: >> I have added there some assertions. Not sure they should stay this way, do you have more insight about it? > > Oh, I looked wrong, we're *not* calling it from VM operation (`VM_Crac::doit`). Asserting on the name of the thread makes no sense, that can be changed arbitrarily, and the checkpoint operation can be triggered from any thread, including a non-application thread if we use the `jcmd JDK.checkpoint`. > > I haven't checked all code paths but it seems that the `_instance` is set from `VM_G1CollectFull`. If we are to skip synchronization of access to `_instance` we could call the `wait_if_active` from our `VM_Crac` and use `assert(Thread::current()->is_VM_thread())` as the assertion. However when we're in another VM operation I guess the GC thread we would be waiting for isn't suspended in a safepoint (so we would deadlock). It has been changed/simplified upon @AntonKozlov's comments so I find this discussion no longer relevant. ------------- PR Review Comment: https://git.openjdk.org/crac/pull/93#discussion_r1301822338 From rvansa at openjdk.org Thu Aug 24 14:24:00 2023 From: rvansa at openjdk.org (Radim Vansa) Date: Thu, 24 Aug 2023 14:24:00 GMT Subject: [crac] RFR: Prevent an assertion: Attempting to acquire lock PeriodicTask_lock... [v2] In-Reply-To: References: Message-ID: On Mon, 21 Aug 2023 17:17:23 GMT, Jan Kratochvil wrote: >> Prevent an assertion: `Attempting to acquire lock PeriodicTask_lock/safepoint out of order with lock Threads_lock/safepoint-1 -- possible deadlock` > > Jan Kratochvil has updated the pull request incrementally with one additional commit since the last revision: > > Move a part of wakeup_threads_in_timedwait() out of VM_Operation. > - suggested by Anton Kozlov Works for me. ------------- Marked as reviewed by rvansa (Committer). PR Review: https://git.openjdk.org/crac/pull/106#pullrequestreview-1593737547 From rvansa at openjdk.org Thu Aug 24 15:08:23 2023 From: rvansa at openjdk.org (Radim Vansa) Date: Thu, 24 Aug 2023 15:08:23 GMT Subject: [crac] RFR: Persist memory in-JVM In-Reply-To: References: Message-ID: On Fri, 28 Jul 2023 17:07:22 GMT, Radim Vansa wrote: > This is a WIP for persisting various portions of JVM memory from within the process, rather than leaving that up to C/R engine (such as CRIU). In the future this will enable us to optimize loading (theoretically leading to faster startup), compress and encrypt the data. > > At this moment the implementation of persisting thread stacks is in proof-of-concept shape, ~especially waking up the primordial thread includes some hacks. This could be improved by using a custom (global, ideally robust) futex instead of the internal futex used by `pthread_join`.~ Fix already implemented. > > ~One of the concerns related to thread stacks is rseq used by glibc; without disabling this CRIU would attempt to 'fix' the rseqs (see `fixup_thread_rseq`) and touch the unmapped memory. CRIU uses special ptrace commands to check the status; I am not aware if it is possible to access this information from within the process using any public API.~ Solved. The JVM forks and the child ptraces JVM, recording the rseq info. Once we have the we can unregister the rseq before checkpoint and register it afterwards (here we have the advantage that we know the threads won't be in any critical section as we're in a safepoint). > ~Currently this works with `/proc/sys/kernel/yama/ptrace_scope` set to `0`; we should make it work with `1` (default), too.~ Fixed. > > Regarding persistence implementation, currently we store the memory in multiple files; first block (page-size aligned) contains some validation data and index of memory address - file offsets. The way this is implemented requires the size of index to be known before dumping memory. It might be more convenient (and portable for e.g. network-based storage) to use single file, and either keep the index in the 'fundamental' memory (C heap), put it at the end of file or to another index file. @AntonKozlov In the end I have removed stopping of GC worker threads from the PR as it is not necessary, saves little memory and requires more intrusive changes (e.g. `os::create_thread` signature). I'll post it aside as another PR to keep reference of that. ------------- PR Comment: https://git.openjdk.org/crac/pull/95#issuecomment-1691856903 From rvansa at openjdk.org Thu Aug 24 15:08:22 2023 From: rvansa at openjdk.org (Radim Vansa) Date: Thu, 24 Aug 2023 15:08:22 GMT Subject: [crac] RFR: Persist memory in-JVM Message-ID: This is a WIP for persisting various portions of JVM memory from within the process, rather than leaving that up to C/R engine (such as CRIU). In the future this will enable us to optimize loading (theoretically leading to faster startup), compress and encrypt the data. At this moment the implementation of persisting thread stacks is in proof-of-concept shape, ~especially waking up the primordial thread includes some hacks. This could be improved by using a custom (global, ideally robust) futex instead of the internal futex used by `pthread_join`.~ Fix already implemented. ~One of the concerns related to thread stacks is rseq used by glibc; without disabling this CRIU would attempt to 'fix' the rseqs (see `fixup_thread_rseq`) and touch the unmapped memory. CRIU uses special ptrace commands to check the status; I am not aware if it is possible to access this information from within the process using any public API.~ Solved. The JVM forks and the child ptraces JVM, recording the rseq info. Once we have the we can unregister the rseq before checkpoint and register it afterwards (here we have the advantage that we know the threads won't be in any critical section as we're in a safepoint). ~Currently this works with `/proc/sys/kernel/yama/ptrace_scope` set to `0`; we should make it work with `1` (default), too.~ Fixed. Regarding persistence implementation, currently we store the memory in multiple files; first block (page-size aligned) contains some validation data and index of memory address - file offsets. The way this is implemented requires the size of index to be known before dumping memory. It might be more convenient (and portable for e.g. network-based storage) to use single file, and either keep the index in the 'fundamental' memory (C heap), put it at the end of file or to another index file. ------------- Commit messages: - Remove outdated rseq info - Drop accidentally committed debug code - NULL -> nullptr - Fixup after rebase - Persist some forgotten allocations - Store persisted memory in one big file (memory.img) - Release memory for task queues before checkpoint - Do not unregister/register rseq when not used - Allow child to ptrace parent with restricted ptrace - Ptrace self & unregister rseq during checkpoint - ... and 13 more: https://git.openjdk.org/crac/compare/3c8c350d...976c7ca3 Changes: https://git.openjdk.org/crac/pull/95/files Webrev: https://webrevs.openjdk.org/?repo=crac&pr=95&range=00 Stats: 962 lines in 30 files changed: 944 ins; 6 del; 12 mod Patch: https://git.openjdk.org/crac/pull/95.diff Fetch: git fetch https://git.openjdk.org/crac.git pull/95/head:pull/95 PR: https://git.openjdk.org/crac/pull/95 From rvansa at openjdk.org Thu Aug 24 15:37:56 2023 From: rvansa at openjdk.org (Radim Vansa) Date: Thu, 24 Aug 2023 15:37:56 GMT Subject: [crac] RFR: Persist memory in-JVM In-Reply-To: References: Message-ID: On Fri, 28 Jul 2023 17:07:22 GMT, Radim Vansa wrote: > This is a WIP for persisting various portions of JVM memory from within the process, rather than leaving that up to C/R engine (such as CRIU). In the future this will enable us to optimize loading (theoretically leading to faster startup), compress and encrypt the data. > > At this moment the implementation of persisting thread stacks is in proof-of-concept shape, ~especially waking up the primordial thread includes some hacks. This could be improved by using a custom (global, ideally robust) futex instead of the internal futex used by `pthread_join`.~ Fix already implemented. > > ~One of the concerns related to thread stacks is rseq used by glibc; without disabling this CRIU would attempt to 'fix' the rseqs (see `fixup_thread_rseq`) and touch the unmapped memory. CRIU uses special ptrace commands to check the status; I am not aware if it is possible to access this information from within the process using any public API.~ Solved. The JVM forks and the child ptraces JVM, recording the rseq info. Once we have the we can unregister the rseq before checkpoint and register it afterwards (here we have the advantage that we know the threads won't be in any critical section as we're in a safepoint). > ~Currently this works with `/proc/sys/kernel/yama/ptrace_scope` set to `0`; we should make it work with `1` (default), too.~ Fixed. > > Regarding persistence implementation, currently we store the memory in multiple files; first block (page-size aligned) contains some validation data and index of memory address - file offsets. The way this is implemented requires the size of index to be known before dumping memory. It might be more convenient (and portable for e.g. network-based storage) to use single file, and either keep the index in the 'fundamental' memory (C heap), put it at the end of file or to another index file. Actually I am going to post the change to stop G1 workers here as it's based on this PR: https://github.com/rvansa/crac/tree/stop_g1_workers - specifically https://github.com/rvansa/crac/commit/e5b599a9dd062429dea11e743dae834ca7be004f ------------- PR Comment: https://git.openjdk.org/crac/pull/95#issuecomment-1691912643 From akozlov at openjdk.org Thu Aug 24 15:51:02 2023 From: akozlov at openjdk.org (Anton Kozlov) Date: Thu, 24 Aug 2023 15:51:02 GMT Subject: [crac] RFR: Prevent an assertion: Attempting to acquire lock PeriodicTask_lock... [v2] In-Reply-To: References: Message-ID: On Mon, 21 Aug 2023 17:17:23 GMT, Jan Kratochvil wrote: >> Prevent an assertion: `Attempting to acquire lock PeriodicTask_lock/safepoint out of order with lock Threads_lock/safepoint-1 -- possible deadlock` > > Jan Kratochvil has updated the pull request incrementally with one additional commit since the last revision: > > Move a part of wakeup_threads_in_timedwait() out of VM_Operation. > - suggested by Anton Kozlov LGTM, thank you! ------------- Marked as reviewed by akozlov (Lead). PR Review: https://git.openjdk.org/crac/pull/106#pullrequestreview-1593935369 From jkratochvil at openjdk.org Fri Aug 25 08:22:43 2023 From: jkratochvil at openjdk.org (Jan Kratochvil) Date: Fri, 25 Aug 2023 08:22:43 GMT Subject: [crac] Integrated: Prevent an assertion: Attempting to acquire lock PeriodicTask_lock... In-Reply-To: References: Message-ID: On Sun, 20 Aug 2023 16:24:50 GMT, Jan Kratochvil wrote: > Prevent an assertion: `Attempting to acquire lock PeriodicTask_lock/safepoint out of order with lock Threads_lock/safepoint-1 -- possible deadlock` This pull request has now been integrated. Changeset: c1940982 Author: Jan Kratochvil Committer: Radim Vansa URL: https://git.openjdk.org/crac/commit/c19409827149a4e0e8e845d3f81bb77360efbe5a Stats: 11 lines in 1 file changed: 8 ins; 0 del; 3 mod Prevent an assertion: Attempting to acquire lock PeriodicTask_lock... Reviewed-by: rvansa, akozlov ------------- PR: https://git.openjdk.org/crac/pull/106 From duke at openjdk.org Tue Aug 29 11:47:06 2023 From: duke at openjdk.org (YizhePKU) Date: Tue, 29 Aug 2023 11:47:06 GMT Subject: [crac] RFR: Fix: arguments supplied to restore are split with whitespace In-Reply-To: References: Message-ID: On Thu, 10 Aug 2023 16:02:32 GMT, YizhePKU wrote: > This PR fixes a bug that causes arguments with whitespaces to be split into multiple arguments during restore. > > It contains two commits. The first commit is refactor only. It moves all side effects from `CracRestoreParameters` to the call sites, and changes the type of `CracRestoreParameters::args` from a single string to a `GrowableArray` of strings. Serialization code is also cleaned up a bit. > > The second commit fixes the bug by introducing a new pseudo property, `-DCRaCJavaMainArgs`, that is set in `JavaMain`. An instance of `JavaMainArgs` (containing `argc` and `argv`) is stored as extra info of the property, which is later extracted in `Arguments::parse_options_for_restore` and passed to `crac::restore`. > > Potential issues: > > * We use `putenv` to modify environment variables, which expects `char*`. In this PR, I'm `const_cast`ing from `const char*` to `char*`, since I believe `putenv` doesn't actually modify the string. Is that OK? Maybe rewriting with `setenv` would be better? > * `read_growable_array` is implemented by reading byte-at-a-time from the shared memory. Will it be too slow? I could rewrite it to read everything at once (like the original code did), but the current implementation is cute and I kinda want to keep it. I've yet to get existing tests to pass on my machine (it's NixOS, so it never works the first time). I'll add the tests after I figure it out. ------------- PR Comment: https://git.openjdk.org/crac/pull/101#issuecomment-1682747655 From rvansa at openjdk.org Tue Aug 29 11:47:06 2023 From: rvansa at openjdk.org (Radim Vansa) Date: Tue, 29 Aug 2023 11:47:06 GMT Subject: [crac] RFR: Fix: arguments supplied to restore are split with whitespace In-Reply-To: References: Message-ID: On Thu, 10 Aug 2023 16:02:32 GMT, YizhePKU wrote: > This PR fixes a bug that causes arguments with whitespaces to be split into multiple arguments during restore. > > It contains two commits. The first commit is refactor only. It moves all side effects from `CracRestoreParameters` to the call sites, and changes the type of `CracRestoreParameters::args` from a single string to a `GrowableArray` of strings. Serialization code is also cleaned up a bit. > > The second commit fixes the bug by introducing a new pseudo property, `-DCRaCJavaMainArgs`, that is set in `JavaMain`. An instance of `JavaMainArgs` (containing `argc` and `argv`) is stored as extra info of the property, which is later extracted in `Arguments::parse_options_for_restore` and passed to `crac::restore`. > > Potential issues: > > * We use `putenv` to modify environment variables, which expects `char*`. In this PR, I'm `const_cast`ing from `const char*` to `char*`, since I believe `putenv` doesn't actually modify the string. Is that OK? Maybe rewriting with `setenv` would be better? > * `read_growable_array` is implemented by reading byte-at-a-time from the shared memory. Will it be too slow? I could rewrite it to read everything at once (like the original code did), but the current implementation is cute and I kinda want to keep it. I like the more structured serialization/deserialization of the args, however the binary compatibility and reuse of structures makes me worried. Could you also add a test that demonstrates arguments with spaces, and zero-length arguments? src/hotspot/share/runtime/arguments.cpp line 2287: > 2285: } > 2286: } > 2287: else if (strcmp(key, "CRaCJavaMainArgs") == 0) { System properties usually use the dotted lowercase notation; this looks more like a VM options. I suggest something like `jdk.internal.crac.mainArgs`. src/hotspot/share/runtime/arguments.hpp line 151: > 149: class ScopedVMInitArgs; > 150: > 151: // Arguments passed from JavaMain via the property CRaCJavaMainArgs Duplicating structure definition and relying on the same ABI is too fragile in my opinion. I understand that the options for passing across libraries is limited; escaped sequence as the actual value would be a better choice, though. I was also considering the `extraInfo` with a null-separated and null-null-terminated data, but individual argument can be empty so this wouldn't fly. src/hotspot/share/runtime/crac.cpp line 551: > 549: // Write a GrowableArray to fd. > 550: // On error, return false. > 551: static bool write_growable_array(int fd, GrowableArray* array) { Nitpick: can the array be const? src/java.base/share/classes/jdk/crac/Core.java line 233: > 231: if (newArguments != null && newArguments.length > 0) { > 232: try { > 233: Method newMain = AccessController.doPrivileged(new PrivilegedExceptionAction() { I think that with recent changes the anonymous class could be converted back into more concise lambda, could you try? ------------- PR Review: https://git.openjdk.org/crac/pull/101#pullrequestreview-1578139174 PR Review Comment: https://git.openjdk.org/crac/pull/101#discussion_r1294342755 PR Review Comment: https://git.openjdk.org/crac/pull/101#discussion_r1294328755 PR Review Comment: https://git.openjdk.org/crac/pull/101#discussion_r1294364359 PR Review Comment: https://git.openjdk.org/crac/pull/101#discussion_r1294311178 From duke at openjdk.org Tue Aug 29 11:47:03 2023 From: duke at openjdk.org (YizhePKU) Date: Tue, 29 Aug 2023 11:47:03 GMT Subject: [crac] RFR: Fix: arguments supplied to restore are split with whitespace Message-ID: This PR fixes a bug that causes arguments with whitespaces to be split into multiple arguments during restore. It contains two commits. The first commit is refactor only. It moves all side effects from `CracRestoreParameters` to the call sites, and changes the type of `CracRestoreParameters::args` from a single string to a `GrowableArray` of strings. Serialization code is also cleaned up a bit. The second commit fixes the bug by introducing a new pseudo property, `-DCRaCJavaMainArgs`, that is set in `JavaMain`. An instance of `JavaMainArgs` (containing `argc` and `argv`) is stored as extra info of the property, which is later extracted in `Arguments::parse_options_for_restore` and passed to `crac::restore`. Potential issues: * We use `putenv` to modify environment variables, which expects `char*`. In this PR, I'm `const_cast`ing from `const char*` to `char*`, since I believe `putenv` doesn't actually modify the string. Is that OK? Maybe rewriting with `setenv` would be better? * `read_growable_array` is implemented by reading byte-at-a-time from the shared memory. Will it be too slow? I could rewrite it to read everything at once (like the original code did), but the current implementation is cute and I kinda want to keep it. ------------- Commit messages: - Rename property to jdk.internal.crac.mainArgs - Add const where it makes sense - Fix: restore with arguments now property parses input with whitespace - Refactor: remove side effects from CracRestoreParameters Changes: https://git.openjdk.org/crac/pull/101/files Webrev: https://webrevs.openjdk.org/?repo=crac&pr=101&range=00 Stats: 458 lines in 8 files changed: 234 ins; 164 del; 60 mod Patch: https://git.openjdk.org/crac/pull/101.diff Fetch: git fetch https://git.openjdk.org/crac.git pull/101/head:pull/101 PR: https://git.openjdk.org/crac/pull/101 From duke at openjdk.org Tue Aug 29 11:47:07 2023 From: duke at openjdk.org (YizhePKU) Date: Tue, 29 Aug 2023 11:47:07 GMT Subject: [crac] RFR: Fix: arguments supplied to restore are split with whitespace In-Reply-To: References: Message-ID: On Tue, 15 Aug 2023 08:49:33 GMT, Radim Vansa wrote: >> This PR fixes a bug that causes arguments with whitespaces to be split into multiple arguments during restore. >> >> It contains two commits. The first commit is refactor only. It moves all side effects from `CracRestoreParameters` to the call sites, and changes the type of `CracRestoreParameters::args` from a single string to a `GrowableArray` of strings. Serialization code is also cleaned up a bit. >> >> The second commit fixes the bug by introducing a new pseudo property, `-DCRaCJavaMainArgs`, that is set in `JavaMain`. An instance of `JavaMainArgs` (containing `argc` and `argv`) is stored as extra info of the property, which is later extracted in `Arguments::parse_options_for_restore` and passed to `crac::restore`. >> >> Potential issues: >> >> * We use `putenv` to modify environment variables, which expects `char*`. In this PR, I'm `const_cast`ing from `const char*` to `char*`, since I believe `putenv` doesn't actually modify the string. Is that OK? Maybe rewriting with `setenv` would be better? >> * `read_growable_array` is implemented by reading byte-at-a-time from the shared memory. Will it be too slow? I could rewrite it to read everything at once (like the original code did), but the current implementation is cute and I kinda want to keep it. > > src/hotspot/share/runtime/arguments.cpp line 2287: > >> 2285: } >> 2286: } >> 2287: else if (strcmp(key, "CRaCJavaMainArgs") == 0) { > > System properties usually use the dotted lowercase notation; this looks more like a VM options. I suggest something like `jdk.internal.crac.mainArgs`. Done. > I was also considering the `extraInfo` with a null-separated and null-null-terminated data, but individual argument can be empty so this wouldn't fly. Actually, that might just work, as long as we pass `argc` along. I'll give it a try. > src/hotspot/share/runtime/crac.cpp line 551: > >> 549: // Write a GrowableArray to fd. >> 550: // On error, return false. >> 551: static bool write_growable_array(int fd, GrowableArray* array) { > > Nitpick: can the array be const? Done. > src/java.base/share/classes/jdk/crac/Core.java line 233: > >> 231: if (newArguments != null && newArguments.length > 0) { >> 232: try { >> 233: Method newMain = AccessController.doPrivileged(new PrivilegedExceptionAction() { > > I think that with recent changes the anonymous class could be converted back into more concise lambda, could you try? It's a good idea, but I think it's better to leave this to another PR. ------------- PR Review Comment: https://git.openjdk.org/crac/pull/101#discussion_r1297455622 PR Review Comment: https://git.openjdk.org/crac/pull/101#discussion_r1297168945 PR Review Comment: https://git.openjdk.org/crac/pull/101#discussion_r1297433473 PR Review Comment: https://git.openjdk.org/crac/pull/101#discussion_r1297439722 From duke at openjdk.org Tue Aug 29 11:47:08 2023 From: duke at openjdk.org (YizhePKU) Date: Tue, 29 Aug 2023 11:47:08 GMT Subject: [crac] RFR: Fix: arguments supplied to restore are split with whitespace In-Reply-To: References: Message-ID: <-4xzq4Z6J68iezAtgK9mvrJj_zBElgV7P2SRwbL5XgQ=.23ee962f-6a5a-4814-87c4-fdef72f61f47@github.com> On Thu, 17 Aug 2023 12:43:26 GMT, YizhePKU wrote: >> src/hotspot/share/runtime/arguments.hpp line 151: >> >>> 149: class ScopedVMInitArgs; >>> 150: >>> 151: // Arguments passed from JavaMain via the property CRaCJavaMainArgs >> >> Duplicating structure definition and relying on the same ABI is too fragile in my opinion. I understand that the options for passing across libraries is limited; escaped sequence as the actual value would be a better choice, though. I was also considering the `extraInfo` with a null-separated and null-null-terminated data, but individual argument can be empty so this wouldn't fly. > >> I was also considering the `extraInfo` with a null-separated and null-null-terminated data, but individual argument can be empty so this wouldn't fly. > > Actually, that might just work, as long as we pass `argc` along. I'll give it a try. > Duplicating structure definition and relying on the same ABI is too fragile in my opinion. If you mean `JavaMainArgs` could change its content without us noticing, then maybe it's better that we define our own struct. Otherwise, duplicating structure definition is actually the same thing as defining it in a header file and then including the header twice, since `#include` in C++ is literally copy-and-paste. ------------- PR Review Comment: https://git.openjdk.org/crac/pull/101#discussion_r1297414439 From akozlov at openjdk.org Thu Aug 31 16:09:04 2023 From: akozlov at openjdk.org (Anton Kozlov) Date: Thu, 31 Aug 2023 16:09:04 GMT Subject: [crac] RFR: Update copyrights [v2] In-Reply-To: References: Message-ID: > Add missing copyrights and licenses. Anton Kozlov has updated the pull request with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. The pull request contains three additional commits since the last revision: - Merge remote-tracking branch 'jdk/crac/crac' into update-copyrights - Fix copyright years - Update copyrights ------------- Changes: - all: https://git.openjdk.org/crac/pull/99/files - new: https://git.openjdk.org/crac/pull/99/files/d9a37eb7..7eeb4c1b Webrevs: - full: https://webrevs.openjdk.org/?repo=crac&pr=99&range=01 - incr: https://webrevs.openjdk.org/?repo=crac&pr=99&range=00-01 Stats: 4020512 lines in 25926 files changed: 2455074 ins; 1261717 del; 303721 mod Patch: https://git.openjdk.org/crac/pull/99.diff Fetch: git fetch https://git.openjdk.org/crac.git pull/99/head:pull/99 PR: https://git.openjdk.org/crac/pull/99 From noreply at github.com Thu Aug 10 15:54:29 2023 From: noreply at github.com (Anton Kozlov) Date: Thu, 10 Aug 2023 15:54:29 -0000 Subject: [CRaC/criu] d62b80: Port unprivileged restore to aarch64 Message-ID: Branch: refs/heads/crac Home: https://github.com/CRaC/criu Commit: d62b80e84022ed4da31edac6251f27de41c37bf1 https://github.com/CRaC/criu/commit/d62b80e84022ed4da31edac6251f27de41c37bf1 Author: Anton Kozlov Date: 2023-08-10 (Thu, 10 Aug 2023) Changed paths: M criu/arch/aarch64/include/asm/restorer.h M criu/arch/x86/include/asm/restorer.h Log Message: ----------- Port unprivileged restore to aarch64 From noreply at github.com Thu Aug 10 16:10:37 2023 From: noreply at github.com (Anton Kozlov) Date: Thu, 10 Aug 2023 16:10:37 -0000 Subject: [CRaC/criu] Message-ID: Branch: refs/tags/release-1.4 Home: https://github.com/CRaC/criu From noreply at github.com Wed Aug 30 11:27:03 2023 From: noreply at github.com (Jan Kratochvil) Date: Wed, 30 Aug 2023 11:27:03 -0000 Subject: [CRaC/criu] daeef8: Make the binary less dependent on the build system... Message-ID: Branch: refs/heads/crac Home: https://github.com/CRaC/criu Commit: daeef8f9dd173363ca077c18c803478d468fcdf2 https://github.com/CRaC/criu/commit/daeef8f9dd173363ca077c18c803478d468fcdf2 Author: Jan Kratochvil Date: 2023-08-30 (Wed, 30 Aug 2023) Changed paths: M Makefile.config Log Message: ----------- Make the binary less dependent on the build system (#11) Co-authored-by: Jan Kratochvil