Просмотр исходного кода

修复151上判断状态错误的问题

lxylxy123321 2 дней назад
Родитель
Сommit
5c3a0514ba
2 измененных файлов с 111 добавлено и 114 удалено
  1. 2 2
      backend/app/services/deploy_service.py
  2. 109 112
      result.txt

+ 2 - 2
backend/app/services/deploy_service.py

@@ -235,7 +235,7 @@ async def _launch_remote_worker(task_id: str, model_path: str, port: int) -> str
         raise RuntimeError(f"复制 inference_worker.py 失败: {stderr}")
 
     # 在容器内后台启动 worker
-    # 使用 exec 让 Python 进程直接占用 PID,避免 setsid session leader PID 不匹配
+    # 直接使用 & 后台启动,$! 捕获的是 Python 进程本身的 PID(不是 nohup/setsid 的包装 PID)
     launch_cmd = (
         f"docker exec "
         f"-e MACA_MPS_MODE=1 "
@@ -243,7 +243,7 @@ async def _launch_remote_worker(task_id: str, model_path: str, port: int) -> str
         f"-w {model_path} "
         f"{settings.compute_node_docker_container} "
         f"bash -c '"
-        f"nohup {settings.compute_node_python} inference_worker.py "
+        f"{settings.compute_node_python} inference_worker.py "
         f"--model-path {model_path} "
         f"--port {port} "
         f"</dev/null >/tmp/serve_{task_id}.log 2>&1 &"

+ 109 - 112
result.txt

@@ -15,6 +15,7 @@ requirements.txt
 app/
 app/__init__.py
 app/config.py
+app/__pycache__/
 app/__pycache__/__init__.cpython-310.pyc
 app/__pycache__/config.cpython-310.pyc
 app/api/
@@ -125,120 +126,116 @@ app/services/__pycache__/model_test_service.cpython-310.pyc
 app/services/__pycache__/sample_center_service.cpython-310.pyc
 app/services/__pycache__/training_service.cpython-310.pyc
 
-sent 10,187 bytes  received 6,962 bytes  926.97 bytes/sec
-total size is 518,960  speedup is 30.26
+sent 8,248 bytes  received 6,977 bytes  822.97 bytes/sec
+total size is 519,183  speedup is 34.10
 => Sync done.
 INFO:     Started server process [1]
 INFO:     Waiting for application startup.
-2026-05-26 01:48:14 | INFO     | peft-platform | JobQueue started with 2 workers
-2026-05-26 01:48:14 | INFO     | peft-platform | Recovered 1 stale deploy tasks
+2026-05-26 01:57:06 | INFO     | peft-platform | JobQueue started with 2 workers
 INFO:     Application startup complete.
 INFO:     Uvicorn running on http://0.0.0.0:8010 (Press CTRL+C to quit)
-INFO:     127.0.0.1:38956 - "GET /health HTTP/1.1" 200 OK
-INFO:     172.20.0.4:58486 - "GET /api/v1/models/ HTTP/1.0" 401 Unauthorized
-INFO:     172.20.0.4:58488 - "POST /api/v1/auth/refresh HTTP/1.0" 200 OK
-INFO:     172.20.0.4:58504 - "GET /api/v1/models/ HTTP/1.0" 200 OK
-INFO:     172.20.0.4:58512 - "GET /api/v1/models/ HTTP/1.0" 200 OK
-INFO:     172.20.0.4:58522 - "GET /api/v1/training/jobs HTTP/1.0" 200 OK
-INFO:     172.20.0.4:58518 - "GET /api/v1/datasets/ HTTP/1.0" 200 OK
-INFO:     172.20.0.4:58524 - "GET /api/v1/models/ HTTP/1.0" 200 OK
-INFO:     172.20.0.4:58530 - "GET /api/v1/datasets/ HTTP/1.0" 200 OK
-INFO:     172.20.0.4:58534 - "GET /api/v1/training/jobs HTTP/1.0" 200 OK
-INFO:     172.20.0.4:60598 - "GET /api/v1/models/ HTTP/1.0" 200 OK
-INFO:     172.20.0.4:60616 - "GET /api/v1/training/jobs HTTP/1.0" 200 OK
-INFO:     172.20.0.4:60612 - "GET /api/v1/datasets/ HTTP/1.0" 200 OK
-INFO:     172.20.0.4:60624 - "GET /api/v1/models/ HTTP/1.0" 200 OK
-INFO:     172.20.0.4:60630 - "GET /api/v1/datasets/ HTTP/1.0" 200 OK
-INFO:     172.20.0.4:60632 - "GET /api/v1/models/ HTTP/1.0" 200 OK
-INFO:     172.20.0.4:60656 - "GET /api/v1/datasets/ HTTP/1.0" 200 OK
-INFO:     172.20.0.4:60640 - "GET /api/v1/training/jobs HTTP/1.0" 200 OK
-INFO:     172.20.0.4:60658 - "GET /api/v1/inference/adapters HTTP/1.0" 200 OK
-INFO:     172.20.0.4:60682 - "GET /api/v1/api-keys/ HTTP/1.0" 200 OK
-INFO:     172.20.0.4:60674 - "GET /api/v1/training/jobs HTTP/1.0" 200 OK
-INFO:     172.20.0.4:60696 - "GET /api/v1/deployment/services HTTP/1.0" 200 OK
-INFO:     172.20.0.4:60708 - "GET /api/v1/deployment/services HTTP/1.0" 200 OK
-INFO:     172.20.0.4:48096 - "GET /api/v1/deployment/services HTTP/1.0" 200 OK
-2026-05-26 01:48:37 | INFO     | peft-platform | Serve task started: job=3819e7af-6c9b-4fde-88d0-35784e6afeda port=8100 (task_id=589e0e7b-ff1f-4c15-aed9-9eb562718242)
-INFO:     172.20.0.4:48102 - "POST /api/v1/deployment/serve HTTP/1.0" 200 OK
-2026-05-26 01:50:37 | INFO     | peft-platform | Remote worker launched: task=589e0e7b-ff1f-4c15-aed9-9eb562718242 port=8100 pid=92043
-INFO:     127.0.0.1:34844 - "GET /health HTTP/1.1" 200 OK
-INFO:     127.0.0.1:51118 - "GET /health HTTP/1.1" 200 OK
-INFO:     127.0.0.1:58876 - "GET /health HTTP/1.1" 200 OK
-INFO:     172.20.0.4:48112 - "GET /api/v1/deployment/589e0e7b-ff1f-4c15-aed9-9eb562718242/status HTTP/1.0" 200 OK
-INFO:     172.20.0.4:44574 - "GET /api/v1/deployment/services HTTP/1.0" 200 OK
-INFO:     172.20.0.4:38862 - "GET /api/v1/deployment/589e0e7b-ff1f-4c15-aed9-9eb562718242/status HTTP/1.0" 200 OK
-INFO:     172.20.0.4:35560 - "GET /api/v1/deployment/589e0e7b-ff1f-4c15-aed9-9eb562718242/status HTTP/1.0" 200 OK
-INFO:     172.20.0.4:35568 - "GET /api/v1/deployment/589e0e7b-ff1f-4c15-aed9-9eb562718242/status HTTP/1.0" 200 OK
-INFO:     172.20.0.4:35580 - "GET /api/v1/deployment/589e0e7b-ff1f-4c15-aed9-9eb562718242/status HTTP/1.0" 200 OK
-INFO:     172.20.0.4:40030 - "GET /api/v1/deployment/services HTTP/1.0" 200 OK
-INFO:     172.20.0.4:40050 - "GET /api/v1/deployment/589e0e7b-ff1f-4c15-aed9-9eb562718242/status HTTP/1.0" 200 OK
-INFO:     172.20.0.4:40036 - "GET /api/v1/deployment/589e0e7b-ff1f-4c15-aed9-9eb562718242/status HTTP/1.0" 200 OK
-INFO:     172.20.0.4:40058 - "GET /api/v1/deployment/services HTTP/1.0" 200 OK
-INFO:     172.20.0.4:40060 - "GET /api/v1/deployment/589e0e7b-ff1f-4c15-aed9-9eb562718242/status HTTP/1.0" 200 OK
-INFO:     172.20.0.4:40094 - "GET /api/v1/deployment/589e0e7b-ff1f-4c15-aed9-9eb562718242/status HTTP/1.0" 200 OK
-INFO:     172.20.0.4:40100 - "GET /api/v1/deployment/589e0e7b-ff1f-4c15-aed9-9eb562718242/status HTTP/1.0" 200 OK
-INFO:     172.20.0.4:40106 - "GET /api/v1/deployment/589e0e7b-ff1f-4c15-aed9-9eb562718242/status HTTP/1.0" 200 OK
-INFO:     172.20.0.4:40080 - "GET /api/v1/deployment/589e0e7b-ff1f-4c15-aed9-9eb562718242/status HTTP/1.0" 200 OK
-INFO:     172.20.0.4:40120 - "GET /api/v1/deployment/services HTTP/1.0" 200 OK
-INFO:     172.20.0.4:40064 - "GET /api/v1/deployment/589e0e7b-ff1f-4c15-aed9-9eb562718242/status HTTP/1.0" 200 OK
-INFO:     172.20.0.4:40122 - "GET /api/v1/deployment/589e0e7b-ff1f-4c15-aed9-9eb562718242/status HTTP/1.0" 200 OK
-INFO:     172.20.0.4:40132 - "GET /api/v1/deployment/589e0e7b-ff1f-4c15-aed9-9eb562718242/status HTTP/1.0" 200 OK
-INFO:     172.20.0.4:40134 - "GET /api/v1/deployment/589e0e7b-ff1f-4c15-aed9-9eb562718242/status HTTP/1.0" 200 OK
-INFO:     172.20.0.4:40154 - "GET /api/v1/deployment/589e0e7b-ff1f-4c15-aed9-9eb562718242/status HTTP/1.0" 200 OK
-INFO:     172.20.0.4:40144 - "GET /api/v1/deployment/services HTTP/1.0" 200 OK
-INFO:     172.20.0.4:40166 - "GET /api/v1/deployment/589e0e7b-ff1f-4c15-aed9-9eb562718242/status HTTP/1.0" 200 OK
-INFO:     172.20.0.4:40168 - "GET /api/v1/deployment/589e0e7b-ff1f-4c15-aed9-9eb562718242/status HTTP/1.0" 200 OK
-INFO:     172.20.0.4:40180 - "GET /api/v1/deployment/services HTTP/1.0" 200 OK
-INFO:     172.20.0.4:40192 - "GET /api/v1/deployment/589e0e7b-ff1f-4c15-aed9-9eb562718242/status HTTP/1.0" 200 OK
-INFO:     172.20.0.4:40206 - "GET /api/v1/deployment/589e0e7b-ff1f-4c15-aed9-9eb562718242/status HTTP/1.0" 200 OK
-INFO:     172.20.0.4:40212 - "GET /api/v1/deployment/589e0e7b-ff1f-4c15-aed9-9eb562718242/status HTTP/1.0" 200 OK
-INFO:     172.20.0.4:40218 - "GET /api/v1/deployment/services HTTP/1.0" 200 OK
-INFO:     172.20.0.4:40232 - "GET /api/v1/deployment/589e0e7b-ff1f-4c15-aed9-9eb562718242/status HTTP/1.0" 200 OK
-INFO:     172.20.0.4:40216 - "GET /api/v1/deployment/589e0e7b-ff1f-4c15-aed9-9eb562718242/status HTTP/1.0" 200 OK
-INFO:     172.20.0.4:40254 - "GET /api/v1/deployment/589e0e7b-ff1f-4c15-aed9-9eb562718242/status HTTP/1.0" 200 OK
-INFO:     172.20.0.4:40238 - "GET /api/v1/deployment/589e0e7b-ff1f-4c15-aed9-9eb562718242/status HTTP/1.0" 200 OK
-INFO:     172.20.0.4:40236 - "GET /api/v1/deployment/services HTTP/1.0" 200 OK
-INFO:     172.20.0.4:40272 - "GET /api/v1/deployment/589e0e7b-ff1f-4c15-aed9-9eb562718242/status HTTP/1.0" 200 OK
-INFO:     172.20.0.4:40270 - "GET /api/v1/deployment/589e0e7b-ff1f-4c15-aed9-9eb562718242/status HTTP/1.0" 200 OK
-INFO:     172.20.0.4:40286 - "GET /api/v1/deployment/589e0e7b-ff1f-4c15-aed9-9eb562718242/status HTTP/1.0" 200 OK
-INFO:     172.20.0.4:40296 - "GET /api/v1/deployment/services HTTP/1.0" 200 OK
-INFO:     172.20.0.4:40298 - "GET /api/v1/deployment/589e0e7b-ff1f-4c15-aed9-9eb562718242/status HTTP/1.0" 200 OK
-INFO:     172.20.0.4:40314 - "GET /api/v1/deployment/589e0e7b-ff1f-4c15-aed9-9eb562718242/status HTTP/1.0" 200 OK
-INFO:     172.20.0.4:40320 - "GET /api/v1/deployment/589e0e7b-ff1f-4c15-aed9-9eb562718242/status HTTP/1.0" 200 OK
-INFO:     172.20.0.4:40322 - "GET /api/v1/deployment/589e0e7b-ff1f-4c15-aed9-9eb562718242/status HTTP/1.0" 200 OK
-INFO:     172.20.0.4:40330 - "GET /api/v1/deployment/services HTTP/1.0" 200 OK
-INFO:     172.20.0.4:40334 - "GET /api/v1/deployment/589e0e7b-ff1f-4c15-aed9-9eb562718242/status HTTP/1.0" 200 OK
-INFO:     172.20.0.4:40346 - "GET /api/v1/deployment/services HTTP/1.0" 200 OK
-INFO:     172.20.0.4:40358 - "GET /api/v1/deployment/589e0e7b-ff1f-4c15-aed9-9eb562718242/status HTTP/1.0" 200 OK
-INFO:     172.20.0.4:40372 - "GET /api/v1/deployment/services HTTP/1.0" 200 OK
-INFO:     172.20.0.4:40380 - "GET /api/v1/deployment/589e0e7b-ff1f-4c15-aed9-9eb562718242/status HTTP/1.0" 200 OK
-INFO:     172.20.0.4:40394 - "GET /api/v1/deployment/589e0e7b-ff1f-4c15-aed9-9eb562718242/status HTTP/1.0" 200 OK
-INFO:     172.20.0.4:40406 - "GET /api/v1/deployment/589e0e7b-ff1f-4c15-aed9-9eb562718242/status HTTP/1.0" 200 OK
-INFO:     172.20.0.4:40414 - "GET /api/v1/deployment/589e0e7b-ff1f-4c15-aed9-9eb562718242/status HTTP/1.0" 200 OK
-INFO:     172.20.0.4:40430 - "GET /api/v1/deployment/589e0e7b-ff1f-4c15-aed9-9eb562718242/status HTTP/1.0" 200 OK
-INFO:     172.20.0.4:40438 - "GET /api/v1/deployment/589e0e7b-ff1f-4c15-aed9-9eb562718242/status HTTP/1.0" 200 OK
-2026-05-26 01:51:00 | INFO     | peft-platform | Worker ready: task=589e0e7b-ff1f-4c15-aed9-9eb562718242 (after ~5s)
-INFO:     127.0.0.1:55970 - "GET /health HTTP/1.1" 200 OK
-INFO:     172.20.0.4:40448 - "GET /api/v1/deployment/589e0e7b-ff1f-4c15-aed9-9eb562718242/status HTTP/1.0" 200 OK
-INFO:     172.20.0.4:35594 - "GET /api/v1/deployment/services HTTP/1.0" 200 OK
-INFO:     172.20.0.4:36428 - "GET /api/v1/deployment/589e0e7b-ff1f-4c15-aed9-9eb562718242/status HTTP/1.0" 200 OK
-INFO:     172.20.0.4:45976 - "GET /api/v1/deployment/589e0e7b-ff1f-4c15-aed9-9eb562718242/status HTTP/1.0" 200 OK
-INFO:     172.20.0.4:43664 - "GET /api/v1/deployment/589e0e7b-ff1f-4c15-aed9-9eb562718242/status HTTP/1.0" 200 OK
-INFO:     172.20.0.4:43670 - "GET /api/v1/deployment/589e0e7b-ff1f-4c15-aed9-9eb562718242/status HTTP/1.0" 200 OK
-INFO:     127.0.0.1:34970 - "GET /health HTTP/1.1" 200 OK
-INFO:     172.20.0.4:45990 - "GET /api/v1/deployment/services HTTP/1.0" 200 OK
-INFO:     172.20.0.4:46010 - "GET /api/v1/deployment/589e0e7b-ff1f-4c15-aed9-9eb562718242/status HTTP/1.0" 200 OK
-INFO:     172.20.0.4:46004 - "GET /api/v1/deployment/services HTTP/1.0" 200 OK
-INFO:     172.20.0.4:33412 - "GET /api/v1/deployment/services HTTP/1.0" 200 OK
-INFO:     172.20.0.4:54884 - "GET /api/v1/deployment/services HTTP/1.0" 200 OK
-INFO:     172.20.0.4:54886 - "GET /api/v1/deployment/services HTTP/1.0" 200 OK
-INFO:     172.20.0.4:54896 - "GET /api/v1/deployment/services HTTP/1.0" 200 OK
-INFO:     172.20.0.4:54908 - "GET /api/v1/deployment/services HTTP/1.0" 200 OK
-INFO:     172.20.0.4:54918 - "GET /api/v1/deployment/services HTTP/1.0" 200 OK
-INFO:     172.20.0.4:54928 - "GET /api/v1/deployment/services HTTP/1.0" 200 OK
-INFO:     172.20.0.4:54940 - "GET /api/v1/deployment/services HTTP/1.0" 200 OK
-INFO:     172.20.0.4:34010 - "GET /api/v1/deployment/services HTTP/1.0" 200 OK
-INFO:     172.20.0.4:58916 - "GET /api/v1/deployment/services HTTP/1.0" 200 OK
-INFO:     127.0.0.1:38650 - "GET /health HTTP/1.1" 200 OK
-INFO:     172.20.0.4:37086 - "GET /api/v1/deployment/services HTTP/1.0" 200 OK
-INFO:     172.20.0.4:37088 - "GET /api/v1/training/jobs HTTP/1.0" 200 OK
+INFO:     172.20.0.4:46460 - "GET /api/v1/deployment/services HTTP/1.0" 200 OK
+INFO:     127.0.0.1:37172 - "GET /health HTTP/1.1" 200 OK
+INFO:     172.20.0.4:47912 - "GET /api/v1/deployment/services HTTP/1.0" 200 OK
+INFO:     172.20.0.4:40496 - "GET /api/v1/models/ HTTP/1.0" 200 OK
+INFO:     172.20.0.4:40502 - "GET /api/v1/datasets/ HTTP/1.0" 200 OK
+INFO:     172.20.0.4:40506 - "GET /api/v1/training/jobs HTTP/1.0" 200 OK
+INFO:     127.0.0.1:59614 - "GET /health HTTP/1.1" 200 OK
+INFO:     172.20.0.4:45828 - "GET /api/v1/training/jobs HTTP/1.0" 200 OK
+INFO:     172.20.0.4:45836 - "GET /api/v1/deployment/services HTTP/1.0" 200 OK
+INFO:     172.20.0.4:45848 - "GET /api/v1/api-keys/ HTTP/1.0" 200 OK
+INFO:     172.20.0.4:59154 - "GET /api/v1/deployment/services HTTP/1.0" 200 OK
+INFO:     172.20.0.4:44642 - "GET /api/v1/deployment/services HTTP/1.0" 200 OK
+INFO:     127.0.0.1:58614 - "GET /health HTTP/1.1" 200 OK
+INFO:     172.20.0.4:54690 - "GET /api/v1/deployment/services HTTP/1.0" 200 OK
+INFO:     172.20.0.4:45240 - "GET /api/v1/deployment/services HTTP/1.0" 200 OK
+2026-05-26 01:58:25 | INFO     | peft-platform | Serve task started: job=3819e7af-6c9b-4fde-88d0-35784e6afeda port=8100 (task_id=5ade7a70-4564-4f5c-b0cf-257e67a2ee17)
+INFO:     172.20.0.4:33464 - "POST /api/v1/deployment/serve HTTP/1.0" 200 OK
+2026-05-26 02:00:25 | INFO     | peft-platform | Remote worker launched: task=5ade7a70-4564-4f5c-b0cf-257e67a2ee17 port=8100 pid=92955
+INFO:     127.0.0.1:57188 - "GET /health HTTP/1.1" 200 OK
+INFO:     127.0.0.1:46232 - "GET /health HTTP/1.1" 200 OK
+INFO:     127.0.0.1:42886 - "GET /health HTTP/1.1" 200 OK
+INFO:     172.20.0.4:33468 - "GET /api/v1/deployment/5ade7a70-4564-4f5c-b0cf-257e67a2ee17/status HTTP/1.0" 200 OK
+INFO:     172.20.0.4:33474 - "GET /api/v1/deployment/services HTTP/1.0" 200 OK
+INFO:     172.20.0.4:54934 - "GET /api/v1/deployment/5ade7a70-4564-4f5c-b0cf-257e67a2ee17/status HTTP/1.0" 200 OK
+INFO:     172.20.0.4:40846 - "GET /api/v1/deployment/5ade7a70-4564-4f5c-b0cf-257e67a2ee17/status HTTP/1.0" 200 OK
+INFO:     172.20.0.4:40860 - "GET /api/v1/deployment/services HTTP/1.0" 200 OK
+INFO:     172.20.0.4:40850 - "GET /api/v1/deployment/5ade7a70-4564-4f5c-b0cf-257e67a2ee17/status HTTP/1.0" 200 OK
+INFO:     172.20.0.4:35794 - "GET /api/v1/deployment/5ade7a70-4564-4f5c-b0cf-257e67a2ee17/status HTTP/1.0" 200 OK
+INFO:     172.20.0.4:35806 - "GET /api/v1/deployment/services HTTP/1.0" 200 OK
+INFO:     172.20.0.4:35822 - "GET /api/v1/deployment/5ade7a70-4564-4f5c-b0cf-257e67a2ee17/status HTTP/1.0" 200 OK
+INFO:     172.20.0.4:35834 - "GET /api/v1/deployment/5ade7a70-4564-4f5c-b0cf-257e67a2ee17/status HTTP/1.0" 200 OK
+INFO:     172.20.0.4:35848 - "GET /api/v1/deployment/5ade7a70-4564-4f5c-b0cf-257e67a2ee17/status HTTP/1.0" 200 OK
+INFO:     172.20.0.4:35852 - "GET /api/v1/deployment/5ade7a70-4564-4f5c-b0cf-257e67a2ee17/status HTTP/1.0" 200 OK
+INFO:     172.20.0.4:35858 - "GET /api/v1/deployment/5ade7a70-4564-4f5c-b0cf-257e67a2ee17/status HTTP/1.0" 200 OK
+INFO:     172.20.0.4:35874 - "GET /api/v1/deployment/5ade7a70-4564-4f5c-b0cf-257e67a2ee17/status HTTP/1.0" 200 OK
+INFO:     172.20.0.4:35892 - "GET /api/v1/deployment/5ade7a70-4564-4f5c-b0cf-257e67a2ee17/status HTTP/1.0" 200 OK
+INFO:     172.20.0.4:35890 - "GET /api/v1/deployment/services HTTP/1.0" 200 OK
+INFO:     172.20.0.4:35906 - "GET /api/v1/deployment/5ade7a70-4564-4f5c-b0cf-257e67a2ee17/status HTTP/1.0" 200 OK
+INFO:     172.20.0.4:35916 - "GET /api/v1/deployment/5ade7a70-4564-4f5c-b0cf-257e67a2ee17/status HTTP/1.0" 200 OK
+INFO:     172.20.0.4:35940 - "GET /api/v1/deployment/5ade7a70-4564-4f5c-b0cf-257e67a2ee17/status HTTP/1.0" 200 OK
+INFO:     172.20.0.4:35930 - "GET /api/v1/deployment/services HTTP/1.0" 200 OK
+INFO:     172.20.0.4:35952 - "GET /api/v1/deployment/5ade7a70-4564-4f5c-b0cf-257e67a2ee17/status HTTP/1.0" 200 OK
+INFO:     172.20.0.4:35962 - "GET /api/v1/deployment/5ade7a70-4564-4f5c-b0cf-257e67a2ee17/status HTTP/1.0" 200 OK
+INFO:     172.20.0.4:35990 - "GET /api/v1/deployment/5ade7a70-4564-4f5c-b0cf-257e67a2ee17/status HTTP/1.0" 200 OK
+INFO:     172.20.0.4:35986 - "GET /api/v1/deployment/services HTTP/1.0" 200 OK
+INFO:     172.20.0.4:36000 - "GET /api/v1/deployment/5ade7a70-4564-4f5c-b0cf-257e67a2ee17/status HTTP/1.0" 200 OK
+INFO:     172.20.0.4:36008 - "GET /api/v1/deployment/5ade7a70-4564-4f5c-b0cf-257e67a2ee17/status HTTP/1.0" 200 OK
+INFO:     172.20.0.4:36020 - "GET /api/v1/deployment/services HTTP/1.0" 200 OK
+INFO:     172.20.0.4:35976 - "GET /api/v1/deployment/5ade7a70-4564-4f5c-b0cf-257e67a2ee17/status HTTP/1.0" 200 OK
+INFO:     172.20.0.4:36026 - "GET /api/v1/deployment/5ade7a70-4564-4f5c-b0cf-257e67a2ee17/status HTTP/1.0" 200 OK
+INFO:     172.20.0.4:36028 - "GET /api/v1/deployment/5ade7a70-4564-4f5c-b0cf-257e67a2ee17/status HTTP/1.0" 200 OK
+INFO:     172.20.0.4:36058 - "GET /api/v1/deployment/services HTTP/1.0" 200 OK
+INFO:     172.20.0.4:36042 - "GET /api/v1/deployment/5ade7a70-4564-4f5c-b0cf-257e67a2ee17/status HTTP/1.0" 200 OK
+INFO:     172.20.0.4:36070 - "GET /api/v1/deployment/5ade7a70-4564-4f5c-b0cf-257e67a2ee17/status HTTP/1.0" 200 OK
+INFO:     172.20.0.4:36072 - "GET /api/v1/deployment/5ade7a70-4564-4f5c-b0cf-257e67a2ee17/status HTTP/1.0" 200 OK
+INFO:     172.20.0.4:36076 - "GET /api/v1/deployment/5ade7a70-4564-4f5c-b0cf-257e67a2ee17/status HTTP/1.0" 200 OK
+INFO:     172.20.0.4:36084 - "GET /api/v1/deployment/services HTTP/1.0" 200 OK
+INFO:     172.20.0.4:36092 - "GET /api/v1/deployment/5ade7a70-4564-4f5c-b0cf-257e67a2ee17/status HTTP/1.0" 200 OK
+INFO:     172.20.0.4:36094 - "GET /api/v1/deployment/5ade7a70-4564-4f5c-b0cf-257e67a2ee17/status HTTP/1.0" 200 OK
+INFO:     172.20.0.4:36098 - "GET /api/v1/deployment/5ade7a70-4564-4f5c-b0cf-257e67a2ee17/status HTTP/1.0" 200 OK
+INFO:     172.20.0.4:36102 - "GET /api/v1/deployment/5ade7a70-4564-4f5c-b0cf-257e67a2ee17/status HTTP/1.0" 200 OK
+INFO:     172.20.0.4:36114 - "GET /api/v1/deployment/services HTTP/1.0" 200 OK
+INFO:     172.20.0.4:36118 - "GET /api/v1/deployment/5ade7a70-4564-4f5c-b0cf-257e67a2ee17/status HTTP/1.0" 200 OK
+INFO:     172.20.0.4:36140 - "GET /api/v1/deployment/services HTTP/1.0" 200 OK
+INFO:     172.20.0.4:36136 - "GET /api/v1/deployment/5ade7a70-4564-4f5c-b0cf-257e67a2ee17/status HTTP/1.0" 200 OK
+INFO:     172.20.0.4:36124 - "GET /api/v1/deployment/5ade7a70-4564-4f5c-b0cf-257e67a2ee17/status HTTP/1.0" 200 OK
+INFO:     172.20.0.4:36146 - "GET /api/v1/deployment/5ade7a70-4564-4f5c-b0cf-257e67a2ee17/status HTTP/1.0" 200 OK
+INFO:     172.20.0.4:36148 - "GET /api/v1/deployment/services HTTP/1.0" 200 OK
+INFO:     172.20.0.4:36154 - "GET /api/v1/deployment/5ade7a70-4564-4f5c-b0cf-257e67a2ee17/status HTTP/1.0" 200 OK
+INFO:     172.20.0.4:36156 - "GET /api/v1/deployment/5ade7a70-4564-4f5c-b0cf-257e67a2ee17/status HTTP/1.0" 200 OK
+INFO:     172.20.0.4:36158 - "GET /api/v1/deployment/5ade7a70-4564-4f5c-b0cf-257e67a2ee17/status HTTP/1.0" 200 OK
+INFO:     172.20.0.4:36174 - "GET /api/v1/deployment/5ade7a70-4564-4f5c-b0cf-257e67a2ee17/status HTTP/1.0" 200 OK
+INFO:     172.20.0.4:36182 - "GET /api/v1/deployment/5ade7a70-4564-4f5c-b0cf-257e67a2ee17/status HTTP/1.0" 200 OK
+INFO:     172.20.0.4:36190 - "GET /api/v1/deployment/5ade7a70-4564-4f5c-b0cf-257e67a2ee17/status HTTP/1.0" 200 OK
+2026-05-26 02:00:47 | INFO     | peft-platform | Worker ready: task=5ade7a70-4564-4f5c-b0cf-257e67a2ee17 (after ~5s)
+INFO:     127.0.0.1:45552 - "GET /health HTTP/1.1" 200 OK
+INFO:     172.20.0.4:36198 - "GET /api/v1/deployment/services HTTP/1.0" 200 OK
+INFO:     172.20.0.4:36204 - "GET /api/v1/deployment/5ade7a70-4564-4f5c-b0cf-257e67a2ee17/status HTTP/1.0" 200 OK
+INFO:     172.20.0.4:57910 - "GET /api/v1/deployment/5ade7a70-4564-4f5c-b0cf-257e67a2ee17/status HTTP/1.0" 200 OK
+INFO:     172.20.0.4:57918 - "GET /api/v1/deployment/5ade7a70-4564-4f5c-b0cf-257e67a2ee17/status HTTP/1.0" 200 OK
+INFO:     172.20.0.4:57938 - "GET /api/v1/deployment/5ade7a70-4564-4f5c-b0cf-257e67a2ee17/status HTTP/1.0" 200 OK
+INFO:     127.0.0.1:45574 - "GET /health HTTP/1.1" 200 OK
+INFO:     172.20.0.4:57924 - "GET /api/v1/deployment/services HTTP/1.0" 200 OK
+INFO:     172.20.0.4:39078 - "GET /api/v1/deployment/5ade7a70-4564-4f5c-b0cf-257e67a2ee17/status HTTP/1.0" 200 OK
+INFO:     172.20.0.4:39108 - "GET /api/v1/deployment/5ade7a70-4564-4f5c-b0cf-257e67a2ee17/status HTTP/1.0" 200 OK
+INFO:     172.20.0.4:39118 - "GET /api/v1/deployment/5ade7a70-4564-4f5c-b0cf-257e67a2ee17/status HTTP/1.0" 200 OK
+INFO:     172.20.0.4:39120 - "GET /api/v1/deployment/5ade7a70-4564-4f5c-b0cf-257e67a2ee17/status HTTP/1.0" 200 OK
+INFO:     172.20.0.4:39092 - "GET /api/v1/deployment/services HTTP/1.0" 200 OK
+INFO:     172.20.0.4:41448 - "GET /api/v1/deployment/5ade7a70-4564-4f5c-b0cf-257e67a2ee17/status HTTP/1.0" 200 OK
+INFO:     172.20.0.4:41450 - "GET /api/v1/deployment/5ade7a70-4564-4f5c-b0cf-257e67a2ee17/status HTTP/1.0" 200 OK
+INFO:     172.20.0.4:41454 - "GET /api/v1/deployment/services HTTP/1.0" 200 OK
+INFO:     172.20.0.4:41476 - "GET /api/v1/deployment/5ade7a70-4564-4f5c-b0cf-257e67a2ee17/status HTTP/1.0" 200 OK
+INFO:     172.20.0.4:41468 - "GET /api/v1/deployment/5ade7a70-4564-4f5c-b0cf-257e67a2ee17/status HTTP/1.0" 200 OK
+INFO:     172.20.0.4:41488 - "GET /api/v1/deployment/services HTTP/1.0" 200 OK
+INFO:     172.20.0.4:41496 - "GET /api/v1/deployment/services HTTP/1.0" 200 OK
+INFO:     172.20.0.4:41510 - "GET /api/v1/deployment/services HTTP/1.0" 200 OK
+INFO:     172.20.0.4:41522 - "GET /api/v1/deployment/services HTTP/1.0" 200 OK
+INFO:     172.20.0.4:41524 - "GET /api/v1/deployment/services HTTP/1.0" 200 OK
+INFO:     172.20.0.4:41538 - "GET /api/v1/deployment/services HTTP/1.0" 200 OK
+INFO:     172.20.0.4:41552 - "GET /api/v1/deployment/services HTTP/1.0" 200 OK
+INFO:     172.20.0.4:34580 - "GET /api/v1/deployment/services HTTP/1.0" 200 OK
+INFO:     172.20.0.4:33068 - "GET /api/v1/deployment/services HTTP/1.0" 200 OK
+INFO:     172.20.0.4:43700 - "GET /api/v1/deployment/services HTTP/1.0" 200 OK
+INFO:     127.0.0.1:45014 - "GET /health HTTP/1.1" 200 OK
+INFO:     172.20.0.4:43706 - "GET /api/v1/training/jobs HTTP/1.0" 200 OK