RFR: 8318757: 8318757 VM_ThreadDump asserts in interleaved ObjectMonitor::deflate_monitor [v2]

Patricio Chilano Mateo pchilanomate at openjdk.org
Mon Nov 6 19:40:29 UTC 2023


On Mon, 6 Nov 2023 13:14:42 GMT, Stefan Karlsson <stefank at openjdk.org> wrote:

>> A safepointed monitor deflation pass can run interleaved with a paused async monitor deflation pass. The code is not written to handle that situation and asserts when it finds a DEFLATER_MARKER in the owner field. @pchilano also found other issues with having to monitor deflation passes interleaved. More info below ...
>
> Stefan Karlsson has updated the pull request incrementally with three additional commits since the last revision:
> 
>  - Move ConcurrentDeflation.java out of tier1
>  - Update comments
>  - Use a named constant

Looks good to me.

I see this monitor traversal in VM_ThreadDump is just to get the monitors locked through JNI. But we now have the _jni_monitor_count counter so all this traversal could be made conditional, which most of the times will mean we won't have to do it.

test/hotspot/jtreg/runtime/Monitor/ConcurrentDeflation.java line 35:

> 33:  * @test
> 34:  * @bug 8318757
> 35:  * @summary Test concurrent monitor deflation by MonitorDeflationThread and VMThread

No concurrent deflation anymore in VM_ThreadDump by the VMThread.

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

Marked as reviewed by pchilanomate (Reviewer).

PR Review: https://git.openjdk.org/jdk/pull/16519#pullrequestreview-1716091260
PR Comment: https://git.openjdk.org/jdk/pull/16519#issuecomment-1796176604
PR Review Comment: https://git.openjdk.org/jdk/pull/16519#discussion_r1383871753


More information about the hotspot-dev mailing list