<!DOCTYPE html><html><head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  </head>
  <body>
    <p>On 28/07/2024 13:59, Сергей Цыпанов wrote:</p>
    <blockquote type="cite" cite="mid:57721722171588@7jeuw3ncvslfpppo.sas.yp-c.yandex.net">
      <pre class="moz-quote-pre" wrap="">:
 
In the file pay attention to these lines:
 
12 org.apache.http.pool.AbstractConnPool.getPoolEntryBlocking(AbstractConnPool.java:319)
92 org.apache.http.pool.AbstractConnPool.getPoolEntryBlocking(AbstractConnPool.java:391)
</pre>
    </blockquote>
    <p>Further up in the stack is <span style="white-space: pre-wrap">AbstractConnPool.get with the synchronized block that is causing the issue here. A limitation right now is that a virtual thread cannot unmount when inside a synchronized statement or method. In this case it seems that all carriers are pinned by virtual threads that are all blocked in the same place. The other short term fix is to this to migrate this code to also use a j.u.concurrent lock.</span></p>
    <p><span style="white-space: pre-wrap">There is work under way to remove this limitation. There are EA builds available [1] that we looking for help testing before the changes are proposed for the main line and a future JDK release.</span></p>
    <p><span style="white-space: pre-wrap">-Alan
</span></p>
    <p><span style="white-space: pre-wrap">[1] <a class="moz-txt-link-freetext" href="https://jdk.java.net/loom/">https://jdk.java.net/loom/</a>
</span></p>
  </body>
</html>