-
Notifications
You must be signed in to change notification settings - Fork 45
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
Upgrade to OpenSSL 0.9.x #59
Conversation
Thanks for the PR! |
I am also not sure :( Is that something you can / will take on?
…On Mon 13. Nov 2017 at 04:44, Andrii Dmytrenko ***@***.***> wrote:
Thanks for the PR!
I was trying to figure out if there was any way to upgrade this crate to
support new openssl, and this approach was also considered. The problem
with this is that it emulates async IO with timeouts, which is very
resource consuming and slow (especially writes, since it needs to wait for
read to timeout.
And now I'm not sure that there is any easy way to upgrade to new openssl
without doing an async rewrite of the client crate.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
<#59 (comment)>, or mute
the thread
<https://github.com/notifications/unsubscribe-auth/AAErrOYKFkCrdcIwiwRbKCHU5HGygH_Pks5s2A9sgaJpZM4Qatob>
.
|
@grahamc I started rewriting this project using tokio, but at that time tokio was changing/breaking things every week or so and I stopped. |
Unfortunately Lapin and a Futures based mechanism is really not an appropriate approach for my use case, so I'm just fighting the losing battle of making this work. The latest commit will send many writes before attempting a read, this seems to make it more likely that a frame is ready to be read and seems to improve throughput. |
… is likely gone already
The AMQP library cannot appropriate handle failures in either of these cases. It is easy for a channel's SyncSender to become full of NO_ROUTE messages due to mandatory delivery failing. This effectively causes a deadlock of the client.
I'm going to close this PR since it is off my master branch, which is a bit junky and not really PR worthy. I've submitted PRs for non-SSL improvements out of this branch, though. |
Closes:
It isn't ideal, the 1s read timeout can slow things down a bit. But: It didn't take much to implement this, and lets me use a recent openssl. I'd be happy to fix it if you have any suggestions on how :)
Basically creates a new syncsender / reader for writes, and the "reading loop" also handles writes now.
This code is definitely POC. If you like it, I would like to clean it up for inclusion.