<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class="">
Hi Anjian,
<div class=""><br class="">
</div>
<div class="">Thank you for reporting this issue. I have filed a bug for investigating this:</div>
<div class=""><a href="https://bugs.openjdk.org/browse/JDK-8294425" class="">https://bugs.openjdk.org/browse/JDK-8294425</a></div>
<div class=""><br class="">
</div>
<div class="">Based on the reported symptoms, it smells like the virtual address space</div>
<div class="">has gotten fragmented over time, possibly due to large allocations that</div>
<div class="">are too large to move around. We do reserve “a bunch” of extra virtual</div>
<div class="">address space to deal with that, but perhaps something is flawed in that</div>
<div class="">logic, and you have hit some kind of corner case.</div>
<div class=""><br class="">
</div>
<div class="">If you run -Xlog:gc+init, then we can see how much address space was</div>
<div class="">reserved by the GC when the JVM started. This information would be</div>
<div class="">very useful to further reason about what has happened. So if we could</div>
<div class="">get the output of that logging, that would be great.</div>
<div class=""><br class="">
</div>
<div class="">As a workaround for now, if you would like to force ZGC to reserve more</div>
<div class="">virtual address space, you can use the following JVM flags:</div>
<div class=""><br class="">
</div>
<div class="">-Xmx50G -XX:SoftMaxHeapSize=50G -Xmx1T</div>
<div class=""><br class="">
</div>
<div class="">Then ZGC is forced to reserve virtual memory as if the heap could grow</div>
<div class="">to 1T, while in fact, the SoftMaxHeapSize will limit heap growth past 50G</div>
<div class="">unless the GC can’t keep up. This will ensure that the GC has tons of</div>
<div class="">virtual address space at its disposal. If you still run out of virtual address</div>
<div class="">space, then the issue is probably not due to virtual address space fragmentation.</div>
<div class=""><br class="">
</div>
<div class="">Thanks,</div>
<div class="">/Erik</div>
<div class="">
<div><br class="">
<blockquote type="cite" class="">
<div class="">On 21 Sep 2022, at 08:34, 地上的月影 <<a href="mailto:404450559@qq.com" class="">404450559@qq.com</a>> wrote:</div>
<br class="Apple-interchange-newline">
<div class="">
<div class="">Hi everyone</div>
<div class="">    these days when I use zgc with jdk17, after the app run for a few days, I meet a "out of address space" problem, and cpu raise to nearly 100%, looks like there is infinite loop.</div>
<div class=""><br class="">
</div>
<div class=""><span style="background-color: transparent; font-family: inherit; font-size: var(--fs-body1); font-style: inherit; font-variant-ligatures: inherit; font-variant-caps: inherit; font-weight: inherit; white-space: inherit; color: var(--highlight-color);" class="">Out
 of address space </span></div>
