Today I released version 0.3.3 of Motor, the asynchronous MongoDB driver for Python and Tornado. This release is compatible with MongoDB 2.2, 2.4, and 2.6. It requires PyMongo 2.7.1.
This release fixes an occasional infinite loop and memory leak. The bug was triggered when you passed a callback to MotorCursor.each, and Motor had to open a new socket in the process of executing your callback, and your callback raised an exception:
from tornado.ioloop import IOLoop import motor loop = IOLoop.instance() def each(result, error): raise Exception() collection = motor.MotorClient().test.test cursor = collection.find().each(callback=each) loop.start()
The bug has been present since Motor 0.2. I am indebted to Eugene Protozanov for an excellent bug report.