🚨 Queue Job tasks stuck in "pending" state in Docker Swarm with multiple nodes (Odoo 17)
Module
queue_job
Describe the bug
In a Docker Swarm environment with three nodes, one Odoo instance, Pgpool, and Traefik, asynchronous tasks remain stuck in the pending state in the queue. Even after a requeue, they are not processed. The only way to restart task processing is to restart the Odoo service, which sometimes results in task duplication.
This issue does not occur in a Docker Compose environment with a single host, where tasks are processed normally after configuring the workers.
To Reproduce
Affected versions: Odoo 17, queue_job v17
Steps to reproduce the issue:
- Deploy Odoo 17 with
queue_jobin a Docker Swarm environment with three nodes, a Pgpool instance, and a Traefik reverse proxy. - Configure Odoo workers and
queue_jobwith defined channels. - Trigger an asynchronous task.
- Observe that the task remains in the
pendingstate and is never processed, even after arequeue. - Restart the Odoo service. At this point, some tasks are eventually executed, but sometimes duplicated.
Expected behavior
Pending (pending) tasks should be processed by the workers without requiring an Odoo restart and without the risk of duplication.
Additional context
Docker Compose Environment (Working Fine):
- Infrastructure: 1 host
- Resources: 4 CPU, 32 GB RAM
- Workers:
workers=6 - Queue Job Channels:
ODOO_QUEUE_JOB_CHANNELS: root:2,enrollment:2,notification:2
Docker Swarm Environment (Problematic):
- Infrastructure: 3 nodes (each with 4 CPU, 32 GB RAM)
- Workers:
workers=10 - Queue Job Channels:
ODOO_QUEUE_JOB_CHANNELS: root:4,enrollment:4,notification:2 - Load Balancing & Proxy: Using Pgpool and Traefik
Logs & Debugging:
- Logs show that tasks are correctly added to the queue, but no worker processes them.
- Enabling
log-handler=queue_job:DEBUGdid not provide any conclusive insights.
Any help or debugging suggestions would be greatly appreciated! 🚀