
Woojin Kim
오전의 개인 퍼포스 서버 장애는 ... 총체적 난국이었다.
문제: p4v가 타임아웃을 띄우고 접속을 못함.
대응:
- docker compose down && docker compose up -d ... 해결안됨.
- tailscale 로그에서 로그아웃 된 상태를 확인해 키 재발급 및 적용
- p4v가 'no such user' 에러를 냄. 뭐???????
- p4 users 해보니 진짜 계정이 없음. p4 depots, p4 clients 해봐도 진짜 아무것도 없음.
- 백업에서 퍼포스 데이터베이스를 복원. 그래도 'no such user' 에러.
- ㄴㅁㅇ러ㅣ;ㄴㄹㅇ머ㅏ;ㄴㅇ러ㅏㅣ;ㄴㅇㅁㄹ;ㅓㅏㅣㅇㄴㅁ러ㅏㅣ;ㄴㅇㅁ러ㅏ;ㅣ
- 문제해결.
원인:
- p4d 도커 스택에 사용하던 tailscale 키가 만료됨. ... 키 재발급 및 적용은 올바른 대응이었음.
- 근데 p4d를 재시작할 때 전에 다른 작업에 쓰려고 복사해 둔 잘못된 p4d 디렉토리에서 p4d를 시작함. docker compose 설정에 볼륨 경로를 './'로 시작하게 해놔서 잘못된 디렉토리에서 그냥 실행됐고 데이터베이스가 없으니 시작 스크립트가 서버를 새로 만들어버림. ...... 이걸 눈치채는데 시간이 많이 걸림.
- 새 서버가 시작됐으니 'no such user' 에러를 냄.
재발방지방안:
- 엉뚱한 경로에서 서버를 실행하지 않도록 파일 삭제.
- 최근 docker compose 파일 버전관리를 위해 컨테이너 실행 위치를 퍼포스 하위로 옮겼는데 이 때 p4d 디렉토리가 하나 더 생긴 걸 생각 못했음. ... docker compose 파일을 고쳐 현재 디렉토리에서 도커 볼륨이 실제 다른 볼륨을 가리키도록 './'로 시작하는 볼륨 설정을 절대경로로 수정.
- 항상 올바른 경로에 있는게 맞는지 뭐 실행하기 전에 hostname, pwd 꼭꼭 쳐보자.
아침부터 생쑈했네진짜 .....