New issue 2006: OperationalError when there are a lot of sqlite3 databases to close in GC https://bitbucket.org/pypy/pypy/issue/2006/operationalerror-when-there-are-a-lot-of
David MacIver: In advance: I know you're going to tell me to please close my databases and I will do so. :-) I thought you'd probably want to know about this bug anyway. The following code when run produces a whole bunch of messages of the form Exception OperationalError: OperationalError(u'unable to close due to unfinalised statements',) in method __del__ of <__main__.SQLiteBackend object at 0x00000000024ee2a8> ignored ``` #!python import sqlite3 class SQLiteBackend(object): def __init__(self): self.connection = sqlite3.connect(":memory:") def close(self): self.connection.close() def __del__(self): self.close() def create_db_if_needed(self): conn = self.connection cursor = conn.cursor() try: cursor.execute(""" create table if not exists hypothesis_data_mapping( value text ) """) finally: cursor.close() conn.commit() if __name__ == '__main__': dbs = [] for i in xrange(1000): SQLiteBackend().create_db_if_needed() ``` Reducing the number of databases to ~100 it seems to no longer produce these errors. _______________________________________________ pypy-issue mailing list pypy-issue@python.org https://mail.python.org/mailman/listinfo/pypy-issue