RFR: 8262092: vmTestbase/nsk/jvmti/scenarios/hotswap/HS102/hs102t001/TestDescription.java SIGSEGV in memmove_ssse3
Leonid Mesnik
lmesnik at openjdk.java.net
Wed May 5 21:05:52 UTC 2021
On Wed, 5 May 2021 20:26:13 GMT, Alex Menkov <amenkov at openjdk.org> wrote:
> Class loading can happen on different threads, but HotSwap agent is not ready to this - classCount variable is used without any synchronization.
> The fix adds synchronization for ClassFileLoadHook.
Also, generic comment. There are other counters which might require synchronization, like CompiledMethodLoadEventsCount. Doesn't it makes sense to fix them also or file a new bug?
test/hotspot/jtreg/vmTestbase/nsk/share/jvmti/hotswap/HotSwap.cpp line 71:
> 69: static int classCount = 0;
> 70: /* lock to access classCount */
> 71: static jrawMonitorID classLoadLock = NULL;
I think it would simpler to use an atomic counter rather than monitors for this fix.
test/hotspot/jtreg/vmTestbase/nsk/share/jvmti/hotswap/HotSwap.cpp line 110:
> 108: }
> 109: // use while instead of if to exit the block on error
> 110: while (classCount < max_classes) {
Could you please explain why this while is executed only once. It is not obvious.
-------------
Changes requested by lmesnik (Committer).
PR: https://git.openjdk.java.net/jdk/pull/3889
More information about the serviceability-dev
mailing list