-
-
Notifications
You must be signed in to change notification settings - Fork 3.2k
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
http_simple_client disconnect deadlock #5397
Comments
Try removing: |
If I setup client with However I am trying to reproduce it against my local RPC server and I am getting another error (OSX, fe3403c):
Linux behaves differently, the same commit manages to finish the handshake (maybe ossl issue). |
Are both sides using monero code ? |
Yes, I tried it also with mock_daemon - starts RPC in a separate thread, thus the same code. I cannot reproduce this on Linux. It still may be just an environment glitch. |
It might be that your openssl version is somehow built without any of the ciphers monero whitelists. |
Anyway, I cannot reproduce the deadlock with simple isolated example. It may be something more complex after long course of interaction (like Wallet::API signature). So I close this until somebody can reproduce. |
Hmm I can reproduce it in trezor_tests if client uses
|
OK reopening. I managed to isolate the issue. It may be some race condition or I am just doing something wrong. Commit 34d0e788b01e7f7d74c2866d670e03d36e198dac Reproduce:
Interestingly, when the |
Does #5432 help ? |
This looks quite promising! I will give it a try soon. |
Hmm I've got deadlock in reading now :/
|
Trezor tests cannot shutdown ssl :/
|
Do you have a custom io service ? If so, it is stopped before that ? |
I am using |
Did you work it out in the end ? |
ping |
@selsta ah sorry, I missed the message. The binary is in Trezor tests folder, not the best location, I admit 😅 Trezor tests need to be built. |
That's the only options I found. Did I miss something? Where to I find trezor tests.
|
ah, sorry @selsta, I keep forgetting on this one. I use the following Makefile goals to build Trezor tests
|
@ph4r05 Thanks, that worked. Do I need some extra setup to get past
|
The
epee::net_utils::http::http_simple_client
with SSL enabled, used with RPC daemon cannot disconnect. It freezes onm_http_client.disconnect()
call.The trace from gdb when execution is interrupted:
I use it in
mock_deamon
intrezor_tests
. Previously, the mock_daemon together with http_client was deinitialized, now it freezes. It may be the commit 7acfa9f@vtnerd Do you have an idea why
m_io_service.run_one();
freezes now? I am a bit stuck on this.I am using this branch: https://github.com/ph4r05/monero/tree/coverity_scan
Can you pls reproduce this? If not I can make a simple PoC target with http client connecting to RPC over SSL.
Thanks!
The text was updated successfully, but these errors were encountered: