-
Notifications
You must be signed in to change notification settings - Fork 91
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
Modification to allow for empty message bodies. #59
Conversation
If we receive a message with no body (and no body_target length), we should accept the fact and return an empty body rather than throwing an exception about the frame.
Any news? |
I don't have commit rights to this repo, so I can only suggest the solution and/or put in the pull request :( |
Weird, didn't see this pull when releasing the new version, it looks ok to me but I'm not sure about using C++ style comments ( |
Modification to allow for empty message bodies.
Can you please release this as 0.6.2? |
ping^ It would be nice to no longer need to pull from a private repo with the custom built packages. |
@ask could you please release a new version with the fix? I am having the same problem. Thanks! |
@armyofevilrobots I have celery 3.1.18 (Cipater) [2015-10-17 14:54:20,666: ERROR/MainProcess] Task celery.chord_unlock[d08edb6c-ee7b-4171-9e99-4be85e53dbda] raised unexpected: ConnectionError('Bad frame read',) |
Yep, I actually had this bite me the other day when I accidentally pulled from pypi instead of my local patched checkout. I don't think 1.6.1 has this patch, and 1.6.2 isn't out last time I checked. |
Thank you so much, I cloned from 1.6 branch and it's OK now :) |
I got struck by the same error :( Does anyone know when it's planned to release a version including this fix ? |
I just finished an open-source project audit/review on my (internal) project that uses librabbitmq, and we're migrating away because of this issue. I realize that this bug may not impact the parent project, but we cannot continue recommending a custom build of librabbitmq for our users. I am not trying to be one of those ungrateful users that expects free support, nor am I trying to give anybody here a bad time. I understand that you have to pick your battles when working on a project. I merely wanted to suggest that wrapping a 1.6.2 would fix a few issues that are marked as closed, and obviously keep biting people (see the tracked bugs at the top of this one). I have migrated my codebase to http://rabbitpy.readthedocs.io/en/latest/ and I am quite happy with that library, if anybody else is looking for an alternative to this library. |
@derek-virtustream since you commented here are you doing well with rabbitpy? Bad experiences? |
Funny that you ask. I just migrated back again to Pika. We originally moved away from Pika because I found it's blocking connector a bit hokey (and it had some issues when running under Eventlet), and because it's licensing at the time was problematic (MPLV1). We've since dropped Eventlet entirely due to some reliability/stability problems, and now that the license for Pika has moved to a 3-clause BSD, I've just finished porting our code back to that. I used RabbitPy for a while, but it's limited in the binary formats it supports for outgoing message headers, and we had a hard dependency on an external tool that required incoming boolean values (or it would reject messages). We had to either add that binary type header functionality to RabbitPy, or switch libs again, which is what triggered all of the above^. |
did you tried py-amqp? |
If we receive a message with no body (and no body_target length), we
should accept the fact and return an empty body rather than throwing
an exception about the frame.
This is a fix (hopefully) for both #30 and #48.
And I waffled on handling the final case, of receiving a payload with a declared zero length and a non-zero length body , but I don't think the logic further up will ever do that, so left it out of the patch for simplicity.