Fatal: 'https://github.com'의 사용자를 읽을 수 없음

통상적으로 하듯, 문제를 좀 더 열어놓고 이야기해 보겠습니다. 3~5개 장애 지점에 대한 거의 재미있는 이야기라고 할 수 있죠.
자정 무렵 4시간 동안 조사한 후로는 그렇게 재미있지 않았습니다. 기술적으로 부정확한 부분이 있을 수도 있지만, 가능한 오류를 포함해도 읽는 재미가 더 있을 것입니다.

기본 사실 (설명 죄송합니다): 제 SSO는 제 홈 서버로 리디렉션됩니다 (몇 년 전 Gandi가 일부 문제를 해결하지 못해 Dynadot으로 옮겼습니다). 또한 Hostpapa가 매우 안정적인 LFC 호스팅을 인수한 후에도 리디렉션하는 것이 더 잘 작동했습니다. 그들은 무언가를 조용히 업그레이드할 수 있고, 그렇게 되면 전체 인프라가 무너질 수 있다는 점이 확실하지 않았기 때문입니다.

자, 이제 3 (이걸 5개 장애 지점이라고 세어도 될까요? 그렇다면 새로운 기록이겠네요)에 대해 말씀드리겠습니다.

1*) Opera가 오늘 또 업데이트되었고, 이번에는 301/302 리디렉션이 정말로 (비)호의적인 코드를 추가한 것 같습니다. Chromium의 어떤 문제인 것 같습니다. 이 리디렉션을 하드 캐싱합니다.
2*) Dynadot이 오늘 밤 30초 이상의 지연을 겪은 것 같습니다 (Chromium 문제를 유발하는 데 필요한 시간이며, 이제 이 문제가 캐시되어 버렸으니, 어머).
3*) Discourse가 30초 내에 SSO에 접근할 수 없어 충돌했습니다 (위에서 언급한 오ops). 앱을 재시작해야 했지만, 실제로는 재시작 전까지 Discourse가 다운되어 있었는지, 아니면 재시작 후에도 계속 다운되어 있었는지 정확히 확신하지 못합니다 (패닉 모드였거든요 :wink: ). 하지만 로그를 근거로 Gemini가 SSO/rails/redis 등을 계속 돌게 했습니다. 이는 제가 업그레이드를 시도한 후였는데, 일관성을 유지하기 위해 이 항목 아래에 언급합니다.
4*) 무엇이 잘못되고 있는지 파악할 수 없어, 혹시 모르니 Linux를 재부팅하고 Discourse 업그레이드를 시작했습니다. 그런데 GitHub 문제로 인해 실패했습니다. 그리고 네, 평소처럼 먼저 디스크를 조금 정리해야 했지만, Redis 문제의 원인이 될 수 있는 0G까지 가본 적은 없습니다. 그리고 네, II, 상황이 안정적으로 보이다 보니 클라우드에 10G를 추가하고 아마도 Arkshine 업그레이드도 할 것입니다.
5*) 1번 문제와 비슷하지만, 이 모든 것을 해결하려고 시도하면서 무언가 어딘가에서 수정되었는지 확인하기 위해 계속 페이지를 하드 리프레시했습니다. 초기 실패에서 캐시된 리디렉션을 계속 만나고 있는 것 같습니다. 즉, 첫 번째 재시작 후에도 문제가 수정되었는지조차 볼 수 없다는 뜻입니다.

  1. 제 SSO에는 정상적으로 접근할 수 있습니다.
  2. SSO를 사용하지 않는 다른 도메인 사이트도 잘 작동합니다.
  3. Discourse에서 SSO를 비활성화하면 포럼이 표시되지만, 저는 일반 로그인이 정상적으로 작동해 본 적이 없어서 거기서 큰 도움은 되지 않습니다. 하지만 적어도 SSO가 문제를 일으키고 있다는 것은 확실히 알게 되었습니다.
  4. Gemini가 개인 창에서 테스트해 보라고 제안해서 실제로 Firefox를 켜봤더니, 어라, 포럼이 정상적으로 작동합니다. 좋긴 한데… 뭐야?
  5. Opera는 여전히 실패합니다. 네, 여전히 리디렉션이 캐시되고 있다고 의심하지만, 당시에는 몰랐습니다. 아직 사이트 쿠키, 캐시 등을 지우지는 않았습니다.
  6. 상황이 작동하니, 실제로 하려던 작업을 Firefox로 30분 동안 수행했습니다.
  7. Opera를 재시작하니, 어머, 포럼이 표시됩니다. 더 일찍 Opera를 재시작했을 수도 있고, 기억이 안 나지만, 아마도 캐시가 시간 초과되어 제대로 된 리프레시가 된 것 같습니다.

재미있게도, 오늘 아침에 일어나니 Opera가 또 다른 업그레이드를 하고 있었습니다. 아마도 이 하드 캐시 업그레이드가 다른 곳에서도 많은 문제를 일으켰을 것입니다 :slight_smile: .

추가 참고: 3)번은 우리에게 가장 흥미로운 부분입니다. 아마도 로그에서 아직 찾을 수 있을 것입니다 (필요하면 더 깊이 파볼 수 있습니다). Discourse가 충돌하면 어떤 타이머를 사용하여 재시작을 시도합니까? 아니면 제가 로그인하여 앱을 재시작할 때까지 사이트 전체가 다운되어 있었습니까?