Skip to content

Commit 86f4970

Browse files
committed
Drop connection on instance termination
1 parent caa6eb8 commit 86f4970

2 files changed

Lines changed: 8 additions & 1 deletion

File tree

src/dstack/_internal/server/background/pipeline_tasks/instances/termination.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,10 @@
1111
from dstack._internal.server.models import InstanceModel
1212
from dstack._internal.server.services import backends as backends_services
1313
from dstack._internal.server.services.instances import get_instance_provisioning_data
14+
from dstack._internal.server.services.runner.pool import (
15+
InstanceConnectionKey,
16+
instance_connection_pool,
17+
)
1418
from dstack._internal.utils.common import get_current_datetime, run_async
1519
from dstack._internal.utils.logging import get_logger
1620

@@ -77,6 +81,9 @@ async def terminate_instance(instance_model: InstanceModel) -> ProcessResult:
7781
exc_info=not isinstance(exc, BackendError),
7882
)
7983

84+
if job_provisioning_data is not None:
85+
instance_connection_pool.drop(InstanceConnectionKey.from_jpd(job_provisioning_data))
86+
8087
result.instance_update_map["deleted"] = True
8188
result.instance_update_map["deleted_at"] = NOW_PLACEHOLDER
8289
result.instance_update_map["finished_at"] = NOW_PLACEHOLDER

src/dstack/_internal/server/services/runner/pool.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ class InstanceConnectionKey:
4545

4646
@staticmethod
4747
def from_jpd(
48-
jpd: JobProvisioningData, jrd: Optional[JobRuntimeData]
48+
jpd: JobProvisioningData, jrd: Optional[JobRuntimeData] = None
4949
) -> "InstanceConnectionKey":
5050
assert jpd.hostname is not None and jpd.ssh_port is not None
5151
container_to_host_port_map = InstanceConnection.get_container_to_host_port_map(jpd, jrd)

0 commit comments

Comments
 (0)