[server] prevent returning closed cursor to the database pool draft
authorPhilippe Pepiot <ph@itsalwaysdns.eu>
Tue, 31 Mar 2020 19:15:03 +0200
changeset 12957 0c973204033a
parent 12931 6eae252361e5
child 12958 3667f6df1ec3
[server] prevent returning closed cursor to the database pool In since c8c6ad8 init_repository use repo.internal_cnx() instead of repo.system_source.get_connection() so it use the pool and we should not close cursors from the pool before returning it back. Otherwise we may have "connection already closed" error. This bug only trigger when connection-pool-size = 1. Since we are moving to use a dynamic pooler we need to get this fixed. This does not occur with sqlite since the connection wrapper instantiate new cursor everytime, but this occur with other databases.
cubicweb/server/__init__.py
--- a/cubicweb/server/__init__.py	Fri Mar 20 14:34:07 2020 +0100
+++ b/cubicweb/server/__init__.py	Tue Mar 31 19:15:03 2020 +0200
@@ -253,7 +253,6 @@
             print('The following SQL statements failed. You should check your schema.')
             print(failed)
             raise Exception('execution of the sql schema failed, you should check your schema')
-        sqlcursor.close()
         sqlcnx.commit()
     with repo.internal_cnx() as cnx:
         # insert entity representing the system source