From 6318e7a769833f205df73fb8a19b4249f9932656 Mon Sep 17 00:00:00 2001 From: Marc 'risson' Schmitt Date: Tue, 16 Jun 2026 14:55:13 +0200 Subject: [PATCH] fix symmetrical Signed-off-by: Marc 'risson' Schmitt --- ...encies_alter_task_aggregated_status_and_more.py | 3 +-- .../django_dramatiq_postgres/broker.py | 14 ++++++++++++-- .../django_dramatiq_postgres/models.py | 2 +- web/src/elements/tasks/TaskList.ts | 1 + 4 files changed, 15 insertions(+), 5 deletions(-) diff --git a/authentik/tasks/migrations/0007_task_dependencies_alter_task_aggregated_status_and_more.py b/authentik/tasks/migrations/0007_task_dependencies_alter_task_aggregated_status_and_more.py index 53f21c4d54..602adb2b2c 100644 --- a/authentik/tasks/migrations/0007_task_dependencies_alter_task_aggregated_status_and_more.py +++ b/authentik/tasks/migrations/0007_task_dependencies_alter_task_aggregated_status_and_more.py @@ -1,4 +1,4 @@ -# Generated by Django 5.2.15 on 2026-06-16 11:54 +# Generated by Django 5.2.15 on 2026-06-16 12:54 from django.db import migrations, models @@ -14,7 +14,6 @@ class Migration(migrations.Migration): model_name="task", name="dependencies", field=models.ManyToManyField( - default=None, to="authentik_tasks.task", verbose_name="Tasks that must complete for this task to run.", ), diff --git a/packages/django-dramatiq-postgres/django_dramatiq_postgres/broker.py b/packages/django-dramatiq-postgres/django_dramatiq_postgres/broker.py index 4f7b12c39d..a40214116e 100644 --- a/packages/django-dramatiq-postgres/django_dramatiq_postgres/broker.py +++ b/packages/django-dramatiq-postgres/django_dramatiq_postgres/broker.py @@ -308,7 +308,13 @@ class _PostgresConsumer(Consumer): pending = set( self.query_set.exclude(message_id__in=self.in_processing) .filter(queue_name=self.queue_name) - .exclude(state__in=(TaskState.DONE, TaskState.REJECTED)) + .exclude( + state__in=( + TaskState.DONE, + TaskState.REJECTED, + TaskState.WAITING_FOR_DEPENDENCIES, + ) + ) .exclude(eta__gte=timezone.now() + timedelta(seconds=self.timeout)) .order_by(F("eta").asc(nulls_first=True)) .values_list("message_id", flat=True) @@ -360,7 +366,11 @@ class _PostgresConsumer(Consumer): "state": TaskState.CONSUMED.value, "mtime": timezone.now(), "message_id": message_id, - "excluded_states": [TaskState.DONE.value, TaskState.REJECTED.value], + "excluded_states": [ + TaskState.DONE.value, + TaskState.REJECTED.value, + TaskState.WAITING_FOR_DEPENDENCIES.value, + ], "maximum_eta": timezone.now() + timedelta(seconds=self.timeout), "lock_id": self._get_message_lock_id(message_id), }, diff --git a/packages/django-dramatiq-postgres/django_dramatiq_postgres/models.py b/packages/django-dramatiq-postgres/django_dramatiq_postgres/models.py index 582ee8bbb7..6395454d7b 100644 --- a/packages/django-dramatiq-postgres/django_dramatiq_postgres/models.py +++ b/packages/django-dramatiq-postgres/django_dramatiq_postgres/models.py @@ -57,7 +57,7 @@ class TaskBase(models.Model): dependencies = models.ManyToManyField( "self", verbose_name=_("Tasks that must complete for this task to run."), - default=None, + symmetrical=False, ) result = models.BinaryField(null=True, help_text=_("Task result")) diff --git a/web/src/elements/tasks/TaskList.ts b/web/src/elements/tasks/TaskList.ts index 217569c0a3..437e081eb9 100644 --- a/web/src/elements/tasks/TaskList.ts +++ b/web/src/elements/tasks/TaskList.ts @@ -75,6 +75,7 @@ export class TaskList extends Table { : undefined; const aggregatedStatus = this.excludeSuccessful ? [ + TaskAggregatedStatusEnum.WaitingForDependencies, TaskAggregatedStatusEnum.Queued, TaskAggregatedStatusEnum.Consumed, TaskAggregatedStatusEnum.Preprocess,