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(

Reply via email to