<pre class="lang-java s-code-block" style=" margin-top: 0px;  padding: var(--su12); border: 0px; font-variant-numeric: inherit; font-variant-east-asian: inherit; font-stretch: inherit; line-height: var(--lh-md); font-family: var(--ff-mono); font-size: var(--fs-body1); vertical-align: baseline; box-sizing: inherit; width: auto; max-height: 600px; overflow: auto; background-color: var(--highlight-bg); border-radius: var(--br-md); color: var(--highlight-color); overflow-wrap: normal; "><code class="language-java hljs" style="margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; font-size: var(--fs-body1); vertical-align: baseline; box-sizing: inherit; background-color: transparent; white-space: inherit;">Force to lower max java heap size from 50G(<span class="hljs-number" style="margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; font-size: 13px; vertical-align: baseline; box-sizing: inherit; color: var(--highlight-namespace);">100</span>%) to 50G(<span class="hljs-number" style="margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; font-size: 13px; vertical-align: baseline; box-sizing: inherit; color: var(--highlight-namespace);">100</span>%)
Out of address space 
Force to lower max java heap size from 50G(<span class="hljs-number" style="margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; font-size: 13px; vertical-align: baseline; box-sizing: inherit; color: var(--highlight-namespace);">100</span>%) to 50G(<span class="hljs-number" style="margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; font-size: 13px; vertical-align: baseline; box-sizing: inherit; color: var(--highlight-namespace);">100</span>%)
Out of address space 
Force to lower max java heap size from 50G(<span class="hljs-number" style="margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; font-size: 13px; vertical-align: baseline; box-sizing: inherit; color: var(--highlight-namespace);">100</span>%) to 50G(<span class="hljs-number" style="margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; font-size: 13px; vertical-align: baseline; box-sizing: inherit; color: var(--highlight-namespace);">100</span>%)</code></pre>
<pre class="lang-java s-code-block" style=" margin-top: 0px;  padding: var(--su12); border: 0px; font-variant-numeric: inherit; font-variant-east-asian: inherit; font-stretch: inherit; line-height: var(--lh-md); font-family: var(--ff-mono); font-size: var(--fs-body1); vertical-align: baseline; box-sizing: inherit; width: auto; max-height: 600px; overflow: auto; background-color: var(--highlight-bg); border-radius: var(--br-md); color: var(--highlight-color); overflow-wrap: normal; "><code class="language-java hljs" style="margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; font-size: var(--fs-body1); vertical-align: baseline; box-sizing: inherit; background-color: transparent; white-space: inherit;"><br class=""></code></pre>
<pre class="lang-java s-code-block" style=" margin-top: 0px;  padding: var(--su12); border: 0px; font-variant-numeric: inherit; font-variant-east-asian: inherit; font-stretch: inherit; line-height: var(--lh-md); vertical-align: baseline; box-sizing: inherit; width: auto; max-height: 600px; overflow: auto; border-radius: var(--br-md); overflow-wrap: normal; "><span style="color: var(--highlight-color); font-family: var(--ff-mono); font-size: var(--fs-body1); background-color: var(--highlight-bg);" class="">after I check the source code, it looks like the problem is in the function ZPageAllocator::alloc_page -> retry loop</span></pre>
<pre class="lang-java s-code-block" style=" margin-top: 0px;  padding: var(--su12); border: 0px; font-variant-numeric: inherit; font-variant-east-asian: inherit; font-stretch: inherit; line-height: var(--lh-md); vertical-align: baseline; box-sizing: inherit; width: auto; max-height: 600px; overflow: auto; border-radius: var(--br-md); overflow-wrap: normal; "><br class=""></pre>
<pre class="lang-java s-code-block" style=" margin-top: 0px;  padding: var(--su12); border: 0px; font-variant-numeric: inherit; font-variant-east-asian: inherit; font-stretch: inherit; line-height: var(--lh-md); vertical-align: baseline; box-sizing: inherit; width: auto; max-height: 600px; overflow: auto; border-radius: var(--br-md); overflow-wrap: normal; ">my profile flame graph also shows that the most cpu take func is alloc_page_finalize</pre>
<pre class="lang-java s-code-block" style=" margin-top: 0px;  padding: var(--su12); border: 0px; font-variant-numeric: inherit; font-variant-east-asian: inherit; font-stretch: inherit; line-height: var(--lh-md); vertical-align: baseline; box-sizing: inherit; width: auto; max-height: 600px; overflow: auto; border-radius: var(--br-md); overflow-wrap: normal; "><br class=""></pre>
<pre class="lang-java s-code-block" style=" margin-top: 0px;  padding: var(--su12); border: 0px; font-variant-numeric: inherit; font-variant-east-asian: inherit; font-stretch: inherit; line-height: var(--lh-md); vertical-align: baseline; box-sizing: inherit; width: auto; max-height: 600px; overflow: auto; border-radius: var(--br-md); overflow-wrap: normal; "><pre class="lang-java s-code-block" style=" overflow-wrap: normal; margin-top: 0px;  padding: var(--su12); border: 0px; font-variant-numeric: inherit; font-variant-east-asian: inherit; font-stretch: inherit; line-height: var(--lh-md); vertical-align: baseline; box-sizing: inherit; width: auto; max-height: 600px; overflow: auto; border-radius: var(--br-md); ">ZPageAllocator::alloc_page_finalize 91.92%</pre><pre class="lang-java s-code-block" style=" overflow-wrap: normal; margin-top: 0px;  padding: var(--su12); border: 0px; font-variant-numeric: inherit; font-variant-east-asian: inherit; font-stretch: inherit; line-height: var(--lh-md); vertical-align: baseline; box-sizing: inherit; width: auto; max-height: 600px; overflow: auto; border-radius: var(--br-md); ">  ZPageAllocator::alloc_page_create 91.92%</pre><pre class="lang-java s-code-block" style=" overflow-wrap: normal; margin-top: 0px;  padding: var(--su12); border: 0px; font-variant-numeric: inherit; font-variant-east-asian: inherit; font-stretch: inherit; line-height: var(--lh-md); vertical-align: baseline; box-sizing: inherit; width: auto; max-height: 600px; overflow: auto; border-radius: var(--br-md); ">    ZVirtualMemoryManager::alloc 90.85%</pre></pre>
<pre class="lang-java s-code-block" style=" margin-top: 0px;  padding: var(--su12); border: 0px; font-variant-numeric: inherit; font-variant-east-asian: inherit; font-stretch: inherit; line-height: var(--lh-md); vertical-align: baseline; box-sizing: inherit; width: auto; max-height: 600px; overflow: auto; border-radius: var(--br-md); overflow-wrap: normal; ">      ZMemoryManager::alloc_from_back 89.07%</pre>
<pre class="lang-java s-code-block" style=" margin-top: 0px;  padding: var(--su12); border: 0px; font-variant-numeric: inherit; font-variant-east-asian: inherit; font-stretch: inherit; line-height: var(--lh-md); vertical-align: baseline; box-sizing: inherit; width: auto; max-height: 600px; overflow: auto; border-radius: var(--br-md); overflow-wrap: normal; "><br class=""></pre>
<pre class="lang-java s-code-block" style=" margin-top: 0px;  padding: var(--su12); border: 0px; font-variant-numeric: inherit; font-variant-east-asian: inherit; font-stretch: inherit; line-height: var(--lh-md); vertical-align: baseline; box-sizing: inherit; width: auto; max-height: 600px; overflow: auto; border-radius: var(--br-md); overflow-wrap: normal; ">I have tried to add this fragment patch but it seems not useful</pre>
<pre class="lang-java s-code-block" style=" margin-top: 0px;  padding: var(--su12); border: 0px; font-variant-numeric: inherit; font-variant-east-asian: inherit; font-stretch: inherit; line-height: var(--lh-md); vertical-align: baseline; box-sizing: inherit; width: auto; max-height: 600px; overflow: auto; border-radius: var(--br-md); overflow-wrap: normal; "><a href="https://bugs.openjdk.org/browse/JDK-8276055" class="">https://bugs.openjdk.org/browse/JDK-8276055</a></pre>
<pre class="lang-java s-code-block" style=" margin-top: 0px;  padding: var(--su12); border: 0px; font-variant-numeric: inherit; font-variant-east-asian: inherit; font-stretch: inherit; line-height: var(--lh-md); vertical-align: baseline; box-sizing: inherit; width: auto; max-height: 600px; overflow: auto; border-radius: var(--br-md); overflow-wrap: normal; ">how can I fix this or debug this?</pre>
<pre class="lang-java s-code-block" style=" margin-top: 0px;  padding: var(--su12); border: 0px; font-variant-numeric: inherit; font-variant-east-asian: inherit; font-stretch: inherit; line-height: var(--lh-md); vertical-align: baseline; box-sizing: inherit; width: auto; max-height: 600px; overflow: auto; border-radius: var(--br-md); overflow-wrap: normal; "><br class=""></pre>
<pre class="lang-java s-code-block" style=" margin-top: 0px;  padding: var(--su12); border: 0px; font-variant-numeric: inherit; font-variant-east-asian: inherit; font-stretch: inherit; line-height: var(--lh-md); vertical-align: baseline; box-sizing: inherit; width: auto; max-height: 600px; overflow: auto; border-radius: var(--br-md); overflow-wrap: normal; "><span style="font-family: "lucida Grande", Verdana;" class="">looking forward to your answers.</span></pre>
<div style="font-family: "lucida Grande", Verdana;" class="">best wishes!</div>
<pre class="lang-java s-code-block" style=" margin-top: 0px;  padding: var(--su12); border: 0px; font-variant-numeric: inherit; font-variant-east-asian: inherit; font-stretch: inherit; line-height: var(--lh-md); vertical-align: baseline; box-sizing: inherit; width: auto; max-height: 600px; overflow: auto; border-radius: var(--br-md); overflow-wrap: normal; "><i style="font-family: "lucida Grande", Verdana;" class="">-Anjian Wen</i>  </pre>
<br class="">
<pre class="lang-java s-code-block" style=" margin-top: 0px;  padding: var(--su12); border: 0px; font-variant-numeric: inherit; font-variant-east-asian: inherit; font-stretch: inherit; line-height: var(--lh-md); vertical-align: baseline; box-sizing: inherit; width: auto; max-height: 600px; overflow: auto; border-radius: var(--br-md); overflow-wrap: normal; "><span style="color: var(--highlight-color); font-family: var(--ff-mono); font-size: var(--fs-body1); background-color: var(--highlight-bg);" class=""> </span><span style=" color: rgb(220, 220, 170); ; ; ; ; ; " class=""></span></pre>
</div>
</blockquote>
</div>
<br class="">
</div>
</body>
</html>