Re: RFR: 8274196: Crashes in VM_HeapDumper::work after JDK-8252842 [v5]
On Mon, 27 Sep 2021 14:28:43 GMT, Lin Zang wrote: >> The root cause for crash in ZGC is that the JNIHandles are processed before >> object iteration. And ZGC would update the JNIHandles at object iteration >> with read barrier. So the crash is cause by accessing the invalid address >> which can be dummy info after zgc, and hence crash. >> >> The lock rank issue can be fixed because the related mutexes are acquired in >> safepoint. so the safepoint_check_required could be safepoint_check_always. >> >> The Epsilon issue is caused by wrong _num_dumper_thread calculated when the >> gang==NULL. > > Lin Zang has updated the pull request incrementally with one additional > commit since the last revision: > > remove load barrier for JNI local roots Thanks all for your help reviewing this patch. I will integrate it. - PR: https://git.openjdk.java.net/jdk/pull/5681
Re: RFR: 8274196: Crashes in VM_HeapDumper::work after JDK-8252842 [v5]
On Mon, 27 Sep 2021 14:28:43 GMT, Lin Zang wrote: >> The root cause for crash in ZGC is that the JNIHandles are processed before >> object iteration. And ZGC would update the JNIHandles at object iteration >> with read barrier. So the crash is cause by accessing the invalid address >> which can be dummy info after zgc, and hence crash. >> >> The lock rank issue can be fixed because the related mutexes are acquired in >> safepoint. so the safepoint_check_required could be safepoint_check_always. >> >> The Epsilon issue is caused by wrong _num_dumper_thread calculated when the >> gang==NULL. > > Lin Zang has updated the pull request incrementally with one additional > commit since the last revision: > > remove load barrier for JNI local roots The dumper threads related fix looks fine. I don't know enough to verify the GC fix, but I think Per has that covered sufficiently. Likewise for the lock rank issue which Coleen has reviewed. Also, I tested your changes with our tier2 and tier3 CI runs, which is where the failures initially turned up, and they are passing now. - Marked as reviewed by cjplummer (Reviewer). PR: https://git.openjdk.java.net/jdk/pull/5681
Re: RFR: 8274196: Crashes in VM_HeapDumper::work after JDK-8252842 [v5]
On Tue, 28 Sep 2021 22:33:32 GMT, Lin Zang wrote: > Dear Chris(@plummercj) and Ralf(@schmelter-sap), may I ask your help to > review this fix of JDK-8252842? Thanks! Yes, I will have a look at it. - PR: https://git.openjdk.java.net/jdk/pull/5681
Re: RFR: 8274196: Crashes in VM_HeapDumper::work after JDK-8252842 [v5]
On Tue, 28 Sep 2021 07:46:27 GMT, Per Liden wrote: >> Lin Zang has updated the pull request incrementally with one additional >> commit since the last revision: >> >> remove load barrier for JNI local roots > > The load barrier part of this now looks good to me. Thanks @pliden for help review and approve. Dear Chris(@plummercj) and Ralf(@schmelter-sap), may I ask your help to review this fix of JDK-8252842? Thanks! - PR: https://git.openjdk.java.net/jdk/pull/5681
Re: RFR: 8274196: Crashes in VM_HeapDumper::work after JDK-8252842 [v5]
On Mon, 27 Sep 2021 14:28:43 GMT, Lin Zang wrote: >> The root cause for crash in ZGC is that the JNIHandles are processed before >> object iteration. And ZGC would update the JNIHandles at object iteration >> with read barrier. So the crash is cause by accessing the invalid address >> which can be dummy info after zgc, and hence crash. >> >> The lock rank issue can be fixed because the related mutexes are acquired in >> safepoint. so the safepoint_check_required could be safepoint_check_always. >> >> The Epsilon issue is caused by wrong _num_dumper_thread calculated when the >> gang==NULL. > > Lin Zang has updated the pull request incrementally with one additional > commit since the last revision: > > remove load barrier for JNI local roots The load barrier part of this now looks good to me. - Marked as reviewed by pliden (Reviewer). PR: https://git.openjdk.java.net/jdk/pull/5681
Re: RFR: 8274196: Crashes in VM_HeapDumper::work after JDK-8252842 [v5]
> The root cause for crash in ZGC is that the JNIHandles are processed before > object iteration. And ZGC would update the JNIHandles at object iteration > with read barrier. So the crash is cause by accessing the invalid address > which can be dummy info after zgc, and hence crash. > > The lock rank issue can be fixed because the related mutexes are acquired in > safepoint. so the safepoint_check_required could be safepoint_check_always. > > The Epsilon issue is caused by wrong _num_dumper_thread calculated when the > gang==NULL. Lin Zang has updated the pull request incrementally with one additional commit since the last revision: remove load barrier for JNI local roots - Changes: - all: https://git.openjdk.java.net/jdk/pull/5681/files - new: https://git.openjdk.java.net/jdk/pull/5681/files/f6cb2123..db77cdaa Webrevs: - full: https://webrevs.openjdk.java.net/?repo=jdk=5681=04 - incr: https://webrevs.openjdk.java.net/?repo=jdk=5681=03-04 Stats: 1 line in 1 file changed: 0 ins; 0 del; 1 mod Patch: https://git.openjdk.java.net/jdk/pull/5681.diff Fetch: git fetch https://git.openjdk.java.net/jdk pull/5681/head:pull/5681 PR: https://git.openjdk.java.net/jdk/pull/5681