Duplicate job execution related to WorkerLostError: Worker exited prematurely: exitcode 155
on worker recycling.
# start everything
docker-compose up --build; docker-compose down
# in a second terminal: watch `celery` output
while sleep 1; do
echo ""
log=$(docker-compose logs worker)
echo "MainProcess receved task count uniqueness:"
echo "${log}" | grep "Received task:" | awk '{print $8}' | sort | uniq -c | sort -g | awk '{print $1}' | uniq -c
echo -n "WorkerLostError: "
echo "${log}" | grep "raised error: WorkerLostError" | wc -l
echo "Job execution uniqueness (job count per job execution count):"
echo "${log}" | grep do_work: | awk '{print $6}' | sort | uniq -c | sort -g | awk '{print $1}' | uniq -c
done
MainProcess receved task count uniqueness:
1649 1
WorkerLostError: 125
Job execution uniqueness (job count per job execution count):
1523 1
11 2
- The MainProcess received 1649 tasks, all unique (so it's not a broker-level issue).
- The WorkerLostError exception is logged 125 times.
- There are 11 jobs that were executed 2 times.