Vegeta created DIRMINA-1177:
-------------------------------
Summary: The Connector will blocked when execute dispose, And
multiple threads are leaking
Key: DIRMINA-1177
URL: https://issues.apache.org/jira/browse/DIRMINA-1177
Project: MINA
Issue Type: Bug
Components: Core
Affects Versions: 2.0.13
Reporter: Vegeta
Attachments: image-2024-01-08-16-53-27-846.png,
image-2024-01-08-16-54-02-222.png, image-2024-01-08-16-58-34-700.png,
stack_2023-07-02_22.log
In an old project, a RpcClient using mina 2.0.13 version has a memory leak.
After investigation, it was found that many NioProcessor and NioSocketConnector
were not recycled, and the number of threads was continuously increasing (the
traffic did not increase).
Below is the RpcClient code used in the project. After reading, I also found
some problems:
1.session close is not right
{code:java}
RpcClient#close()
future.getSession().close(false);
// this future is ConnectFuture,not CloseFuture
futureUInterrupt = future.awaitUninterruptibly(CONNECTOR_WORKER_TIMEOUT);
{code}
2.RpcClient#close has concurrent calls
{code:java}
1.RpcClient#startHealthCheck
2.RpcClient#activateConnectionSensor{code}
But I still can't reproduce this problem, My leader want to locate the problem
as much as possible before trying on the prod environment, such as updating the
version, modifying session close to future.getSession().close(true) and wait().
ps: The heap.prof file cannot be uploaded as it exceeds 60MB. this is a
google drive link:
https://drive.google.com/file/d/14UBnhAF-7sdfYJsh7FMfKxx-dm0BqU9t/view?usp=drive_link
!image-2024-01-08-16-53-27-846.png!
!image-2024-01-08-16-54-02-222.png!
!image-2024-01-08-16-58-34-700.png!
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]