From rvansa at openjdk.org Mon Jun 2 14:56:20 2025 From: rvansa at openjdk.org (Radim Vansa) Date: Mon, 2 Jun 2025 14:56:20 GMT Subject: [crac] RFR: 8358161: [CRaC] Make VM-controlled options engine-dependent In-Reply-To: References: Message-ID: On Fri, 30 May 2025 12:49:48 GMT, Timofei Pushkin wrote: > "Configuration options controlled by the JVM: ..." section of `-XX:CRaCEngineOptions=help` will now only list the options which are supported by the current engine. src/hotspot/share/runtime/crac.cpp line 339: > 337: tty->print_raw(conf_doc); // Doc string ends with CR by convention > 338: > 339: const GrowableArrayCHeap *controlled_opts = engine.vm_controlled_options(); This looks like we're allocating on CHeap but the growable array is not deleted? ------------- PR Review Comment: https://git.openjdk.org/crac/pull/235#discussion_r2121404000 From dcherepanov at openjdk.org Tue Jun 3 12:33:27 2025 From: dcherepanov at openjdk.org (Dmitry Cherepanov) Date: Tue, 3 Jun 2025 12:33:27 GMT Subject: [crac] RFR: Merge jdk:jdk-25+14 Message-ID: This PR includes merges for tags between jdk-25+11 and jdk-25+14, attaching output of --diff-merges=remerge for each merge
jdk-25+11 commit e16e79c9aa23cbb795bfe44f3562ced6261841f3 Merge: 19d203aee40 0131c1bfd8c Author: Dmitry Cherepanov Date: Mon Jun 2 14:36:10 2025 +0400 Merge with jdk-25+11 diff --git a/make/test/BuildTestLib.gmk b/make/test/BuildTestLib.gmk remerge CONFLICT (content): Merge conflict in make/test/BuildTestLib.gmk index a37fbf7dd26..2a7ffaa525e 100644 --- a/make/test/BuildTestLib.gmk +++ b/make/test/BuildTestLib.gmk @@ -53,17 +53,13 @@ $(eval $(call SetupJavaCompilation, BUILD_WB_JAR, \ TARGETS += $(BUILD_WB_JAR) ifeq ($(call isTargetOs, linux), false) - BUILD_TEST_LIB_JAR_EXCLUDES := jdk/test/lib/containers + BUILD_TEST_LIB_JAR_EXCLUDES := jdk/test/lib/containers/cgroup jdk/test/lib/containers/systemd endif $(eval $(call SetupJavaCompilation, BUILD_TEST_LIB_JAR, \ TARGET_RELEASE := $(TARGET_RELEASE_NEWJDK_UPGRADED), \ SRC := $(TEST_LIB_SOURCE_DIR), \ -<<<<<<< 19d203aee40 (8357984: [CRaC] Improve new properties installation code) - EXCLUDES := jdk/test/lib/containers/cgroup jdk/test/lib/containers/systemd jdk/test/lib/security, \ -======= EXCLUDES := $(BUILD_TEST_LIB_JAR_EXCLUDES), \ ->>>>>>> 0131c1bfd8c (8349953: Avoid editing AOTConfiguration file in "make test JTREG=AOT_JDK=true") BIN := $(TEST_LIB_SUPPORT)/test-lib_classes, \ HEADERS := $(TEST_LIB_SUPPORT)/test-lib_headers, \ JAR := $(TEST_LIB_SUPPORT)/test-lib.jar, \
Resolved conflict after [JDK-8346050](https://bugs.openjdk.org/browse/JDK-8346050)
jdk-25+12 commit 5d7098526ef5333eb8002ef7611c0e2441bccef8 Merge: e16e79c9aa2 78c18cfbcee Author: Dmitry Cherepanov Date: Tue Jun 3 00:05:47 2025 +0400 Merge with jdk-25+12 diff --git a/src/hotspot/share/classfile/classLoader.cpp b/src/hotspot/share/classfile/classLoader.cpp remerge CONFLICT (content): Merge conflict in src/hotspot/share/classfile/classLoader.cpp index 2963d66d561..2449dbc46b4 100644 --- a/src/hotspot/share/classfile/classLoader.cpp +++ b/src/hotspot/share/classfile/classLoader.cpp @@ -745,7 +745,6 @@ void ClassLoader::add_to_boot_append_entries(ClassPathEntry *new_entry) { } } -<<<<<<< e16e79c9aa2 (Merge with jdk-25+11) GrowableArray ClassLoader::get_classpath_entry_fds() { GrowableArray fds; assert(Thread::current()->is_VM_thread(), "should be called from VM op"); @@ -755,58 +754,9 @@ GrowableArray ClassLoader::get_classpath_entry_fds() { fds.append(((ClassPathZipEntry *) entry)->get_fd()); } } -#if INCLUDE_CDS - // Probably not needed as _app_classpath_entries is filled only when dumping CDS classes - for (ClassPathEntry *entry = _app_classpath_entries; entry != nullptr; entry = entry->next()) { - if (entry->is_jar_file()) { - fds.append(((ClassPathZipEntry *) entry)->get_fd()); - } - } -#endif // INCLUDE_CDS return fds; } -// Record the path entries specified in -cp during dump time. The recorded -// information will be used at runtime for loading the archived app classes. -// -// Note that at dump time, ClassLoader::_app_classpath_entries are NOT used for -// loading app classes. Instead, the app class are loaded by the -// jdk/internal/loader/ClassLoaders$AppClassLoader instance. -bool ClassLoader::add_to_app_classpath_entries(JavaThread* current, - ClassPathEntry* entry, - bool check_for_duplicates) { -#if INCLUDE_CDS - assert(entry != nullptr, "ClassPathEntry should not be nullptr"); - ClassPathEntry* e = _app_classpath_entries; - if (check_for_duplicates) { - while (e != nullptr) { - if (strcmp(e->name(), entry->name()) == 0 && - e->from_class_path_attr() == entry->from_class_path_attr()) { - // entry already exists - return false; - } - e = e->next(); - } - } - - // The entry does not exist, add to the list - if (_app_classpath_entries == nullptr) { - assert(_last_app_classpath_entry == nullptr, "Sanity"); - _app_classpath_entries = _last_app_classpath_entry = entry; - } else { - _last_app_classpath_entry->set_next(entry); - _last_app_classpath_entry = entry; - } - - if (entry->is_jar_file()) { - ClassLoaderExt::process_jar_manifest(current, entry); - } -#endif - return true; -} - -======= ->>>>>>> 78c18cfbcee (8349399: GHA: Add static-jdk build on linux-x64) // Returns true IFF the file/dir exists and the entry was successfully created. bool ClassLoader::update_class_path_entry_list(JavaThread* current, const char *path) { struct stat st; diff --git a/src/hotspot/share/logging/logAsyncWriter.cpp b/src/hotspot/share/logging/logAsyncWriter.cpp remerge CONFLICT (content): Merge conflict in src/hotspot/share/logging/logAsyncWriter.cpp index 8214650364f..b9bdf787ea8 100644 --- a/src/hotspot/share/logging/logAsyncWriter.cpp +++ b/src/hotspot/share/logging/logAsyncWriter.cpp @@ -211,19 +211,14 @@ bool AsyncLogWriter::enqueue(LogFileStreamOutput& output, LogMessageBuffer::Iter } AsyncLogWriter::AsyncLogWriter() -<<<<<<< e16e79c9aa2 (Merge with jdk-25+11) - : _flush_sem(0), _lock(), _block_async(), _data_available(false), - _initialized(false), - _stats() { -======= : _flush_sem(0), _producer_lock(), _consumer_lock(), + _block_async(), _data_available(false), _initialized(false), _stats(), _stalled_message(nullptr) { ->>>>>>> 78c18cfbcee (8349399: GHA: Add static-jdk build on linux-x64) size_t size = AsyncLogBufferSize / 2; _buffer = new Buffer(size); @@ -295,14 +290,11 @@ void AsyncLogWriter::run() { }); _data_available = false; } -<<<<<<< e16e79c9aa2 (Merge with jdk-25+11) - write(snapshot); + + bool saw_flush_token = write(snapshot); _block_async.lock(); _block_async.unlock(); -======= - - bool saw_flush_token = write(snapshot); // Any stalled message must be written *after* the buffer has been written. // This is because we try hard to output messages in program-order. @@ -318,7 +310,6 @@ void AsyncLogWriter::run() { if (saw_flush_token) { _flush_sem.signal(1); } ->>>>>>> 78c18cfbcee (8349399: GHA: Add static-jdk build on linux-x64) } } diff --git a/src/hotspot/share/logging/logAsyncWriter.hpp b/src/hotspot/share/logging/logAsyncWriter.hpp remerge CONFLICT (content): Merge conflict in src/hotspot/share/logging/logAsyncWriter.hpp index 72d86571ef6..7d678e8f7be 100644 --- a/src/hotspot/share/logging/logAsyncWriter.hpp +++ b/src/hotspot/share/logging/logAsyncWriter.hpp @@ -162,17 +162,13 @@ class AsyncLogWriter : public NonJavaThread { static AsyncLogWriter* _instance; Semaphore _flush_sem; // Can't use a Monitor here as we need a low-level API that can be used without Thread::current(). -<<<<<<< e16e79c9aa2 (Merge with jdk-25+11) - PlatformMonitor _lock; - // for asynchronous thread run() - PlatformMonitor _block_async; -======= // Producers take both locks in the order producer lock and then consumer lock. // The consumer protects the buffers and performs all communication between producer and consumer via wait/notify. // This allows a producer to await progress from the consumer thread (by only releasing the producer lock)), whilst preventing all other producers from progressing. PlatformMonitor _producer_lock; PlatformMonitor _consumer_lock; ->>>>>>> 78c18cfbcee (8349399: GHA: Add static-jdk build on linux-x64) + // for asynchronous thread run() + PlatformMonitor _block_async; bool _data_available; // _initialized is set to true if the constructor succeeds volatile bool _initialized; diff --git a/src/hotspot/share/logging/logConfiguration.cpp b/src/hotspot/share/logging/logConfiguration.cpp remerge CONFLICT (content): Merge conflict in src/hotspot/share/logging/logConfiguration.cpp index a217029aad3..2843ed7ac0a 100644 --- a/src/hotspot/share/logging/logConfiguration.cpp +++ b/src/hotspot/share/logging/logConfiguration.cpp @@ -724,9 +724,6 @@ void LogConfiguration::notify_update_listeners() { } } -<<<<<<< e16e79c9aa2 (Merge with jdk-25+11) -bool LogConfiguration::_async_mode = false; - bool LogConfiguration::is_fd_used(int fd) { assert(fd != -1, "fd must be valid"); for (size_t i = 0; i < _n_outputs; i++) { @@ -747,7 +744,8 @@ void LogConfiguration::reopen() { for (size_t i = 0; i < _n_outputs; i++) { _outputs[i]->reopen(); } -======= +} + LogConfiguration::AsyncMode LogConfiguration::_async_mode = AsyncMode::Off; bool LogConfiguration::parse_async_argument(const char* async_tail) { @@ -764,5 +762,4 @@ bool LogConfiguration::parse_async_argument(const char* async_tail) { ret = false; } return ret; ->>>>>>> 78c18cfbcee (8349399: GHA: Add static-jdk build on linux-x64) }
Resolved conflicts after [JDK-8280682](https://bugs.openjdk.org/browse/JDK-8280682) and [JDK-8323807](https://bugs.openjdk.org/browse/JDK-8323807)
jdk-25+13 commit 17e0c040f48f9aaad95f41e53936f2b1276bbee0 Merge: 5d7098526ef 11a37c829c1 Author: Dmitry Cherepanov Date: Tue Jun 3 00:51:26 2025 +0400 Merge with jdk-25+13 diff --git a/src/java.base/share/classes/jdk/internal/jimage/BasicImageReader.java b/src/java.base/share/classes/jdk/internal/jimage/BasicImageReader.java remerge CONFLICT (content): Merge conflict in src/java.base/share/classes/jdk/internal/jimage/BasicImageReader.java index 2fafade2835..1ffb125ce7a 100644 --- a/src/java.base/share/classes/jdk/internal/jimage/BasicImageReader.java +++ b/src/java.base/share/classes/jdk/internal/jimage/BasicImageReader.java @@ -85,11 +85,7 @@ public Boolean run() { private final Decompressor decompressor; private Object cracResource; -<<<<<<< 5d7098526ef (Merge with jdk-25+12) - @SuppressWarnings("this-escape") -======= - @SuppressWarnings({ "removal", "this-escape", "suppression" }) ->>>>>>> 11a37c829c1 (8351165: Remove unused includes from vmStructs) + @SuppressWarnings({ "this-escape", "suppression" }) protected BasicImageReader(Path path, ByteOrder byteOrder) throws IOException { this.imagePath = Objects.requireNonNull(path);
Resolved conflict after [JDK-8343478](https://bugs.openjdk.org/browse/JDK-8343478)
jdk-25+14 commit dfd414f20be9f7b244f8d3050c648aacab7057f5 (HEAD -> merge-jdk, dmitry-crac/merge-jdk) Merge: 17e0c040f48 a347ecdedc0 Author: Dmitry Cherepanov Date: Tue Jun 3 01:26:54 2025 +0400 Merge with jdk-25+14 diff --git a/src/java.base/unix/classes/sun/nio/ch/DatagramDispatcher.java b/src/java.base/unix/classes/sun/nio/ch/DatagramDispatcher.java remerge CONFLICT (content): Merge conflict in src/java.base/unix/classes/sun/nio/ch/DatagramDispatcher.java index 76fde4077cf..8f1692f0e4d 100644 --- a/src/java.base/unix/classes/sun/nio/ch/DatagramDispatcher.java +++ b/src/java.base/unix/classes/sun/nio/ch/DatagramDispatcher.java @@ -59,18 +59,7 @@ long writev(FileDescriptor fd, long address, int len) throws IOException { return writev0(fd, address, len); } -<<<<<<< 17e0c040f48 (Merge with jdk-25+13) - void close(FileDescriptor fd) throws IOException { - closeAndMark(fd); - } - - void preClose(FileDescriptor fd) throws IOException { - preClose0(fd); - } - -======= @Override ->>>>>>> a347ecdedc0 (8350905: Shenandoah: Releasing a WeakHandle's referent may extend its lifetime) void dup(FileDescriptor fd1, FileDescriptor fd2) throws IOException { dup0(fd1, fd2); } diff --git a/src/java.base/unix/classes/sun/nio/ch/SocketDispatcher.java b/src/java.base/unix/classes/sun/nio/ch/SocketDispatcher.java remerge CONFLICT (content): Merge conflict in src/java.base/unix/classes/sun/nio/ch/SocketDispatcher.java index 2329ccfd66d..ebc4b2e8fbe 100644 --- a/src/java.base/unix/classes/sun/nio/ch/SocketDispatcher.java +++ b/src/java.base/unix/classes/sun/nio/ch/SocketDispatcher.java @@ -70,17 +70,6 @@ long writev(FileDescriptor fd, long address, int len) throws IOException { return writev0(fd, address, len); } -<<<<<<< 17e0c040f48 (Merge with jdk-25+13) - void close(FileDescriptor fd) throws IOException { - closeAndMark(fd); - } - - void preClose(FileDescriptor fd) throws IOException { - preClose0(fd); - } - -======= ->>>>>>> a347ecdedc0 (8350905: Shenandoah: Releasing a WeakHandle's referent may extend its lifetime) // -- Native methods -- private static native int read0(FileDescriptor fd, long address, int len) diff --git a/src/java.base/unix/classes/sun/nio/ch/UnixDispatcher.java b/src/java.base/unix/classes/sun/nio/ch/UnixDispatcher.java remerge CONFLICT (content): Merge conflict in src/java.base/unix/classes/sun/nio/ch/UnixDispatcher.java index 934f57bea9e..0af939d24bc 100644 --- a/src/java.base/unix/classes/sun/nio/ch/UnixDispatcher.java +++ b/src/java.base/unix/classes/sun/nio/ch/UnixDispatcher.java @@ -37,7 +37,6 @@ abstract class UnixDispatcher extends NativeDispatcher { -<<<<<<< 17e0c040f48 (Merge with jdk-25+13) static class ResourceProxy implements JDKResource { @Override public void beforeCheckpoint(Context context) throws Exception { @@ -58,14 +57,11 @@ public void afterRestore(Context context) static ResourceProxy resourceProxy = new ResourceProxy(); -======= @Override ->>>>>>> a347ecdedc0 (8350905: Shenandoah: Releasing a WeakHandle's referent may extend its lifetime) void close(FileDescriptor fd) throws IOException { - close0(fd); + closeAndMark(fd); } -<<<<<<< 17e0c040f48 (Merge with jdk-25+13) void preClose(FileDescriptor fd) throws IOException { boolean doPreclose = true; synchronized (closeLock) { @@ -120,7 +116,6 @@ static void closeAndMark(FileDescriptor fd) throws IOException { fdAccess.close(fd); } -======= @Override void implPreClose(FileDescriptor fd, long reader, long writer) throws IOException { preClose0(fd); @@ -130,7 +125,6 @@ void implPreClose(FileDescriptor fd, long reader, long writer) throws IOExceptio NativeThread.signal(writer); } ->>>>>>> a347ecdedc0 (8350905: Shenandoah: Releasing a WeakHandle's referent may extend its lifetime) private static native void close0(FileDescriptor fd) throws IOException; private static native void preClose0(FileDescriptor fd) throws IOException;
Resolved conflicts after [JDK-8351458](https://bugs.openjdk.org/browse/JDK-8351458) ------------- Commit messages: - fix whitespace error - Merge with jdk-25+14 - 8350905: Shenandoah: Releasing a WeakHandle's referent may extend its lifetime - 8351699: Problem list com/sun/jdi/JdbStopInNotificationThreadTest.java with ZGC - 8351444: Shenandoah: Class Unloading may encounter recycled oops - 8351640: Print reason for making method not entrant - 8351142: Add JFR monitor deflation and statistics events - 8351881: Tidy complains about missing "alt" attribute - 8350982: -server|-client causes fatal exception on static JDK - 8303770: Remove Baltimore root certificate expiring in May 2025 - ... and 329 more: https://git.openjdk.org/crac/compare/19d203ae...00d3d867 The webrevs contain the adjustments done while merging with regards to each parent branch: - crac: https://webrevs.openjdk.org/?repo=crac&pr=236&range=00.0 - jdk:jdk-25+14: https://webrevs.openjdk.org/?repo=crac&pr=236&range=00.1 Changes: https://git.openjdk.org/crac/pull/236/files Stats: 91105 lines in 2011 files changed: 44366 ins; 31941 del; 14798 mod Patch: https://git.openjdk.org/crac/pull/236.diff Fetch: git fetch https://git.openjdk.org/crac.git pull/236/head:pull/236 PR: https://git.openjdk.org/crac/pull/236 From rvansa at openjdk.org Tue Jun 3 12:33:27 2025 From: rvansa at openjdk.org (Radim Vansa) Date: Tue, 3 Jun 2025 12:33:27 GMT Subject: [crac] RFR: Merge jdk:jdk-25+14 In-Reply-To: References: Message-ID: On Tue, 3 Jun 2025 10:07:02 GMT, Dmitry Cherepanov wrote: > This PR includes merges for tags between jdk-25+11 and jdk-25+14, attaching output of --diff-merges=remerge for each merge > >
> > jdk-25+11 > > > commit e16e79c9aa23cbb795bfe44f3562ced6261841f3 > Merge: 19d203aee40 0131c1bfd8c > Author: Dmitry Cherepanov > Date: Mon Jun 2 14:36:10 2025 +0400 > > Merge with jdk-25+11 > > diff --git a/make/test/BuildTestLib.gmk b/make/test/BuildTestLib.gmk > remerge CONFLICT (content): Merge conflict in make/test/BuildTestLib.gmk > index a37fbf7dd26..2a7ffaa525e 100644 > --- a/make/test/BuildTestLib.gmk > +++ b/make/test/BuildTestLib.gmk > @@ -53,17 +53,13 @@ $(eval $(call SetupJavaCompilation, BUILD_WB_JAR, \ > TARGETS += $(BUILD_WB_JAR) > > ifeq ($(call isTargetOs, linux), false) > - BUILD_TEST_LIB_JAR_EXCLUDES := jdk/test/lib/containers > + BUILD_TEST_LIB_JAR_EXCLUDES := jdk/test/lib/containers/cgroup jdk/test/lib/containers/systemd > endif > > $(eval $(call SetupJavaCompilation, BUILD_TEST_LIB_JAR, \ > TARGET_RELEASE := $(TARGET_RELEASE_NEWJDK_UPGRADED), \ > SRC := $(TEST_LIB_SOURCE_DIR), \ > -<<<<<<< 19d203aee40 (8357984: [CRaC] Improve new properties installation code) > - EXCLUDES := jdk/test/lib/containers/cgroup jdk/test/lib/containers/systemd jdk/test/lib/security, \ > -======= > EXCLUDES := $(BUILD_TEST_LIB_JAR_EXCLUDES), \ > ->>>>>>> 0131c1bfd8c (8349953: Avoid editing AOTConfiguration file in "make test JTREG=AOT_JDK=true") > BIN := $(TEST_LIB_SUPPORT)/test-lib_classes, \ > HEADERS := $(TEST_LIB_SUPPORT)/test-lib_headers, \ > JAR := $(TEST_LIB_SUPPORT)/test-lib.jar, \ > > >
> > Resolved conflict after [JDK-8346050](https://bugs.openjdk.org/browse/JDK-8346050) > >
> > jdk-25+12 > > > commit 5d7098526ef5333eb8002ef7611c0e2441bccef8 > Merge: e16e79c9aa2 78c18cfbcee > Author: Dmitry Cherepanov > Date: Tue Jun 3 00:05:47 2025 +0400 > > Merge with jdk-25+12 > > diff --git a/src/hotspot/share/classfile/classLoader.cpp b/src/hotspot/share/classfile/classLoader.cpp > remerge CONFLICT (content): Merge conflict in src/hotspot/share/classfile/classLoader.cpp > index 2963d66d561..2449dbc46b4 100644 > --- a/src/hotspot/share/classfile/classLoader.cpp > +++ b/src/hotspot/share/classfile/classLoader.cpp > @@ -745,7 +745,6 @@ void ClassLoader::add_to_boot_append_entries(ClassPathEntry *new_entry) { > } > } > > -<<<<<<< e16e79c9aa2 (Merge with jdk-25+11) > GrowableArray ClassLoader::get_classpath_entry_fds() { > GrowableArray fds; > assert(Thread::curren... Conflict resolution looks OK, please fix the check failure. ------------- PR Comment: https://git.openjdk.org/crac/pull/236#issuecomment-2934871944 From dcherepanov at openjdk.org Wed Jun 4 06:36:36 2025 From: dcherepanov at openjdk.org (Dmitry Cherepanov) Date: Wed, 4 Jun 2025 06:36:36 GMT Subject: [crac] RFR: Merge jdk:jdk-25+14 In-Reply-To: References: Message-ID: On Tue, 3 Jun 2025 11:49:07 GMT, Radim Vansa wrote: > Conflict resolution looks OK, please fix the check failure. Fixed, thanks. ------------- PR Comment: https://git.openjdk.org/crac/pull/236#issuecomment-2938768215 From tpushkin at openjdk.org Wed Jun 4 06:45:09 2025 From: tpushkin at openjdk.org (Timofei Pushkin) Date: Wed, 4 Jun 2025 06:45:09 GMT Subject: [crac] RFR: 8358161: [CRaC] Make VM-controlled options engine-dependent [v2] In-Reply-To: References: Message-ID: > "Configuration options controlled by the JVM: ..." section of `-XX:CRaCEngineOptions=help` will now only list the options which are supported by the current engine. Timofei Pushkin has updated the pull request incrementally with one additional commit since the last revision: Delete heap-allocated array ------------- Changes: - all: https://git.openjdk.org/crac/pull/235/files - new: https://git.openjdk.org/crac/pull/235/files/06ee5c1e..7ab7c142 Webrevs: - full: https://webrevs.openjdk.org/?repo=crac&pr=235&range=01 - incr: https://webrevs.openjdk.org/?repo=crac&pr=235&range=00-01 Stats: 1 line in 1 file changed: 1 ins; 0 del; 0 mod Patch: https://git.openjdk.org/crac/pull/235.diff Fetch: git fetch https://git.openjdk.org/crac.git pull/235/head:pull/235 PR: https://git.openjdk.org/crac/pull/235 From rvansa at openjdk.org Wed Jun 4 07:16:28 2025 From: rvansa at openjdk.org (Radim Vansa) Date: Wed, 4 Jun 2025 07:16:28 GMT Subject: [crac] RFR: 8358161: [CRaC] Make VM-controlled options engine-dependent [v2] In-Reply-To: References: Message-ID: <0Y9rkqWCKvlxUZf08hhDJhTB_ZYBRqn0wQVXrzRWOJM=.27cd59b8-48b9-4e73-8431-65dc794afed8@github.com> On Wed, 4 Jun 2025 06:45:09 GMT, Timofei Pushkin wrote: >> "Configuration options controlled by the JVM: ..." section of `-XX:CRaCEngineOptions=help` will now only list the options which are supported by the current engine. > > Timofei Pushkin has updated the pull request incrementally with one additional commit since the last revision: > > Delete heap-allocated array Marked as reviewed by rvansa (Committer). ------------- PR Review: https://git.openjdk.org/crac/pull/235#pullrequestreview-2895562229 From duke at openjdk.org Wed Jun 4 08:25:42 2025 From: duke at openjdk.org (duke) Date: Wed, 4 Jun 2025 08:25:42 GMT Subject: [crac] RFR: 8358161: [CRaC] Make VM-controlled options engine-dependent [v2] In-Reply-To: References: Message-ID: On Wed, 4 Jun 2025 06:45:09 GMT, Timofei Pushkin wrote: >> "Configuration options controlled by the JVM: ..." section of `-XX:CRaCEngineOptions=help` will now only list the options which are supported by the current engine. > > Timofei Pushkin has updated the pull request incrementally with one additional commit since the last revision: > > Delete heap-allocated array @TimPushkin Your change (at version 7ab7c142977ab78ed5c960070a7a12c616ac6709) is now ready to be sponsored by a Committer. ------------- PR Comment: https://git.openjdk.org/crac/pull/235#issuecomment-2939087442 From rvansa at openjdk.org Wed Jun 4 11:33:31 2025 From: rvansa at openjdk.org (Radim Vansa) Date: Wed, 4 Jun 2025 11:33:31 GMT Subject: [crac] RFR: Merge jdk:jdk-25+14 In-Reply-To: References: Message-ID: On Wed, 4 Jun 2025 06:33:34 GMT, Dmitry Cherepanov wrote: >> Conflict resolution looks OK, please fix the check failure. > >> Conflict resolution looks OK, please fix the check failure. > > Fixed, thanks. @dimitryc What's up with the windows testsuite? Looks like the run was cancelled? ------------- PR Comment: https://git.openjdk.org/crac/pull/236#issuecomment-2939668328 From tpushkin at openjdk.org Wed Jun 4 11:34:52 2025 From: tpushkin at openjdk.org (Timofei Pushkin) Date: Wed, 4 Jun 2025 11:34:52 GMT Subject: [crac] Integrated: 8358161: [CRaC] Make VM-controlled options engine-dependent In-Reply-To: References: Message-ID: On Fri, 30 May 2025 12:49:48 GMT, Timofei Pushkin wrote: > "Configuration options controlled by the JVM: ..." section of `-XX:CRaCEngineOptions=help` will now only list the options which are supported by the current engine. This pull request has now been integrated. Changeset: b078e304 Author: Timofei Pushkin Committer: Radim Vansa URL: https://git.openjdk.org/crac/commit/b078e3041be89ed8597bdbfc9e2e51e3084854d4 Stats: 27 lines in 3 files changed: 16 ins; 6 del; 5 mod 8358161: [CRaC] Make VM-controlled options engine-dependent Reviewed-by: rvansa ------------- PR: https://git.openjdk.org/crac/pull/235 From dcherepanov at openjdk.org Wed Jun 4 11:47:50 2025 From: dcherepanov at openjdk.org (Dmitry Cherepanov) Date: Wed, 4 Jun 2025 11:47:50 GMT Subject: [crac] RFR: Merge jdk:jdk-25+14 In-Reply-To: References: Message-ID: On Wed, 4 Jun 2025 06:33:34 GMT, Dmitry Cherepanov wrote: >> Conflict resolution looks OK, please fix the check failure. > >> Conflict resolution looks OK, please fix the check failure. > > Fixed, thanks. > @dimitryc What's up with the windows testsuite? Looks like the run was cancelled? Yes, Windows jobs were automatically cancelled due to deprecation of windows-2019 runners. It's unrelated to the merge. Upgrade to windows-2025 runners is tracked by [JDK-8358538](https://bugs.openjdk.org/browse/JDK-8358538). Looks like we should cherry-pick the patch after it's integrated upstream. ------------- PR Comment: https://git.openjdk.org/crac/pull/236#issuecomment-2939717553 From dcherepanov at openjdk.org Thu Jun 5 06:58:56 2025 From: dcherepanov at openjdk.org (Dmitry Cherepanov) Date: Thu, 5 Jun 2025 06:58:56 GMT Subject: [crac] RFR: Merge jdk:jdk-25+14 [v2] In-Reply-To: References: Message-ID: > This PR includes merges for tags between jdk-25+11 and jdk-25+14, attaching output of --diff-merges=remerge for each merge > >
> > jdk-25+11 > > > commit e16e79c9aa23cbb795bfe44f3562ced6261841f3 > Merge: 19d203aee40 0131c1bfd8c > Author: Dmitry Cherepanov > Date: Mon Jun 2 14:36:10 2025 +0400 > > Merge with jdk-25+11 > > diff --git a/make/test/BuildTestLib.gmk b/make/test/BuildTestLib.gmk > remerge CONFLICT (content): Merge conflict in make/test/BuildTestLib.gmk > index a37fbf7dd26..2a7ffaa525e 100644 > --- a/make/test/BuildTestLib.gmk > +++ b/make/test/BuildTestLib.gmk > @@ -53,17 +53,13 @@ $(eval $(call SetupJavaCompilation, BUILD_WB_JAR, \ > TARGETS += $(BUILD_WB_JAR) > > ifeq ($(call isTargetOs, linux), false) > - BUILD_TEST_LIB_JAR_EXCLUDES := jdk/test/lib/containers > + BUILD_TEST_LIB_JAR_EXCLUDES := jdk/test/lib/containers/cgroup jdk/test/lib/containers/systemd > endif > > $(eval $(call SetupJavaCompilation, BUILD_TEST_LIB_JAR, \ > TARGET_RELEASE := $(TARGET_RELEASE_NEWJDK_UPGRADED), \ > SRC := $(TEST_LIB_SOURCE_DIR), \ > -<<<<<<< 19d203aee40 (8357984: [CRaC] Improve new properties installation code) > - EXCLUDES := jdk/test/lib/containers/cgroup jdk/test/lib/containers/systemd jdk/test/lib/security, \ > -======= > EXCLUDES := $(BUILD_TEST_LIB_JAR_EXCLUDES), \ > ->>>>>>> 0131c1bfd8c (8349953: Avoid editing AOTConfiguration file in "make test JTREG=AOT_JDK=true") > BIN := $(TEST_LIB_SUPPORT)/test-lib_classes, \ > HEADERS := $(TEST_LIB_SUPPORT)/test-lib_headers, \ > JAR := $(TEST_LIB_SUPPORT)/test-lib.jar, \ > > >
> > Resolved conflict after [JDK-8346050](https://bugs.openjdk.org/browse/JDK-8346050) > >
> > jdk-25+12 > > > commit 5d7098526ef5333eb8002ef7611c0e2441bccef8 > Merge: e16e79c9aa2 78c18cfbcee > Author: Dmitry Cherepanov > Date: Tue Jun 3 00:05:47 2025 +0400 > > Merge with jdk-25+12 > > diff --git a/src/hotspot/share/classfile/classLoader.cpp b/src/hotspot/share/classfile/classLoader.cpp > remerge CONFLICT (content): Merge conflict in src/hotspot/share/classfile/classLoader.cpp > index 2963d66d561..2449dbc46b4 100644 > --- a/src/hotspot/share/classfile/classLoader.cpp > +++ b/src/hotspot/share/classfile/classLoader.cpp > @@ -745,7 +745,6 @@ void ClassLoader::add_to_boot_append_entries(ClassPathEntry *new_entry) { > } > } > > -<<<<<<< e16e79c9aa2 (Merge with jdk-25+11) > GrowableArray ClassLoader::get_classpath_entry_fds() { > GrowableArray fds; > assert(Thread::curren... Dmitry Cherepanov has updated the pull request incrementally with one additional commit since the last revision: update to windows-2025 ------------- Changes: - all: https://git.openjdk.org/crac/pull/236/files - new: https://git.openjdk.org/crac/pull/236/files/00d3d867..a6939db0 Webrevs: - full: https://webrevs.openjdk.org/?repo=crac&pr=236&range=01 - incr: https://webrevs.openjdk.org/?repo=crac&pr=236&range=00-01 Stats: 6 lines in 2 files changed: 0 ins; 0 del; 6 mod Patch: https://git.openjdk.org/crac/pull/236.diff Fetch: git fetch https://git.openjdk.org/crac.git pull/236/head:pull/236 PR: https://git.openjdk.org/crac/pull/236 From dcherepanov at openjdk.org Thu Jun 5 09:18:33 2025 From: dcherepanov at openjdk.org (Dmitry Cherepanov) Date: Thu, 5 Jun 2025 09:18:33 GMT Subject: [crac] RFR: Merge jdk:jdk-25+14 In-Reply-To: References: Message-ID: On Wed, 4 Jun 2025 11:45:01 GMT, Dmitry Cherepanov wrote: > > @dimitryc What's up with the windows testsuite? Looks like the run was cancelled? > > Yes, Windows jobs were automatically cancelled due to deprecation of windows-2019 runners. It's unrelated to the merge. > > Upgrade to windows-2025 runners is tracked by [JDK-8358538](https://bugs.openjdk.org/browse/JDK-8358538). Looks like we should cherry-pick the patch after it's integrated upstream. Pushed the patch, windows builds are green now ------------- PR Comment: https://git.openjdk.org/crac/pull/236#issuecomment-2943393383 From rvansa at openjdk.org Thu Jun 5 11:03:06 2025 From: rvansa at openjdk.org (Radim Vansa) Date: Thu, 5 Jun 2025 11:03:06 GMT Subject: [crac] RFR: Merge jdk:jdk-25+14 [v2] In-Reply-To: References: Message-ID: On Thu, 5 Jun 2025 06:58:56 GMT, Dmitry Cherepanov wrote: >> This PR includes merges for tags between jdk-25+11 and jdk-25+14, attaching output of --diff-merges=remerge for each merge >> >>
>> >> jdk-25+11 >> >> >> commit e16e79c9aa23cbb795bfe44f3562ced6261841f3 >> Merge: 19d203aee40 0131c1bfd8c >> Author: Dmitry Cherepanov >> Date: Mon Jun 2 14:36:10 2025 +0400 >> >> Merge with jdk-25+11 >> >> diff --git a/make/test/BuildTestLib.gmk b/make/test/BuildTestLib.gmk >> remerge CONFLICT (content): Merge conflict in make/test/BuildTestLib.gmk >> index a37fbf7dd26..2a7ffaa525e 100644 >> --- a/make/test/BuildTestLib.gmk >> +++ b/make/test/BuildTestLib.gmk >> @@ -53,17 +53,13 @@ $(eval $(call SetupJavaCompilation, BUILD_WB_JAR, \ >> TARGETS += $(BUILD_WB_JAR) >> >> ifeq ($(call isTargetOs, linux), false) >> - BUILD_TEST_LIB_JAR_EXCLUDES := jdk/test/lib/containers >> + BUILD_TEST_LIB_JAR_EXCLUDES := jdk/test/lib/containers/cgroup jdk/test/lib/containers/systemd >> endif >> >> $(eval $(call SetupJavaCompilation, BUILD_TEST_LIB_JAR, \ >> TARGET_RELEASE := $(TARGET_RELEASE_NEWJDK_UPGRADED), \ >> SRC := $(TEST_LIB_SOURCE_DIR), \ >> -<<<<<<< 19d203aee40 (8357984: [CRaC] Improve new properties installation code) >> - EXCLUDES := jdk/test/lib/containers/cgroup jdk/test/lib/containers/systemd jdk/test/lib/security, \ >> -======= >> EXCLUDES := $(BUILD_TEST_LIB_JAR_EXCLUDES), \ >> ->>>>>>> 0131c1bfd8c (8349953: Avoid editing AOTConfiguration file in "make test JTREG=AOT_JDK=true") >> BIN := $(TEST_LIB_SUPPORT)/test-lib_classes, \ >> HEADERS := $(TEST_LIB_SUPPORT)/test-lib_headers, \ >> JAR := $(TEST_LIB_SUPPORT)/test-lib.jar, \ >> >> >>
>> >> Resolved conflict after [JDK-8346050](https://bugs.openjdk.org/browse/JDK-8346050) >> >>
>> >> jdk-25+12 >> >> >> commit 5d7098526ef5333eb8002ef7611c0e2441bccef8 >> Merge: e16e79c9aa2 78c18cfbcee >> Author: Dmitry Cherepanov >> Date: Tue Jun 3 00:05:47 2025 +0400 >> >> Merge with jdk-25+12 >> >> diff --git a/src/hotspot/share/classfile/classLoader.cpp b/src/hotspot/share/classfile/classLoader.cpp >> remerge CONFLICT (content): Merge conflict in src/hotspot/share/classfile/classLoader.cpp >> index 2963d66d561..2449dbc46b4 100644 >> --- a/src/hotspot/share/classfile/classLoader.cpp >> +++ b/src/hotspot/share/classfile/classLoader.cpp >> @@ -745,7 +745,6 @@ void ClassLoader::add_to_boot_append_entries(ClassPathEntry *new_entry) { >> } >> } >> >> -<<<<<<< e16e79c9aa2 (Me... > > Dmitry Cherepanov has updated the pull request incrementally with one additional commit since the last revision: > > update to windows-2025 Marked as reviewed by rvansa (Committer). ------------- PR Review: https://git.openjdk.org/crac/pull/236#pullrequestreview-2899838085 From duke at openjdk.org Thu Jun 5 11:03:06 2025 From: duke at openjdk.org (duke) Date: Thu, 5 Jun 2025 11:03:06 GMT Subject: [crac] RFR: Merge jdk:jdk-25+14 [v2] In-Reply-To: References: Message-ID: On Thu, 5 Jun 2025 06:58:56 GMT, Dmitry Cherepanov wrote: >> This PR includes merges for tags between jdk-25+11 and jdk-25+14, attaching output of --diff-merges=remerge for each merge >> >>
>> >> jdk-25+11 >> >> >> commit e16e79c9aa23cbb795bfe44f3562ced6261841f3 >> Merge: 19d203aee40 0131c1bfd8c >> Author: Dmitry Cherepanov >> Date: Mon Jun 2 14:36:10 2025 +0400 >> >> Merge with jdk-25+11 >> >> diff --git a/make/test/BuildTestLib.gmk b/make/test/BuildTestLib.gmk >> remerge CONFLICT (content): Merge conflict in make/test/BuildTestLib.gmk >> index a37fbf7dd26..2a7ffaa525e 100644 >> --- a/make/test/BuildTestLib.gmk >> +++ b/make/test/BuildTestLib.gmk >> @@ -53,17 +53,13 @@ $(eval $(call SetupJavaCompilation, BUILD_WB_JAR, \ >> TARGETS += $(BUILD_WB_JAR) >> >> ifeq ($(call isTargetOs, linux), false) >> - BUILD_TEST_LIB_JAR_EXCLUDES := jdk/test/lib/containers >> + BUILD_TEST_LIB_JAR_EXCLUDES := jdk/test/lib/containers/cgroup jdk/test/lib/containers/systemd >> endif >> >> $(eval $(call SetupJavaCompilation, BUILD_TEST_LIB_JAR, \ >> TARGET_RELEASE := $(TARGET_RELEASE_NEWJDK_UPGRADED), \ >> SRC := $(TEST_LIB_SOURCE_DIR), \ >> -<<<<<<< 19d203aee40 (8357984: [CRaC] Improve new properties installation code) >> - EXCLUDES := jdk/test/lib/containers/cgroup jdk/test/lib/containers/systemd jdk/test/lib/security, \ >> -======= >> EXCLUDES := $(BUILD_TEST_LIB_JAR_EXCLUDES), \ >> ->>>>>>> 0131c1bfd8c (8349953: Avoid editing AOTConfiguration file in "make test JTREG=AOT_JDK=true") >> BIN := $(TEST_LIB_SUPPORT)/test-lib_classes, \ >> HEADERS := $(TEST_LIB_SUPPORT)/test-lib_headers, \ >> JAR := $(TEST_LIB_SUPPORT)/test-lib.jar, \ >> >> >>
>> >> Resolved conflict after [JDK-8346050](https://bugs.openjdk.org/browse/JDK-8346050) >> >>
>> >> jdk-25+12 >> >> >> commit 5d7098526ef5333eb8002ef7611c0e2441bccef8 >> Merge: e16e79c9aa2 78c18cfbcee >> Author: Dmitry Cherepanov >> Date: Tue Jun 3 00:05:47 2025 +0400 >> >> Merge with jdk-25+12 >> >> diff --git a/src/hotspot/share/classfile/classLoader.cpp b/src/hotspot/share/classfile/classLoader.cpp >> remerge CONFLICT (content): Merge conflict in src/hotspot/share/classfile/classLoader.cpp >> index 2963d66d561..2449dbc46b4 100644 >> --- a/src/hotspot/share/classfile/classLoader.cpp >> +++ b/src/hotspot/share/classfile/classLoader.cpp >> @@ -745,7 +745,6 @@ void ClassLoader::add_to_boot_append_entries(ClassPathEntry *new_entry) { >> } >> } >> >> -<<<<<<< e16e79c9aa2 (Me... > > Dmitry Cherepanov has updated the pull request incrementally with one additional commit since the last revision: > > update to windows-2025 @dimitryc Your change (at version a6939db0b055f489b08df9c794c4574b8cb5f31b) is now ready to be sponsored by a Committer. ------------- PR Comment: https://git.openjdk.org/crac/pull/236#issuecomment-2943731476 From dcherepanov at openjdk.org Fri Jun 6 08:22:32 2025 From: dcherepanov at openjdk.org (Dmitry Cherepanov) Date: Fri, 6 Jun 2025 08:22:32 GMT Subject: [crac] Integrated: Merge jdk:jdk-25+14 In-Reply-To: References: Message-ID: On Tue, 3 Jun 2025 10:07:02 GMT, Dmitry Cherepanov wrote: > This PR includes merges for tags between jdk-25+11 and jdk-25+14, attaching output of --diff-merges=remerge for each merge > >
> > jdk-25+11 > > > commit e16e79c9aa23cbb795bfe44f3562ced6261841f3 > Merge: 19d203aee40 0131c1bfd8c > Author: Dmitry Cherepanov > Date: Mon Jun 2 14:36:10 2025 +0400 > > Merge with jdk-25+11 > > diff --git a/make/test/BuildTestLib.gmk b/make/test/BuildTestLib.gmk > remerge CONFLICT (content): Merge conflict in make/test/BuildTestLib.gmk > index a37fbf7dd26..2a7ffaa525e 100644 > --- a/make/test/BuildTestLib.gmk > +++ b/make/test/BuildTestLib.gmk > @@ -53,17 +53,13 @@ $(eval $(call SetupJavaCompilation, BUILD_WB_JAR, \ > TARGETS += $(BUILD_WB_JAR) > > ifeq ($(call isTargetOs, linux), false) > - BUILD_TEST_LIB_JAR_EXCLUDES := jdk/test/lib/containers > + BUILD_TEST_LIB_JAR_EXCLUDES := jdk/test/lib/containers/cgroup jdk/test/lib/containers/systemd > endif > > $(eval $(call SetupJavaCompilation, BUILD_TEST_LIB_JAR, \ > TARGET_RELEASE := $(TARGET_RELEASE_NEWJDK_UPGRADED), \ > SRC := $(TEST_LIB_SOURCE_DIR), \ > -<<<<<<< 19d203aee40 (8357984: [CRaC] Improve new properties installation code) > - EXCLUDES := jdk/test/lib/containers/cgroup jdk/test/lib/containers/systemd jdk/test/lib/security, \ > -======= > EXCLUDES := $(BUILD_TEST_LIB_JAR_EXCLUDES), \ > ->>>>>>> 0131c1bfd8c (8349953: Avoid editing AOTConfiguration file in "make test JTREG=AOT_JDK=true") > BIN := $(TEST_LIB_SUPPORT)/test-lib_classes, \ > HEADERS := $(TEST_LIB_SUPPORT)/test-lib_headers, \ > JAR := $(TEST_LIB_SUPPORT)/test-lib.jar, \ > > >
> > Resolved conflict after [JDK-8346050](https://bugs.openjdk.org/browse/JDK-8346050) > >
> > jdk-25+12 > > > commit 5d7098526ef5333eb8002ef7611c0e2441bccef8 > Merge: e16e79c9aa2 78c18cfbcee > Author: Dmitry Cherepanov > Date: Tue Jun 3 00:05:47 2025 +0400 > > Merge with jdk-25+12 > > diff --git a/src/hotspot/share/classfile/classLoader.cpp b/src/hotspot/share/classfile/classLoader.cpp > remerge CONFLICT (content): Merge conflict in src/hotspot/share/classfile/classLoader.cpp > index 2963d66d561..2449dbc46b4 100644 > --- a/src/hotspot/share/classfile/classLoader.cpp > +++ b/src/hotspot/share/classfile/classLoader.cpp > @@ -745,7 +745,6 @@ void ClassLoader::add_to_boot_append_entries(ClassPathEntry *new_entry) { > } > } > > -<<<<<<< e16e79c9aa2 (Merge with jdk-25+11) > GrowableArray ClassLoader::get_classpath_entry_fds() { > GrowableArray fds; > assert(Thread::curren... This pull request has now been integrated. Changeset: 86b03e0f Author: Dmitry Cherepanov Committer: Radim Vansa URL: https://git.openjdk.org/crac/commit/86b03e0f461fc47437f402eb4b837f0dcd2c7f0e Stats: 91111 lines in 2012 files changed: 44366 ins; 31941 del; 14804 mod Merge jdk:jdk-25+14 Reviewed-by: rvansa ------------- PR: https://git.openjdk.org/crac/pull/236 From dcherepanov at openjdk.org Mon Jun 9 09:20:51 2025 From: dcherepanov at openjdk.org (Dmitry Cherepanov) Date: Mon, 9 Jun 2025 09:20:51 GMT Subject: [crac] RFR: 8358956: [CRaC] Fix NULL usage in hotspot Message-ID: jtreg test TestNoNULL.java fails due to a number of usages of NULL in CRaC code. The test becomes a part of hs/tier1_common after [JDK-8352645](https://bugs.openjdk.org/browse/JDK-8352645) (integrated in b17) and GHA starts reporting the failures after merge with jdk-25+17. The patch replaces NULL with nullptr (and with null in comments and messages in asserts). The test passes with the change. ------------- Commit messages: - fix NULL usage - enable check Changes: https://git.openjdk.org/crac/pull/237/files Webrev: https://webrevs.openjdk.org/?repo=crac&pr=237&range=00 Issue: https://bugs.openjdk.org/browse/JDK-8358956 Stats: 36 lines in 13 files changed: 1 ins; 4 del; 31 mod Patch: https://git.openjdk.org/crac/pull/237.diff Fetch: git fetch https://git.openjdk.org/crac.git pull/237/head:pull/237 PR: https://git.openjdk.org/crac/pull/237 From rvansa at openjdk.org Mon Jun 9 11:40:07 2025 From: rvansa at openjdk.org (Radim Vansa) Date: Mon, 9 Jun 2025 11:40:07 GMT Subject: [crac] RFR: 8358956: [CRaC] Fix NULL usage in hotspot In-Reply-To: References: Message-ID: On Mon, 9 Jun 2025 09:15:03 GMT, Dmitry Cherepanov wrote: > jtreg test TestNoNULL.java fails due to a number of usages of NULL in CRaC code. > > The test becomes a part of hs/tier1_common after [JDK-8352645](https://bugs.openjdk.org/browse/JDK-8352645) (integrated in b17) and GHA starts reporting the failures after merge with jdk-25+17. > > The patch replaces NULL with nullptr (and with null in comments and messages in asserts). The test passes with the change. LGTM, thanks! ------------- Marked as reviewed by rvansa (Committer). PR Review: https://git.openjdk.org/crac/pull/237#pullrequestreview-2909803896 From dcherepanov at openjdk.org Mon Jun 9 11:44:17 2025 From: dcherepanov at openjdk.org (Dmitry Cherepanov) Date: Mon, 9 Jun 2025 11:44:17 GMT Subject: [crac] RFR: 8358956: [CRaC] Fix NULL usage in hotspot In-Reply-To: References: Message-ID: On Mon, 9 Jun 2025 09:15:03 GMT, Dmitry Cherepanov wrote: > jtreg test TestNoNULL.java fails due to a number of usages of NULL in CRaC code. > > The test becomes a part of hs/tier1_common after [JDK-8352645](https://bugs.openjdk.org/browse/JDK-8352645) (integrated in b17) and GHA starts reporting the failures after merge with jdk-25+17. > > The patch replaces NULL with nullptr (and with null in comments and messages in asserts). The test passes with the change. Thanks for the review! ------------- PR Comment: https://git.openjdk.org/crac/pull/237#issuecomment-2955544051 From duke at openjdk.org Mon Jun 9 11:44:17 2025 From: duke at openjdk.org (duke) Date: Mon, 9 Jun 2025 11:44:17 GMT Subject: [crac] RFR: 8358956: [CRaC] Fix NULL usage in hotspot In-Reply-To: References: Message-ID: On Mon, 9 Jun 2025 09:15:03 GMT, Dmitry Cherepanov wrote: > jtreg test TestNoNULL.java fails due to a number of usages of NULL in CRaC code. > > The test becomes a part of hs/tier1_common after [JDK-8352645](https://bugs.openjdk.org/browse/JDK-8352645) (integrated in b17) and GHA starts reporting the failures after merge with jdk-25+17. > > The patch replaces NULL with nullptr (and with null in comments and messages in asserts). The test passes with the change. @dimitryc Your change (at version 45aef4373753438c52ad718fcb70da1e6a6d28f0) is now ready to be sponsored by a Committer. ------------- PR Comment: https://git.openjdk.org/crac/pull/237#issuecomment-2955545748 From dcherepanov at openjdk.org Mon Jun 9 13:34:10 2025 From: dcherepanov at openjdk.org (Dmitry Cherepanov) Date: Mon, 9 Jun 2025 13:34:10 GMT Subject: [crac] Integrated: 8358956: [CRaC] Fix NULL usage in hotspot In-Reply-To: References: Message-ID: On Mon, 9 Jun 2025 09:15:03 GMT, Dmitry Cherepanov wrote: > jtreg test TestNoNULL.java fails due to a number of usages of NULL in CRaC code. > > The test becomes a part of hs/tier1_common after [JDK-8352645](https://bugs.openjdk.org/browse/JDK-8352645) (integrated in b17) and GHA starts reporting the failures after merge with jdk-25+17. > > The patch replaces NULL with nullptr (and with null in comments and messages in asserts). The test passes with the change. This pull request has now been integrated. Changeset: eea5480c Author: Dmitry Cherepanov Committer: Radim Vansa URL: https://git.openjdk.org/crac/commit/eea5480cdda059bd634832aa9d7d2e8ba560d067 Stats: 36 lines in 13 files changed: 1 ins; 4 del; 31 mod 8358956: [CRaC] Fix NULL usage in hotspot Reviewed-by: rvansa ------------- PR: https://git.openjdk.org/crac/pull/237 From dcherepanov at openjdk.org Mon Jun 16 07:37:14 2025 From: dcherepanov at openjdk.org (Dmitry Cherepanov) Date: Mon, 16 Jun 2025 07:37:14 GMT Subject: [crac] RFR: Merge jdk:jdk-25+18 Message-ID: This MR includes merges for tags between jdk-25+15 and jdk-25+18. Attaching output of --diff-merges=remerge
jdk-25+15 commit b0b66cb5999e89dd44456682c6bc932fa559e242 Merge: eea5480cdda 74df384a987 Author: Dmitry Cherepanov Date: Mon Jun 9 18:31:26 2025 +0400 Merge with jdk-25+15 diff --git a/src/hotspot/os/posix/attachListener_posix.cpp b/src/hotspot/os/posix/attachListener_posix.cpp remerge CONFLICT (content): Merge conflict in src/hotspot/os/posix/attachListener_posix.cpp index ca3666be119..4fcb7a24e08 100644 --- a/src/hotspot/os/posix/attachListener_posix.cpp +++ b/src/hotspot/os/posix/attachListener_posix.cpp @@ -60,105 +60,6 @@ // obtain the credentials of client. We check that the effective uid // of the client matches this process. -<<<<<<< eea5480cdda (8358956: [CRaC] Fix NULL usage in hotspot) -======= -// forward reference -class PosixAttachOperation; - -class PosixAttachListener: AllStatic { - private: - // the path to which we bind the UNIX domain socket - static char _path[UNIX_PATH_MAX]; - static bool _has_path; - - // the file descriptor for the listening socket - static volatile int _listener; - - static bool _atexit_registered; - - public: - static void set_path(char* path) { - if (path == nullptr) { - _path[0] = '\0'; - _has_path = false; - } else { - strncpy(_path, path, UNIX_PATH_MAX); - _path[UNIX_PATH_MAX-1] = '\0'; - _has_path = true; - } - } - - static void set_listener(int s) { _listener = s; } - - // initialize the listener, returns 0 if okay - static int init(); - - static char* path() { return _path; } - static bool has_path() { return _has_path; } - static int listener() { return _listener; } - - static PosixAttachOperation* dequeue(); -}; - -class SocketChannel : public AttachOperation::RequestReader, public AttachOperation::ReplyWriter { -private: - int _socket; -public: - SocketChannel(int socket) : _socket(socket) {} - ~SocketChannel() { - close(); - } - - bool opened() const { - return _socket != -1; - } - - void close() { - if (opened()) { - ::shutdown(_socket, SHUT_RDWR); - ::close(_socket); - _socket = -1; - } - } - - // RequestReader - int read(void* buffer, int size) override { - ssize_t n; - RESTARTABLE(::read(_socket, buffer, (size_t)size), n); - return checked_cast(n); - } - - // ReplyWriter - int write(const void* buffer, int size) override { - ssize_t n; - RESTARTABLE(::write(_socket, buffer, size), n); - return checked_cast(n); - } - - void flush() override { - } -}; - -class PosixAttachOperation: public AttachOperation { - private: - // the connection to the client - SocketChannel _socket_channel; - - public: - PosixAttachOperation(int socket) : AttachOperation(), _socket_channel(socket) {} - - void complete(jint res, bufferedStream* st) override; - - ReplyWriter* get_reply_writer() override { - return &_socket_channel; - } - - bool read_request() { - return _socket_channel.read_request(this, &_socket_channel); - } -}; - ->>>>>>> 74df384a987 (8352428: GenShen: Old-gen cycles are still looping) // statics char PosixAttachListener::_path[UNIX_PATH_MAX]; bool PosixAttachListener::_has_path; @@ -322,7 +223,8 @@ PosixAttachOperation* PosixAttachListener::dequeue() { // The complete() gets called after restore for proper deletion the leftover object. void PosixAttachOperation::complete(jint result, bufferedStream* st) { - PosixAttachOperation::effectively_complete_raw(result, st); + // the operation is completed by attachStream::complete + _effectively_completed = true; // reset the current op as late as possible, this happens on attach listener thread. PosixAttachListener::reset_current_op(); delete this; @@ -336,7 +238,6 @@ void PosixAttachOperation::complete(jint result, bufferedStream* st) { // if there are operations that involves a very big reply then it the // socket could be made non-blocking and a timeout could be used. -<<<<<<< eea5480cdda (8358956: [CRaC] Fix NULL usage in hotspot) void PosixAttachOperation::effectively_complete_raw(jint result, bufferedStream* st) { if (_effectively_completed) { @@ -353,14 +254,10 @@ void PosixAttachOperation::effectively_complete_raw(jint result, bufferedStream* write_operation_result(result, st); } _effectively_completed = true; -======= -void PosixAttachOperation::complete(jint result, bufferedStream* st) { - delete this; ->>>>>>> 74df384a987 (8352428: GenShen: Old-gen cycles are still looping) } void PosixAttachOperation::write_operation_result(jint result, bufferedStream* st) { - write_reply(&_socket_channel, result, st); + _socket_channel.write_reply(result, st); _socket_channel.close(); st->reset(); diff --git a/src/hotspot/os/posix/posixAttachOperation.hpp b/src/hotspot/os/posix/posixAttachOperation.hpp index 92d1b145b18..eb439a8ab8c 100644 --- a/src/hotspot/os/posix/posixAttachOperation.hpp +++ b/src/hotspot/os/posix/posixAttachOperation.hpp @@ -51,6 +51,7 @@ class SocketChannel : public AttachOperation::RequestReader, public AttachOperat void close() { if (opened()) { + ::shutdown(_socket, SHUT_RDWR); ::close(_socket); _socket = -1; } @@ -69,9 +70,8 @@ class SocketChannel : public AttachOperation::RequestReader, public AttachOperat RESTARTABLE(::write(_socket, buffer, size), n); return checked_cast(n); } - // called after writing all data + void flush() override { - ::shutdown(_socket, SHUT_RDWR); } }; @@ -83,6 +83,10 @@ class PosixAttachOperation: public AttachOperation { void write_operation_result(jint result, bufferedStream* st); public: + PosixAttachOperation(int socket) : AttachOperation(), _socket_channel(socket) { + _effectively_completed = false; + } + void complete(jint res, bufferedStream* st) override; void effectively_complete_raw(jint res, bufferedStream* st); bool is_effectively_completed() { return _effectively_completed; } @@ -91,12 +95,12 @@ class PosixAttachOperation: public AttachOperation { return _socket_channel.socket();; } - PosixAttachOperation(int socket) : AttachOperation(), _socket_channel(socket) { - _effectively_completed = false; + ReplyWriter* get_reply_writer() override { + return &_socket_channel; } bool read_request() { - return AttachOperation::read_request(&_socket_channel, &_socket_channel); + return _socket_channel.read_request(this, &_socket_channel); } }; diff --git a/src/java.base/share/classes/jdk/internal/ref/CleanerImpl.java b/src/java.base/share/classes/jdk/internal/ref/CleanerImpl.java remerge CONFLICT (content): Merge conflict in src/java.base/share/classes/jdk/internal/ref/CleanerImpl.java index 4bc33a552d7..a5f0066a22a 100644 --- a/src/java.base/share/classes/jdk/internal/ref/CleanerImpl.java +++ b/src/java.base/share/classes/jdk/internal/ref/CleanerImpl.java @@ -167,11 +167,6 @@ public void run() { } } try { -<<<<<<< eea5480cdda (8358956: [CRaC] Fix NULL usage in hotspot) - // Wait for a Ref, with a timeout to avoid getting hung - // due to a race with clear/clean - Cleanable ref = (Cleanable) javaLangRefAccess.pollReferenceQueue(queue, 60 * 1000L); -======= // Wait for a Ref, with a timeout to avoid a potential hang. // The Cleaner may become unreachable and its cleanable run, // while there are registered cleanables for other objects. @@ -180,8 +175,7 @@ <<<<<<< eea5480cdda (8358956: [CRaC] Fix NULL usage in hotspot) // this. Using a timeout is simpler than unblocking this by // having cleaning of the last registered cleanable enqueue a // dummy reference. - Cleanable ref = (Cleanable) queue.remove(60 * 1000L); ->>>>>>> 74df384a987 (8352428: GenShen: Old-gen cycles are still looping) + Cleanable ref = (Cleanable) javaLangRefAccess.pollReferenceQueue(queue, 60 * 1000L); if (ref != null) { ref.clean(); } diff --git a/src/jdk.attach/share/classes/sun/tools/attach/HotSpotVirtualMachine.java b/src/jdk.attach/share/classes/sun/tools/attach/HotSpotVirtualMachine.java remerge CONFLICT (content): Merge conflict in src/jdk.attach/share/classes/sun/tools/attach/HotSpotVirtualMachine.java index 55ad14370b6..d3f503beeab 100644 --- a/src/jdk.attach/share/classes/sun/tools/attach/HotSpotVirtualMachine.java +++ b/src/jdk.attach/share/classes/sun/tools/attach/HotSpotVirtualMachine.java @@ -80,14 +80,10 @@ private static long pid() { throw new AttachNotSupportedException("Invalid process identifier: " + id); } - selfAttach = pid == 0 || pid == CURRENT_PID; + selfAttach = pid == 0 || pid == pid(); // The tool should be a different VM to the target. This check will // eventually be enforced by the target VM. -<<<<<<< eea5480cdda (8358956: [CRaC] Fix NULL usage in hotspot) - if (!ALLOW_ATTACH_SELF && (pid == 0 || pid == pid())) { -======= if (!ALLOW_ATTACH_SELF && selfAttach) { ->>>>>>> 74df384a987 (8352428: GenShen: Old-gen cycles are still looping) throw new IOException("Can not attach to current VM"); } }
Resolved conflicts after [JDK-8319055](https://bugs.openjdk.org/browse/JDK-8319055) and [JDK-8351374](https://bugs.openjdk.org/browse/JDK-8351374)
jdk-25+16 commit 3da9702f290fc5106a1e1d9a3d9f8ddb04ee4c72 Merge: b0b66cb5999 24833403b6b Author: Dmitry Cherepanov Date: Sun Jun 15 23:09:48 2025 +0400 Merge with jdk-25+16 diff --git a/src/hotspot/share/jfr/jni/jfrJniMethod.cpp b/src/hotspot/share/jfr/jni/jfrJniMethod.cpp remerge CONFLICT (content): Merge conflict in src/hotspot/share/jfr/jni/jfrJniMethod.cpp index 3872e834986..d592f92f3ec 100644 --- a/src/hotspot/share/jfr/jni/jfrJniMethod.cpp +++ b/src/hotspot/share/jfr/jni/jfrJniMethod.cpp @@ -430,11 +430,10 @@ NO_TRANSITION(jlong, jfr_nanos_now(JNIEnv* env, jclass jvm)) return JfrChunk::nanos_now(); NO_TRANSITION_END -<<<<<<< b0b66cb5999 (Merge with jdk-25+15) JVM_ENTRY_NO_ENV(void, jfr_start_after_restore(JNIEnv* env, jclass jvm)) return JfrRecorder::start_after_restore(); JVM_END -======= + NO_TRANSITION(jboolean, jfr_is_product(JNIEnv* env, jclass jvm)) #ifdef PRODUCT return true; @@ -442,4 +441,3 @@ NO_TRANSITION(jboolean, jfr_is_product(JNIEnv* env, jclass jvm)) return false; #endif NO_TRANSITION_END ->>>>>>> 24833403b6b (8352579: Refactor CDS legacy optimization for lambda proxy classes) diff --git a/src/hotspot/share/jfr/jni/jfrJniMethod.hpp b/src/hotspot/share/jfr/jni/jfrJniMethod.hpp remerge CONFLICT (content): Merge conflict in src/hotspot/share/jfr/jni/jfrJniMethod.hpp index aabff5d407b..85023ee974b 100644 --- a/src/hotspot/share/jfr/jni/jfrJniMethod.hpp +++ b/src/hotspot/share/jfr/jni/jfrJniMethod.hpp @@ -167,11 +167,9 @@ void JNICALL jfr_unregister_stack_filter(JNIEnv* env, jclass jvm, jlong id); jlong JNICALL jfr_nanos_now(JNIEnv* env, jclass jvm); -<<<<<<< b0b66cb5999 (Merge with jdk-25+15) void JNICALL jfr_start_after_restore(JNIEnv* env, jclass jvm); -======= + jboolean JNICALL jfr_is_product(JNIEnv* env, jclass jvm); ->>>>>>> 24833403b6b (8352579: Refactor CDS legacy optimization for lambda proxy classes) #ifdef __cplusplus } diff --git a/src/hotspot/share/jfr/jni/jfrJniMethodRegistration.cpp b/src/hotspot/share/jfr/jni/jfrJniMethodRegistration.cpp remerge CONFLICT (content): Merge conflict in src/hotspot/share/jfr/jni/jfrJniMethodRegistration.cpp index 59e765d8242..b9596106808 100644 --- a/src/hotspot/share/jfr/jni/jfrJniMethodRegistration.cpp +++ b/src/hotspot/share/jfr/jni/jfrJniMethodRegistration.cpp @@ -101,11 +101,8 @@ JfrJniMethodRegistration::JfrJniMethodRegistration(JNIEnv* env) { (char*)"registerStackFilter", (char*)"([Ljava/lang/String;[Ljava/lang/String;)J", (void*)jfr_register_stack_filter, (char*)"unregisterStackFilter", (char*)"(J)V", (void*)jfr_unregister_stack_filter, (char*)"nanosNow", (char*)"()J", (void*)jfr_nanos_now, -<<<<<<< b0b66cb5999 (Merge with jdk-25+15) (char*)"startFlightRecorderAfterRestore", (char*)"()V", (void*)jfr_start_after_restore, -======= (char*)"isProduct", (char*)"()Z", (void*)jfr_is_product ->>>>>>> 24833403b6b (8352579: Refactor CDS legacy optimization for lambda proxy classes) }; const size_t method_array_length = sizeof(method) / sizeof(JNINativeMethod); diff --git a/src/jdk.jfr/share/classes/jdk/jfr/internal/JVM.java b/src/jdk.jfr/share/classes/jdk/jfr/internal/JVM.java remerge CONFLICT (content): Merge conflict in src/jdk.jfr/share/classes/jdk/jfr/internal/JVM.java index e839945fa40..0411dda3ebc 100644 --- a/src/jdk.jfr/share/classes/jdk/jfr/internal/JVM.java +++ b/src/jdk.jfr/share/classes/jdk/jfr/internal/JVM.java @@ -677,15 +677,14 @@ public final class JVM { public static native void setMiscellaneous(long eventTypeId, long value); /** -<<<<<<< b0b66cb5999 (Merge with jdk-25+15) * Starts recording based on -XX:StartFlightRecorder passed on restore. */ public static native void startFlightRecorderAfterRestore(); -======= + + /** * Returns whether the current build is a product build. * * @return {@code true} if this is a product build, {@code false} otherwise. */ public static native boolean isProduct(); ->>>>>>> 24833403b6b (8352579: Refactor CDS legacy optimization for lambda proxy classes) }
Resolved conflicts after [JDK-8352648](https://bugs.openjdk.org/browse/JDK-8352648)
jdk-25+17 commit d5d30c340fbe56e6256f811d86fdffdfcd4e81bc Merge: 3da9702f290 bd749221572 Author: Dmitry Cherepanov Date: Sun Jun 15 23:09:53 2025 +0400 Merge with jdk-25+17
Clean merge
jdk-25+18 commit 60274aa576a7c15fc580766f267195625c0e1823 (HEAD -> merge-jdk, dmitry-crac/merge-jdk) Merge: d5d30c340fb bcac42aabce Author: Dmitry Cherepanov Date: Sun Jun 15 23:10:04 2025 +0400 Merge with jdk-25+18
Clean merge ------------- Commit messages: - Merge with jdk-25+18 - 8349479: C2: when a Type node becomes dead, make CFG path that uses it unreachable - 8341641: Make %APPDATA% and %LOCALAPPDATA% env variables available in *.cfg files - 8352748: Remove com.sun.tools.classfile from the JDK - 8351034: Add AVX-512 intrinsics for ML-DSA - 8351319: AOT cache support for custom class loaders broken since JDK-8348426 - 8350563: C2 compilation fails because PhaseCCP does not reach a fixpoint - 8354213: Restore pointless unicode characters to ASCII - 8353041: NeverBranchNode causes incorrect block frequency calculation - 8353549: Open source events tests batch2 - ... and 427 more: https://git.openjdk.org/crac/compare/eea5480c...60274aa5 The webrevs contain the adjustments done while merging with regards to each parent branch: - crac: https://webrevs.openjdk.org/?repo=crac&pr=238&range=00.0 - jdk:jdk-25+18: https://webrevs.openjdk.org/?repo=crac&pr=238&range=00.1 Changes: https://git.openjdk.org/crac/pull/238/files Stats: 125728 lines in 3070 files changed: 52031 ins; 60874 del; 12823 mod Patch: https://git.openjdk.org/crac/pull/238.diff Fetch: git fetch https://git.openjdk.org/crac.git pull/238/head:pull/238 PR: https://git.openjdk.org/crac/pull/238