Who is throwing (and catching) this MySQL Exception?
I believe this error can occur if you are using the same connection/cursor from multiple threads. 
However, I dont think the creators of Django has made such a mistake, but if you are doing something by yourself it can easily happen.
i'm using Python with MySQL and Django.  I keep seeing this error and I can't figure out where the exception is being thrown:

Exception _mysql_exceptions.ProgrammingError: (2014, "Commands out of sync; you can't run this command now") in <bound method Cursor.__del__ of <MySQLdb.cursors.Cursor object at 0x20108150>> ignored

I have many "try" and "exception" blocks in my code--if the exception occurred within one of those, then I would see my own debugging messages.  The above Exception is obviously being caught somewhere since my program does not abort when the Exception is thrown.
I'm very puzzled, can someone help me out?