changeset 2571dac54624 in trytond:default
details: https://hg.tryton.org/trytond?cmd=changeset&node=2571dac54624
description:
Do not push a new task on database operational error without channel
If a task is pushed again, this creates an infinite loop because the
task is
appended to the transaction tasks list and so it is run again in the
same
request.
issue10421
review346251002
diffstat:
trytond/worker.py | 3 +++
1 files changed, 3 insertions(+), 0 deletions(-)
diffs (13 lines):
diff -r 89c0a05e8d4b -r 2571dac54624 trytond/worker.py
--- a/trytond/worker.py Wed May 19 15:41:39 2021 +0200
+++ b/trytond/worker.py Fri May 21 00:27:55 2021 +0200
@@ -128,6 +128,9 @@
time.sleep(0.02 * retry)
try:
with Transaction().start(pool.database_name, 0) as transaction:
+ if not transaction.database.has_channel():
+ logger.critical('%s failed', name, exc_info=True)
+ return
task = Queue(task_id)
scheduled_at = dt.datetime.now()
scheduled_at += dt.timedelta(