Skip to content
isdnetworks
Go back

알려진 버그부터 검색한다

(수정됨)

도구 연동이 계속 실패하면서 토큰 데이터를 못 찾는다는 메시지가 나왔다. 토큰은 credentials.json에 저장돼 있는데 못 찾는다고 하고 config.json을 몇 번 고쳐도 결과가 같았다.

Table of contents

Open Table of contents

내 설정을 의심한 시간

처음 몇 시간은 내가 무엇을 잘못했는지를 찾는 데 썼다. config.json 위치와 값과 chmod 600 권한을 차례로 봤는데 전부 맞아 보이는데 안 됐다.

같은 것을 여러 번 고쳐도 증상이 똑같다는 것이 신호였는데 그때는 그렇게 읽지 못했다. 방향을 내 문제가 아닐 수 있다는 쪽으로 바꾸고 나서야 gh issue list --search로 공개 이슈를 검색했다.

원인 — 겹쳐 있던 여섯 개

프로젝트의 공개 이슈를 오류 메시지 문자열 그대로 --search에 넣어 검색하니 관련된 것이 하나가 아니라 여섯이었다. 설정 항목이 프로젝트 config.json에서만 인식되는 것과 ${TOKEN} 환경변수 확장이 특정 환경에서 동작하지 않는 것이 먼저 나왔다.

사용 중인 transport: sse가 폐기 예정이라는 것과 servers 목록의 두 번째 이후 항목이 무시되는 것이 이어졌다. 토큰 저장은 되는데 연결 시 검색이 실패하는 것도 있었다. 마지막은 특정 --version에서 옵션 충돌로 호출 전체가 실패하는 건이었고 다섯 번째가 정확히 내가 본 메시지였다.

주의 — 복합 원인의 감춰진 진전

여섯이 겹치니 하나씩 고쳐도 증상이 안 바뀌었다. config.json 위치를 고치면 ${TOKEN} 확장 때문에 실패한다. 그것을 고치면 servers 두 번째 항목 무시 때문에 실패하는 식이었다.

증상이 그대로이니 안 고쳐진 줄 알았는데 실제로는 고쳐졌고 다른 것이 막고 있었다. 복합 원인은 진전이 겉으로 안 드러나므로 하나씩 고치는 동안 아무 성과가 없는 것처럼 느껴진다.

대응에는 두 가지 방법이 있었는데 여섯을 각각 우회하는 것과 transport를 권장 방식으로 바꾸는 것이다. 뒤쪽을 골랐다. 이유는 그 하나가 폐기 예정 방식 때문에 생기던 증상 여러 개를 한꺼번에 없애서다. 대신 새 전송 방식을 아직 안 받는 서버 하나를 당분간 못 쓰게 되는 것을 감수했다. 근본 하나가 여러 증상의 원인인 경우가 있다.

교훈 — 검색이 먼저인 이유

이 일에서 얻은 것은 순서다. 내 설정을 의심하고 몇 시간 뒤에 검색한 순서를 뒤집었다. 증상 확인과 알려진 이슈 검색을 먼저 하고 없으면 내 설정을 보는 순서다.

gh issue list --search는 몇 분이고 설정을 훑는 것은 몇 시간이며 찾을 것이 없으면 계속 헤맨다. 싼 확인을 먼저 하고 검색은 없다는 것도 정보인데 알려진 이슈가 없으면 내 문제일 가능성이 높아진다.

판단 기준 — 도구 문제와 내 문제의 신호

둘을 가르는 신호도 정리했다. 문서대로 했는데 안 되고 오류 메시지가 구체적인데 검색하면 남들도 겪는다. 거기에 --version을 바꾸면 동작이 달라지면 도구 쪽 문제다.

다른 환경에서 같은 config.json으로 되고 오류가 내 값을 가리킨다. 문서를 다시 보면 놓친 것이 있으면 내 문제다. 둘을 먼저 가르면 조사 방향이 정해지고 그러지 않으면 한쪽만 계속 파게 된다.

정리


Share this post on:

Previous Post
수만 건을 한꺼번에 바꾸지 않고 나눠서 하는 법
Next Post
플랫폼마다 다른 식별자 타입