Skip to content

Iterate throw rows returned by a sqlalchemy call within with block #1040

@BryceStevenWilley

Description

@BryceStevenWilley

Has caused issues on ILAO servers in the Appearance form.

  File "/usr/share/docassemble/local3.12/lib/python3.12/site-packages/docassemble/AssemblyLine/sessions.py", line 467, in get_saved_interview_list
    for session in rs:
  File "/usr/share/docassemble/local3.12/lib/python3.12/site-packages/sqlalchemy/engine/result.py", line 527, in iterrows
    for raw_row in self._fetchiter_impl():
  File "/usr/share/docassemble/local3.12/lib/python3.12/site-packages/sqlalchemy/engine/cursor.py", line 2243, in _fetchiter_impl
    row = fetchone(self, self.cursor)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/share/docassemble/local3.12/lib/python3.12/site-packages/sqlalchemy/engine/cursor.py", line 1171, in fetchone
    self.handle_exception(result, dbapi_cursor, e)
  File "/usr/share/docassemble/local3.12/lib/python3.12/site-packages/sqlalchemy/engine/cursor.py", line 1145, in handle_exception
    result.connection._handle_dbapi_exception(
  File "/usr/share/docassemble/local3.12/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 2363, in _handle_dbapi_exception
    raise sqlalchemy_exception.with_traceback(exc_info[2]) from e
  File "/usr/share/docassemble/local3.12/lib/python3.12/site-packages/sqlalchemy/engine/cursor.py", line 1166, in fetchone
    row = dbapi_cursor.fetchone()
          ^^^^^^^^^^^^^^^^^^^^^^^
sqlalchemy.exc.InterfaceError: (psycopg2.InterfaceError) cursor already closed
(Background on this error at: https://sqlalche.me/e/20/rvf5)

Definitely in

sessions = []
for session in rs:
sessions.append(dict(session._mapping))
return sessions

but should check other db calls in that file to fix for similar problems.

https://docs.sqlalchemy.org/en/21/core/connections.html

Metadata

Metadata

Type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions