-
Notifications
You must be signed in to change notification settings - Fork 36
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
SSL Retry #14
Comments
Sorry, this was pre-upgrade to latest |
Ah, so upgrading to 1.3.0 and it worked? |
Yes. But I also changed my consumer logic to better match the scalable example.... So it may not have been present in the old release... It may have been my code :) |
Let me know if you run into any new issues. I haven't had too many chances to test the SSL implementation. |
Still getting these errors consistently (2-3 times an hour) under ssl
|
I've update all my SSL libraries (running official Python Docker image) EDIT: Errors are still occurring but they are all now [Errno 14] Bad address |
I am at a conference, but I'll take a look and I'll try to have it fixed by Monday. |
I am able to reproduce this, but could you paste your RabbitMQ logs as well? Also, are you running multiple channels (consumers)? When I encountered this I saw the following in my RabbitMQ logs.
I think that it may be related to thread-safety of some sort. The frames may not be delivered in the correct sequence for some reason when SSL is enabled. |
I am running 5 consumer channels and a publisher channel. The publisher channel is only channel accessed by multiple threads. I also see those in my rabbitmq logs RabbitMQ 3.6.0, Erlang 18.2 |
I re-wrote the IO handling and was able to confirm that this is a threading issue. I am currently not quite sure on how I will solve this, without introducing unnecessary complexities. |
I pushed a fix. I honestly wanted to avoid having to introduce more locking, but reliability > performance. Let me know if you can try it out. |
Deployed it, will report after its had some time. |
You could use an internal queue if you didn't want to lock on writes. Assuming python has a multi-thread lockless implementation :) |
Looks like that has done the trick! Thanks |
Glad it worked and thanks for confirming! I'll test this out and release it officially in a couple of days, and I'll try to come up with a better solution for the next major release. |
24 hours without single error. Still seems to be sending messages as well ;) |
Awesome. I officially pushed the version out to pypi as well. Thanks again for reporting this!! |
I regularly get [SSL: BAD_WRITE_RETRY] bad write retry (_ssl.c:1647) errors when running AMQP-Storm using SSL.
Looking at the code I think its because it's not handling SSL Retry exceptions from the socket
http://stackoverflow.com/questions/2997218/why-am-i-getting-error1409f07fssl-routinesssl3-write-pending-bad-write-retr
i'll get a stack trace to see if its on write or on do_handshake
The text was updated successfully, but these errors were encountered: