Using CELERYD_POOL of gevent can cause a connection leak. Cleaning up the cached_properties prevents that.
@@ -118,6 +118,8 @@ class MongoBackend(BaseBackend):
if self._connection is not None:
# MongoDB connection will be closed automatically when object
# goes out of scope
+ del(self.collection)
+ del(self.database)
self._connection = None
def _store_result(self, task_id, result, status, traceback=None):