Skip to content

cluster: mac-mini 소유 세션 idle-kill이 cluster.nodes 미설정으로 5분마다 trusted_forward_origin_missing ERROR (3일 864건) #5714

Description

@itismyfield

증상

릴리스 leader(mac-book-release)의 policies/timeouts/idle-kill.js가 mac-mini-release 소유 유휴 세션 codex/…/itismyfieldui-Macmini:AgentDesk-codex-adk-dash-cdxPOST /api/sessions/{key}/kill-tmux를 5분마다 호출하고, 매번 아래로 실패한다.

policy: [idle-kill] kill-tmux API failed … {"code":"trusted_forward_origin_missing","owner_instance_id":"mac-mini-release"}

2026-09-02~09-05 dcserver 로그 3일치에서 ERROR 864건. 세션은 영구히 정리되지 않고, ERROR 레벨이라 진짜 장애 로그를 덮는다.

원인

운영 agentdesk.yamlcluster.nodes 절이 없다. 노드 간 세션 forwarding은 cluster.nodes.<instance_id>.trusted_forward_origin을 유일한 신뢰 근거로 쓰고, 레지스트리 광고값은 fallback이 되지 않는다(config.rs:995-1003 설계 의도). 그래서 session_forwarding/trusted_target.rs:32 MissingConfigsession_forwarding.rs:201 unavailable_target_error로 503이 난다.

mac-mini는 현재 방치 상태이지만 사용자는 나중에 다시 살릴 계획이다(2026-09-05 확인). 따라서 후보 제외가 아니라 노드 절을 채워 forwarding이 성립하게 하는 것이 맞다.

수정

  1. 운영 yaml에 cluster.nodes.mac-mini-release 추가: trusted_forward_origin(Tailscale 주소), allow_private_forwarding: true. HTTP를 쓰면 allow_insecure_http_forwarding: true도 필요(두 플래그 독립).
  2. 코드: 소유 노드의 cluster.nodes 절이 없을 때 idle-kill이 매 tick ERROR를 내지 않게 한다. 노드당 1회 WARN("owner node has no cluster.nodes entry; skipping idle-kill until configured") 후 그 노드 소유 세션은 후보에서 제외. 설정이 추가되면 자동 복귀.
  3. mac-mini가 오프라인인 동안에는 forwarding 자체가 실패하므로, 레지스트리 heartbeat가 만료된 노드 소유 세션도 같은 방식으로 1회 WARN + 제외.

완료 정의

  • 운영 yaml에 mac-mini 노드 절 추가 (deploy 후 GET /api/cluster/nodes 로 확인)
  • cluster.nodes 미설정 또는 heartbeat 만료 노드 소유 세션에 대해 idle-kill이 tick마다 ERROR를 내지 않음 (24시간 로그에서 trusted_forward_origin_missing 0건)
  • mac-mini를 실제로 올렸을 때 leader의 kill-tmux forwarding이 성공하는 것을 1회 실측
  • 반대방향: 설정된 노드에 대한 forwarding 거부 규칙(레지스트리 광고값 fallback 금지)은 그대로 유지. 기존 테스트로 고정

관련

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingpriority:P1P1: high

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions