From a289e4d8a80e933b22e2c7d4e730fbcb288c450e Mon Sep 17 00:00:00 2001 From: Victor Skvortsov Date: Tue, 16 Sep 2025 10:24:16 +0500 Subject: [PATCH] Fix long sqlite write transaction when provisioning instances --- .../_internal/server/background/tasks/process_instances.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/dstack/_internal/server/background/tasks/process_instances.py b/src/dstack/_internal/server/background/tasks/process_instances.py index 4694141b36..5c4e78a85c 100644 --- a/src/dstack/_internal/server/background/tasks/process_instances.py +++ b/src/dstack/_internal/server/background/tasks/process_instances.py @@ -578,7 +578,6 @@ async def _create_instance(session: AsyncSession, instance: InstanceModel) -> No if placement_group_model is None: # error occurred continue session.add(placement_group_model) - await session.flush() placement_group_models.append(placement_group_model) logger.debug( "Trying %s in %s/%s for $%0.4f per hour", @@ -636,7 +635,9 @@ async def _create_instance(session: AsyncSession, instance: InstanceModel) -> No }, ) if instance.fleet_id and _is_fleet_master_instance(instance): - # Clean up placement groups that did not end up being used + # Clean up placement groups that did not end up being used. + # Flush to update still uncommitted placement groups. + await session.flush() await schedule_fleet_placement_groups_deletion( session=session, fleet_id=instance.fleet_id,