Skip to content

Commit fc56699

Browse files
committed
Fix long write transaction when cleaning up placement groups
1 parent a82d201 commit fc56699

2 files changed

Lines changed: 4 additions & 10 deletions

File tree

src/dstack/_internal/server/background/tasks/process_submitted_jobs.py

Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,6 @@
110110
get_fleet_placement_group_models,
111111
get_placement_group_model_for_job,
112112
placement_group_model_to_placement_group_optional,
113-
schedule_fleet_placement_groups_deletion,
114113
)
115114
from dstack._internal.server.services.runs import (
116115
run_model_to_run,
@@ -846,15 +845,9 @@ async def _run_jobs_on_new_instances(
846845
finally:
847846
if fleet_model is not None and len(fleet_model.instances) == 0:
848847
# Clean up placement groups that did not end up being used.
849-
# Flush to update still uncommitted placement groups.
850-
await session.flush()
851-
await schedule_fleet_placement_groups_deletion(
852-
session=session,
853-
fleet_id=fleet_model.id,
854-
except_placement_group_ids=(
855-
[placement_group_model.id] if placement_group_model is not None else []
856-
),
857-
)
848+
for pg in placement_group_models:
849+
if placement_group_model is None or pg.id != placement_group_model.id:
850+
pg.fleet_deleted = True
858851
return None
859852

860853

src/dstack/_internal/server/db.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ def __init__(self, url: str, engine: Optional[AsyncEngine] = None):
3333
self.session_maker = async_sessionmaker(
3434
bind=self.engine, # type: ignore[assignment]
3535
expire_on_commit=False,
36+
# Disable autoflush to avoid accidental long write transactions on SQLite.
3637
autoflush=False,
3738
class_=AsyncSession,
3839
)

0 commit comments

Comments
 (0)