Bug 738234 - Infinite loop in safe_str in celery 2.2.7
Summary: Infinite loop in safe_str in celery 2.2.7
Keywords:
Status: NEW
Alias: None
Product: Fedora EPEL
Classification: Fedora
Component: python-celery
Version: el6
Hardware: All
OS: Linux
unspecified
high
Target Milestone: ---
Assignee: Andrew Colin Kissa
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2011-09-14 11:29 UTC by Brian J. Murrell
Modified: 2011-09-14 11:29 UTC (History)
1 user (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed:


Attachments (Terms of Use)

Description Brian J. Murrell 2011-09-14 11:29:42 UTC
(From https://github.com/ask/celery/issues/481) Description of problem:
In celery.utils.encoding.safe_str, it calls safe_repr if the object is not a basestring. However, safe_repr calls safe_str on exceptions from repr. This leads to an infinite recursion when passed an object which is not a basestring, and throws an exception from repr.

This bug is not present in 2.3 because that has a separate _safe_str which is called out of safe_repr on exceptions. 2.3 has the more desirable behaviour of simply raising up the exception when this situation arises.

This bug was introduced in this commit:
https://github.com/ask/celery/commit/edf3b3f33acdada9264754068d9c74ee76692cd9#celery/utils/encoding.py

Version-Release number of selected component (if applicable):
2.2.7

How reproducible:
Unknown

Given this issue, and the need to use a python-celery < 2.2.7 in order to avoid it, it would be useful to the EPEL-using community to rev python-celery back to something prior to 2.2.7 until this is fixed upstream.  I am using 2.2.4 here to avoid this issue, but presumably, 2.2.6 would even be sufficient.


Note You need to log in before you can comment on or make changes to this bug.