Skip to Content
사용자 가이드Conversations 작성자 잠금 및 복구

Conversations 작성자 잠금 및 복구

업데이트된 데몬은 Conversations를 공유하고 동시에 다른 세션을 사용할 수 있습니다. 로드된 세션은 여전히 하나의 작성자를 갖습니다. 라이브 활성화는 안정적인 Live 로케이터의 정확한 게시자에게만 속하며, Live 게시를 잃어도 독립 실행형 conversations는 비활성화되지 않습니다.

conversation이 열리지 않음

session_writer_conflict는 작성자 펜스가 액세스를 방지했음을 의미합니다. 다른 프로세스가 conversation을 열었거나 잔여 잠금을 안전하게 회수할 수 없음을 의미할 수 있습니다. 다른 작성자가 현재 활성 상태라는 증거는 아닙니다. session_writer_unavailable는 소유권을 확인할 수 없음을 의미하며, 재시도해도 이를 우회할 권한이 부여되지 않습니다. 아카이브 및 삭제는 개별 세션에 대해 작성자 오류와 함께 HTTP 200을 반환할 수 있습니다. 모든 결과 항목을 확인하세요.

소유한 Qwen 프로세스에서 conversation을 정상적으로 닫은 후 영향을 받은 conversation에서 Try again을 사용하세요. 다른 세션은 계속 사용할 수 있습니다. 오류를 숨기기 위해 대체 conversation을 만들지 마세요.

비정상 종료 후, Linux 재부팅이나 새 PID 네임스페이스로의 컨테이너 재시작은 봉인되지 않은 활성 작성자 기록을 무기한 펜스된 상태로 남길 수 있습니다. 닫을 수 있는 생존 소유자가 없을 수 있습니다. 반복적으로 재시도하기보다 Operator recovery for a residual lock을 따르세요. 이 릴리스는 해당 ID 경계를 자동으로 회수하지 않습니다.

계속 지속되면 영향을 받은 데몬을 시작할 때 로컬 디버그 로깅(QWEN_DEBUG_LOG_FILE=1)을 활성화하고 데몬 및 ACP 자식의 진단을 검사하세요. 리스 획득 진단에는 세션 ID, 오류 유형, 해당 작성자의 런타임 스토리지에서 확인된 정확한 lockPath가 포함됩니다. 기본 워크스페이스나 기본 홈 디렉토리에서 잠금 경로를 추측하지 마세요. 공개 HTTP/ACP 오류는 의도적으로 경로와 소유권 기록을 생략합니다. 진단 파일을 비공개로 유지하고 소유자 토큰이나 편집되지 않은 잠금 내용을 게시하지 마세요.

어떤 상태가 자동으로 복구될 수 있나요?

이 규칙은 세션 작성자 리스에 적용됩니다. 레거시 전역 소유자 기록은 아래에 설명된 더 제한적인 호환성 검사를 사용합니다.

  • 정상 종료 시 리스가 해제됩니다. 인증된 봉인된 핸드오프는 트랜스크립트 증거가 여전히 유효할 때만 허용됩니다.
  • 죽은 활성 작성자는 기존 ID 검사가 해당 프로세스가 동일한 확인된 활성 도메인에 속함을 확인할 때만 회수 가능합니다.
  • 라이브 또는 중단된 작성자는 펜스된 상태로 유지됩니다. 데몬을 종료해도 ACP 작성자 자식이 생존하면 충분하지 않습니다.
  • 외부 또는 누락된 부팅/프로세스 네임스페이스 ID는 죽음의 증거가 아닙니다. 해당 네임스페이스에 없는 PID는 외부 작성자가 종료되었음을 증명하지 않습니다.
  • 잘못된 형식의 기록, 불확실한 트랜스크립트 ID 및 잔여 전환 요청은 종료됩니다. 경과 시간만으로는 인계를 승인하지 않습니다.

