New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
A dead-lock problem about HttpClientRequestImpl and Http1xClientConnection #453
Comments
can you provide a reproducer ? |
can you re-open this issue in eclipse/vertx/vert.x repository ? |
I think this bug was fixed in vertx master, can you try with Vert.x 4.0 ? |
Hi @vietj , I just created a test to reproduce this problem, This problem can be reproduced on both v3.7.0 and v3.6.2. So I think this problem should have been addressed in Vert.x 4.0. Thus, I think we can close this now. Thank you for your help, and looking forward to Vert.x 4.0. |
(by the way, I'm not familiar with the processing of how to deal with issues registered at here. so who will click the close button of this issue?) |
thanks @BorisJineman I think I know which commit has been done in master that fixes the issue, I will use your reproducer as basis for writing a test. it should be fixed in 3.7.1 |
for record the full stack trace:
|
Hi team,
We were facing a dead lock problem when we use Vertx's HttpClient,
we searched this problem around, but not found any related documentations or discussions,
So I go here for seeking helps, hope team can help me to investigate it and check if there is any bugs.
Background
We want to pump an upper stream to a HTTP client's write stream.
So there are some codes like bellow,
In the inputReadStream, The callback of
endHandler
might be executed in another context.Problem
We identified a dead-lock in the
httpRequest.end()
method,and beside above dead-lock's log, we found another related dead-lock detection log as bellow,
Investigation
We have a look into the codes of vertx, we found there are two locks,
one is in HttpClientRequestImpl class, it will lock itself,
and another one is in Http1xClientConnection and its parent class, it will also lock itself,
And we found if they are run in multi-thread together, the two locks might become dead-lock.
We drawn a diagram to explain what we saw,
Could team help us to investigate this and help us to check if there is a dead-lock problem in vertx?
Addition information,
Vert.X version: 3.6.2
The text was updated successfully, but these errors were encountered: