Celery workers still failing
On v0.4.9 I see the following traceback in celery logs when multiple tasks are running.
[2023-11-15 09:43:47,064: ERROR/ForkPoolWorker-2] Task zesje.scans.process_scan[c0123198-e0ce-4ab4-9707-7815826b7903] raised unexpected: PendingRollbackError("Can't reconnect until invalid transaction is rolled back.")
Traceback (most recent call last):
File "/app/zesje/scans.py", line 100, in _process_scan
report_progress(f"Processing page {number} / {total}")
File "/app/zesje/scans.py", line 187, in write_scan_status
scan = Scan.query.get(scan_id)
File "<string>", line 2, in get
File "/opt/conda/lib/python3.9/site-packages/sqlalchemy/util/deprecations.py", line 468, in warned
return fn(*args, **kwargs)
File "/opt/conda/lib/python3.9/site-packages/sqlalchemy/orm/query.py", line 947, in get
return self._get_impl(ident, loading.load_on_pk_identity)
File "/opt/conda/lib/python3.9/site-packages/sqlalchemy/orm/query.py", line 951, in _get_impl
return self.session._get_impl(
File "/opt/conda/lib/python3.9/site-packages/sqlalchemy/orm/session.py", line 2942, in _get_impl
instance = self._identity_lookup(
File "/opt/conda/lib/python3.9/site-packages/sqlalchemy/orm/session.py", line 2220, in _identity_lookup
return loading.get_from_identity(self, mapper, key, passive)
File "/opt/conda/lib/python3.9/site-packages/sqlalchemy/orm/loading.py", line 379, in get_from_identity
state._load_expired(state, passive)
File "/opt/conda/lib/python3.9/site-packages/sqlalchemy/orm/state.py", line 712, in _load_expired
self.manager.expired_attribute_loader(self, toload, passive)
File "/opt/conda/lib/python3.9/site-packages/sqlalchemy/orm/loading.py", line 1451, in load_scalar_attributes
result = load_on_ident(
File "/opt/conda/lib/python3.9/site-packages/sqlalchemy/orm/loading.py", line 407, in load_on_ident
return load_on_pk_identity(
File "/opt/conda/lib/python3.9/site-packages/sqlalchemy/orm/loading.py", line 530, in load_on_pk_identity
session.execute(
File "/opt/conda/lib/python3.9/site-packages/sqlalchemy/orm/session.py", line 1717, in execute
result = conn._execute_20(statement, params or {}, execution_options)
File "/opt/conda/lib/python3.9/site-packages/sqlalchemy/engine/base.py", line 1710, in _execute_20
return meth(self, args_10style, kwargs_10style, execution_options)
File "/opt/conda/lib/python3.9/site-packages/sqlalchemy/sql/elements.py", line 334, in _execute_on_connection
return connection._execute_clauseelement(
File "/opt/conda/lib/python3.9/site-packages/sqlalchemy/engine/base.py", line 1577, in _execute_clauseelement
ret = self._execute_context(
File "/opt/conda/lib/python3.9/site-packages/sqlalchemy/engine/base.py", line 1808, in _execute_context
conn = self._revalidate_connection()
File "/opt/conda/lib/python3.9/site-packages/sqlalchemy/engine/base.py", line 650, in _revalidate_connection
self._invalid_transaction()
File "/opt/conda/lib/python3.9/site-packages/sqlalchemy/engine/base.py", line 622, in _invalid_transaction
raise exc.PendingRollbackError(
sqlalchemy.exc.PendingRollbackError: Can't reconnect until invalid transaction is rolled back. (Background on this error at: https://sqlalche.me/e/14/8s2b)