잔여 잠금에 대한 운영자 복구

  1. 로컬 진단에서 정확한 영향을 받은 세션과 스토리지를 식별하세요. 실패 로그와 트랜스크립트 및 잠금 아티팩트의 비공개 백업을 보존하세요. 이 스토리지에 액세스할 수 있는 바이너리와 호스트를 기록하세요.
  2. 분리된 ACP 자식, 다른 데몬, 컨테이너, 네임스페이스, 파일시스템을 공유하는 머신을 포함한 모든 가능한 작성자를 중지하거나 펜스하세요. 관련 호스트/네임스페이스에서 펜스를 확인하세요. 이를 확립할 수 없다면 여기서 멈추고 이를 수행할 수 있는 운영자에게 문의하세요.
  3. 정확한 기록과 관련 claim/retired 아티팩트를 유지관리자와 함께 검사하세요. 마지막 트랜스크립트와 핸드오프 증거가 권위 있는지 확인하세요. 소유권 ID 필드를 편집하여 일치를 조작하지 마세요.
  4. 작성자가 펜스되고 증거가 백업된 후에만, 운영자 감독 하에 개별적으로 확인된 잔여 아티팩트를 비공개 복구 스토리지로 이동하세요. 잠금 디렉토리를 재귀적으로 삭제하거나 모든 잠금을 제거하지 마세요.
  5. 업데이트된 데몬 하나를 시작하고, 원본 세션을 복원하고, 추가하기 전에 마지막 기록된 턴을 확인하세요. 연속성이 확인될 때까지 백업을 보관하세요. 해당 확인 후에만 다른 업데이트된 데몬을 다시 가져오세요.

이 릴리스에는 강제 잠금 해제 API나 자동 크로스 부팅/TTL 인계가 없습니다. 안전한 소유권을 확립할 수 없을 때 펜스를 유지하세요.

조정된 업그레이드 및 롤백

백엔드 전환 및 Web Shell 로컬 오류/재시도 변경은 동일한 릴리스로 제공되어야 합니다. 이는 혼합 버전 롤링 업그레이드가 아닙니다: 오래된 데몬은 업데이트된 데몬이 이미 시작된 후 전역 소유자를 생성할 수 있습니다.

업그레이드하기 전에 모든 오래된 세션과 예약된 작업을 드레인하고, 모든 오래된 데몬과 해당 ACP 자식을 중지하고, 런타임 데이터를 보존한 후에만 업데이트된 바이너리를 시작하세요. 라이브 레거시 소유자를 마주한 업데이트된 데몬은 503 conversation_runtime_in_use를 반환합니다. 해당 소유자가 종료된 후 재시작 없이 재시도하세요. 정확히 재검증된 오래된 레거시 기록만 제거됩니다. 잘못된 형식이거나 안전하지 않은 레거시 상태는 운영자 조사가 필요합니다.

레거시 conversations/runtime-owner.json 기록은 PID와 논스를 가지지만 호스트 이름, 부팅 ID 또는 PID 네임스페이스 ID는 없습니다. 해당 호환성 검사는 해당 PID가 업데이트된 데몬 자체의 호스트 및 PID 네임스페이스에 존재하는지만 확인할 수 있습니다. 공유 스토리지의 다른 곳에서 활성 상태인 오래된 작성자를 감지할 수 없습니다. 이것이 업데이트된 데몬을 시작하기 전에 모든 가능한 작성자를 펜스해야 하는 또 다른 이유입니다. 해당 검사는 혼합 호스트 또는 혼합 네임스페이스 업그레이드를 안전하게 만들지 않습니다.

롤백하기 전에 모든 업데이트된 데몬과 작성자도 드레인하고 펜스하세요. 활성, 봉인된, claim, retired 및 확장 스키마 기록을 인벤토리하세요. 대상 바이너리가 각 보존된 스키마와 핸드오프 상태를 이해하는지 확인하세요. 지원하지 않는 스키마를 오래된 작성자에 전달하거나 롤백을 진행하기 위해 보호 기록을 삭제하지 마세요. 호환성을 확립할 수 없으면 작성자를 중지한 상태로 유지하고 유지관리자 안내 복구 또는 일관된 업그레이드 전 백업을 사용하세요. 해당 턴을 명시적으로 설명하지 않고 이후 권위 있는 턴보다 오래된 트랜스크립트를 복원하지 마세요.

Last updated on