Skip to content

Errors within connection pool after INSERT queries #1

Description

@0xf104a

The app runs into errors after an INSERT query is completed. While results are properly stored in database, any other database related action runs into following exception:

sqlalchemy.exc.PendingRollbackError: Can't reconnect until invalid transaction is rolled back.  Please rollback() fully before proceeding (Background on this error at: https://sqlalche.me/e/20/8s2b)
	
	
2025-01-25 15:50:04.592	
    raise exc.PendingRollbackError(
	
	
2025-01-25 15:50:04.592	
  File "/usr/local/lib/python3.11/site-packages/sqlalchemy/engine/base.py", line 666, in _invalid_transaction
	
	
2025-01-25 15:50:04.592	
    self._invalid_transaction()
	
	
2025-01-25 15:50:04.592	
  File "/usr/local/lib/python3.11/site-packages/sqlalchemy/engine/base.py", line 676, in _revalidate_connection
	
	
2025-01-25 15:50:04.592	
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
	
	
2025-01-25 15:50:04.592	
    conn = self._revalidate_connection()
	
	
2025-01-25 15:50:04.592	
  File "/usr/local/lib/python3.11/site-packages/sqlalchemy/engine/base.py", line 1810, in _execute_context
	
	
2025-01-25 15:50:04.592	
          ^^^^^^^^^^^^^^^^^^^^^^
	
	
2025-01-25 15:50:04.592	
    ret = self._execute_context(
	
	
2025-01-25 15:50:04.592	
  File "/usr/local/lib/python3.11/site-packages/sqlalchemy/engine/base.py", line 1638, in _execute_clauseelement
	
	
2025-01-25 15:50:04.592	
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
	
	
2025-01-25 15:50:04.592	
    return connection._execute_clauseelement(
	
	
2025-01-25 15:50:04.592	
  File "/usr/local/lib/python3.11/site-packages/sqlalchemy/sql/elements.py", line 515, in _execute_on_connection
	
	
2025-01-25 15:50:04.592	
           ^^^^^
	
	
2025-01-25 15:50:04.592	
    return meth(
	
	
2025-01-25 15:50:04.592	
  File "/usr/local/lib/python3.11/site-packages/sqlalchemy/engine/base.py", line 1416, in execute
	
	
2025-01-25 15:50:04.592	
             ^^^^^^^^^^^^^
	
	
2025-01-25 15:50:04.592	
    result = conn.execute(
	
	
2025-01-25 15:50:04.592	
  File "/usr/local/lib/python3.11/site-packages/sqlalchemy/orm/context.py", line 305, in orm_execute_statement
	
	
2025-01-25 15:50:04.592	
                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
	
	
2025-01-25 15:50:04.592	
    result: Result[Any] = compile_state_cls.orm_execute_statement(
	
	
2025-01-25 15:50:04.592	
  File "/usr/local/lib/python3.11/site-packages/sqlalchemy/orm/session.py", line 2251, in _execute_internal
	
	
2025-01-25 15:50:04.592	
           ^^^^^^^^^^^^^^^^^^^^^^^
	
	
2025-01-25 15:50:04.592	
    return self._execute_internal(
	
	
2025-01-25 15:50:04.592	
  File "/usr/local/lib/python3.11/site-packages/sqlalchemy/orm/session.py", line 2365, in execute
	
	
2025-01-25 15:50:04.592	
                                                  ^^^^^^^^^^^^^^^^^^^^^
	
	
2025-01-25 15:50:04.592	
    result: Union[ScalarResult[_T], Result[_T]] = self.session.execute(
	
	
2025-01-25 15:50:04.592	
  File "/usr/local/lib/python3.11/site-packages/sqlalchemy/orm/query.py", line 2853, in _iter
	
	
2025-01-25 15:50:04.592	
           ^^^^^^^^^^^^^^^^^^^^^
	
	
2025-01-25 15:50:04.592	
    return self.limit(1)._iter().first()  # type: ignore
	
	
2025-01-25 15:50:04.592	
  File "/usr/local/lib/python3.11/site-packages/sqlalchemy/orm/query.py", line 2754, in first
	
	
2025-01-25 15:50:04.592	
                         ^^^^^^^
	
	
2025-01-25 15:50:04.592	
    buildtype=buildtype).first()
	
	
2025-01-25 15:50:04.592	
  File "/opt/droidapi/endpoints/update.py", line 63, in update_get
	
	
2025-01-25 15:50:04.592	
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
	
	
2025-01-25 15:50:04.592	
    return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args)  # type: ignore[no-any-return]
	
	
2025-01-25 15:50:04.592	
  File "/usr/local/lib/python3.11/site-packages/flask/app.py", line 865, in dispatch_request
	
	
2025-01-25 15:50:04.592	
         ^^^^^^^^^^^^^^^^^^^^^^^
	
	
2025-01-25 15:50:04.592	
    rv = self.dispatch_request()
	
	
2025-01-25 15:50:04.592	
  File "/usr/local/lib/python3.11/site-packages/flask/app.py", line 880, in full_dispatch_request
	
	
2025-01-25 15:50:04.592	
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
	
	
2025-01-25 15:50:04.592	
    rv = self.handle_user_exception(e)
	
	
2025-01-25 15:50:04.592	
  File "/usr/local/lib/python3.11/site-packages/flask/app.py", line 882, in full_dispatch_request
	
	
2025-01-25 15:50:04.592	
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
	
	
2025-01-25 15:50:04.592	
    response = self.full_dispatch_request()
	
	
2025-01-25 15:50:04.592	
  File "/usr/local/lib/python3.11/site-packages/flask/app.py", line 1473, in wsgi_app
	
	
2025-01-25 15:50:04.592	
Traceback (most recent call last):
	
	
2025-01-25 15:50:04.592	
[2025-01-25 14:50:04,591] ERROR in app: Exception on /api/v1/update/hotdogb/UNOFFICIAL/0 [GET]
	
	
2025-01-25 15:50:04.168	
[pid: 12|app: 0|req: 8/18] 172.17.0.1 () {44 vars in 761 bytes} [Sat Jan 25 14:50:04 2025] GET /api/v1/update/hotdogb/UNOFFICIAL/0 => generated 265 bytes in 2 msecs (HTTP/1.0 500) 2 headers in 99 bytes (1 switches on core 1)
	
	
2025-01-25 15:50:04.168	
sqlalchemy.exc.PendingRollbackError: Can't reconnect until invalid transaction is rolled back.  Please rollback() fully before proceeding (Background on this error at: https://sqlalche.me/e/20/8s2b)
	
	
2025-01-25 15:50:04.168	
    raise exc.PendingRollbackError(
	
	
2025-01-25 15:50:04.168	
  File "/usr/local/lib/python3.11/site-packages/sqlalchemy/engine/base.py", line 666, in _invalid_transaction
	
	
2025-01-25 15:50:04.168	
    self._invalid_transaction()
	
	
2025-01-25 15:50:04.168	
  File "/usr/local/lib/python3.11/site-packages/sqlalchemy/engine/base.py", line 676, in _revalidate_connection
	
	
2025-01-25 15:50:04.168	
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
	
	
2025-01-25 15:50:04.168	
    conn = self._revalidate_connection()
	
	
2025-01-25 15:50:04.168	
  File "/usr/local/lib/python3.11/site-packages/sqlalchemy/engine/base.py", line 1810, in _execute_context
	
	
2025-01-25 15:50:04.168	
          ^^^^^^^^^^^^^^^^^^^^^^
	
	
2025-01-25 15:50:04.168	
    ret = self._execute_context(
	
	
2025-01-25 15:50:04.168	
  File "/usr/local/lib/python3.11/site-packages/sqlalchemy/engine/base.py", line 1638, in _execute_clauseelement
	
	
2025-01-25 15:50:04.168	
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
	
	
2025-01-25 15:50:04.168	
    return connection._execute_clauseelement(
	
	
2025-01-25 15:50:04.168	
  File "/usr/local/lib/python3.11/site-packages/sqlalchemy/sql/elements.py", line 515, in _execute_on_connection
	
	
2025-01-25 15:50:04.168	
           ^^^^^
	
	
2025-01-25 15:50:04.168	
    return meth(
	
	
2025-01-25 15:50:04.168	
  File "/usr/local/lib/python3.11/site-packages/sqlalchemy/engine/base.py", line 1416, in execute
	
	
2025-01-25 15:50:04.168	
             ^^^^^^^^^^^^^
	
	
2025-01-25 15:50:04.168	
    result = conn.execute(
	
	
2025-01-25 15:50:04.168	
  File "/usr/local/lib/python3.11/site-packages/sqlalchemy/orm/context.py", line 305, in orm_execute_statement
	
	
2025-01-25 15:50:04.168	
                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
	
	
2025-01-25 15:50:04.168	
    result: Result[Any] = compile_state_cls.orm_execute_statement(
	
	
2025-01-25 15:50:04.168	
  File "/usr/local/lib/python3.11/site-packages/sqlalchemy/orm/session.py", line 2251, in _execute_internal
	
	
2025-01-25 15:50:04.168	
           ^^^^^^^^^^^^^^^^^^^^^^^
	
	
2025-01-25 15:50:04.168	
    return self._execute_internal(
	
	
2025-01-25 15:50:04.168	
  File "/usr/local/lib/python3.11/site-packages/sqlalchemy/orm/session.py", line 2365, in execute
	
	
2025-01-25 15:50:04.168	
                                                  ^^^^^^^^^^^^^^^^^^^^^
	
	
2025-01-25 15:50:04.168	
    result: Union[ScalarResult[_T], Result[_T]] = self.session.execute(
	
	
2025-01-25 15:50:04.168	
  File "/usr/local/lib/python3.11/site-packages/sqlalchemy/orm/query.py", line 2853, in _iter
	
	
2025-01-25 15:50:04.168	
           ^^^^^^^^^^^^^^^^^^^^^
	
	
2025-01-25 15:50:04.168	
    return self.limit(1)._iter().first()  # type: ignore
	
	
2025-01-25 15:50:04.168	
  File "/usr/local/lib/python3.11/site-packages/sqlalchemy/orm/query.py", line 2754, in first
	
	
2025-01-25 15:50:04.168	
                         ^^^^^^^
	
	
2025-01-25 15:50:04.168	
    buildtype=buildtype).first()
	
	
2025-01-25 15:50:04.168	
  File "/opt/droidapi/endpoints/update.py", line 63, in update_get
	
	
2025-01-25 15:50:04.168	
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
	
	
2025-01-25 15:50:04.168	
    return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args)  # type: ignore[no-any-return]
	
	
2025-01-25 15:50:04.168	
  File "/usr/local/lib/python3.11/site-packages/flask/app.py", line 865, in dispatch_request
	
	
2025-01-25 15:50:04.168	
         ^^^^^^^^^^^^^^^^^^^^^^^
	
	
2025-01-25 15:50:04.168	
    rv = self.dispatch_request()
	
	
2025-01-25 15:50:04.168	
  File "/usr/local/lib/python3.11/site-packages/flask/app.py", line 880, in full_dispatch_request
	
	
2025-01-25 15:50:04.168	
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
	
	
2025-01-25 15:50:04.168	
    rv = self.handle_user_exception(e)
	
	
2025-01-25 15:50:04.168	
  File "/usr/local/lib/python3.11/site-packages/flask/app.py", line 882, in full_dispatch_request
	
	
2025-01-25 15:50:04.168	
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
	
	
2025-01-25 15:50:04.168	
    response = self.full_dispatch_request()
	
	
2025-01-25 15:50:04.168	
  File "/usr/local/lib/python3.11/site-packages/flask/app.py", line 1473, in wsgi_app
	
	
2025-01-25 15:50:04.168	
Traceback (most recent call last):

Metadata

Metadata

Assignees

Labels

bugSomething isn't workingtestProblem is fixed and is in process of testing

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions