[prev in list] [next in list] [prev in thread] [next in thread] 

List:       openjdk-serviceability-dev
Subject:    Integrated: 8304436: com/sun/jdi/ThreadMemoryLeakTest.java fails with "OutOfMemoryError: Java heap s
From:       Chris Plummer <cjplummer () openjdk ! org>
Date:       2023-03-29 23:32:31
Message-ID: bQnGK4Mz9p6dNF2TTqS1Ewh6jwkj2McQEXVPFSh3zRQ=.2e605841-7e33-476c-b397-a7ff9e90b6c2 () github ! com
[Download RAW message or body]

On Tue, 21 Mar 2023 21:38:12 GMT, Chris Plummer <cjplummer@openjdk.org> wrote:

> There are two GC related issues with this test that are being addressed. The test \
> was limiting the heap size to 6m so if there is still a leak, it will be detected \
> quickly. This proved to be too small of a size when using ZGC. For the most part \
> changing the size to 7m fixed this issue. However, I was still seeing frequent \
> issues with ZGC on macOS. This is explained by \
> [JDK-8304449](https://bugs.openjdk.org/browse/JDK-8304449), which noticed (rarely) \
> OOME on macos even when not using ZGC. From JDK-8304449: 
> "macOS has a thread behavior that is not seen on linux and windows that is causing \
> more memory usage, which sometimes leads to this unexpected OOME. The debuggee side \
> of the test constantly creates threads that do little more than a short sleep. It \
> has a counter of "live" threads, and won't let that go over 500. On the debugger \
> side it is just tracking ThreadStartEvents and ThreadDeathEvents. It keep tracks of \
> threads (ThreadReferences) for which a ThreadStartEvent had been received but a \
> ThreadDeathEvent has not. On linux and windows the count of outstanding threads is \
> generally in the 200-400 range, sometimes briefly going over 500. However, on macOS \
> it is closer to 2400. This means a lot more ThreadReferences being tracked, which \
> means more memory usage, so sometimes you see an OOME on macOS as a result. " 
> The `threads` collection mainly existed just so its size could be used to log the \
> number of outstanding ThreadDeathEvents. I got rid of the `threads` collection and \
> instead am just tracking the number of ThreadStartEvents and ThreadDeathEvents, and \
> computing the difference to get the number of outstanding ThreadDeathEvents.

This pull request has now been integrated.

Changeset: 9643f654
Author:    Chris Plummer <cjplummer@openjdk.org>
URL:       https://git.openjdk.org/jdk/commit/9643f654da23cfc336d36385031251d039e0550d
                
Stats:     19 lines in 2 files changed: 0 ins; 9 del; 10 mod

8304436: com/sun/jdi/ThreadMemoryLeakTest.java fails with "OutOfMemoryError: Java \
                heap space" with ZGC
8304449: com/sun/jdi/ThreadMemoryLeakTest.java times out

Reviewed-by: lmesnik, dcubed

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

PR: https://git.openjdk.org/jdk/pull/13130


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic