auto-sync: 2026-05-26 08:25:59

This commit is contained in:
cfdaily
2026-05-26 08:25:59 +08:00
parent 3b92fcd087
commit 5ec07664b2
+13
View File
@@ -20,6 +20,7 @@ from typing import Any, Callable, Coroutine, Dict, List, Optional
from src.blackboard.operations import Blackboard
from src.blackboard.db import get_connection
from src.blackboard.models import Task
from src.daemon.spawner import AgentBusyError
from src.blackboard.queries import Queries
from src.blackboard.registry import ProjectRegistry
@@ -864,6 +865,18 @@ class Ticker:
except (ValueError, TypeError):
pass
# v2.7.2: 进程存活性检查 — counter 占用但进程已死的光底
if self.spawner and self.counter:
for agent_id in list(self.counter.active_agents.keys()):
session_info = self.spawner.get_session_by_agent(agent_id)
if not session_info:
continue
pid = session_info.get("pid")
if pid and not self._is_pid_alive(pid):
logger.warning("Agent %s process dead (pid=%d), releasing counter",
agent_id, pid)
self.counter.release(agent_id)
return reclaimed
def _mail_check_reply(self, original_task_id: str, db_path: Path) -> bool: