-
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
KeyError('properties',) in Channel.basic_get #28
Comments
Interesting, I got this in the development version yesterday, didn't think it was in 3.0.19 as well. |
Just a few more details. Today or tomorrow I will try to re-enable the eventlet node and see what happens. The error occurred the first time with a mixed event let/multiprocessing environment. I guess I could provide no more help since the problem occurs only in the production environment and causes data corruption so I cannot risk of reproducing it. Some more consideration:
I hope all this informations helps. Let me know if you need more info, the performance hit of py-amqp over librabbitmq is around 4-5% percent of CPU, that could be peanuts but not when you are a small startup resource constrained and you run very high-load processes. Bye |
I'm also seeing this occasionally when using group tasks. For now I've had to drop librabbitmq and use py-amqp to get around it.
Versions: Python 2.7.4 |
I don't see how properties can not be set, but maybe this is some other type of frame and it does not handle it properly. I'll have a look tomorrow |
@skwash : Your configuration mixes eventlet worker with multiprocessing workers? Because I have experienced the problem just on the Eventlet queue. Using py-amqp lib only on the eventlet queue solved the issues for me(it's more than five month that I'm in this config and no more error happened). Hope this helps. |
No eventlet here, just multiprocessing workers. Interestingly enough, I've been digging in and noticed that the problem is only being seen on the calling code and not the workers. The workers are running with librabbitmq 1.0.1 and some slightly older versions of everything else and have been running smoothly for many months now. It definitely seems to be something specifically related to result queues. |
That's interesting. I've seen the error too just on the return queue. Have you checked the status of the result queue? Usually the result queue contains 1 element when the result has not yet been consumed and 0 after. In my situation rabbitmqctl keep listing one element in queue when I received the error but using the python APIs (both py-amqp and librabbitmq) I wasn't able to get any result. I hope that finding the commonalities on the issue could help finding the cause. |
Adding my voice to this.
pip freeze:
python -V
|
Has there been any progress on this issue? I'm hitting the same thing with celery 3.0.20, librabbitmq 1.0.3, and amqp 1.0.13. |
Any progress at all? I'm hitting the same error. |
+1 - the same issue: |
Using celery I found out in the log file several error like this one:
This error appears only randomly and disappear using py-amqp thus I think the problem is with librabbitmq.
Modifying the li near the 67 librabbitmq/init.py in this way:
I get this error log:
Checking the queue with rabbitmqctl list_queues shows that the queue still contain a message but trying to read it using librabbitmq from the python console yield no results. The issue appears randomly (let's say every 10 tasks launched) and only on the production environment (so the testing activity is limited).
The server is a Debian Wheezy with all the patch installed and the configuration is:
Django==1.4.5
MySQL-python==1.2.3
PIL==1.1.7
South==0.7.5
amqp==1.0.11
billiard==2.7.3.28
boto==2.3.0
celery==3.0.19
dnspython==1.10.0
docutils==0.8.1
eventlet==0.12.1
flower==0.4.2
greenlet==0.4.0
httplib2==0.7.7
ipython==0.13.1
jsonfield==0.9.13
kombu==2.5.10
librabbitmq==1.0.1
passlib==1.6.1
pexpect==2.4
pytz==2012c
redis==2.4.13
simplegeneric==0.8.1
simplejson==3.0.7
six==1.3.0
And is identical to test environment where the issues never happened. The issue appeared when we added an eventlet node to the celery configuration but disabling it has not solved the issue.
I don't konw if it could be useful for debugging but we start seeing also another error on a task on the get result of a starmap.
I'm not sure if this last error is related but it has also disappeared using py-amqp (even if this task is called only few times so I'm not totally sure this problem is solved).
The text was updated successfully, but these errors were encountered: