[
https://issues.apache.org/jira/browse/CXF-9028?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Andriy Redko closed CXF-9028.
-----------------------------
Resolution: Won't Fix
> CXF produces thread pinning when using virtual threads
> ------------------------------------------------------
>
> Key: CXF-9028
> URL: https://issues.apache.org/jira/browse/CXF-9028
> Project: CXF
> Issue Type: Bug
> Reporter: Jose Antonio
> Priority: Major
> Attachments: image-2024-06-11-13-14-36-151.png,
> image-2024-06-11-13-15-39-139.png
>
>
> When using virtual threads, it's important to avoid the use of synchronized
> objects and methods because I/O operations executed in them will pin the
> virtual thread to its carrier thread, blocking the carrier thread instead of
> the virtual one.
> Executing some tests with a CXF client in a Tomcat server using virtual
> threads I see that, if I spawn a few tens of virtual threads I get a lot of
> thread pinning due to the code in
>
> {code:java}
> PhaseInterceptorChain{code}
>
> In this class, there's a method that's invoked for all requests
>
> {code:java}
> public synchronized boolean doIntercept(Message message){code}
>
> This method pins the virtual thread to the carrier thread for all the
> duration of the request and response, which might be a lot of time and it
> hinders the multithreaded applications throughput. Just changing the use of
> synchronized keywords for ReentrantLocks will solve this issue.
>
> !image-2024-06-11-13-15-39-139.png|width=769,height=357!
>
--
This message was sent by Atlassian Jira
(v8.20.10#820010)