이 문제는 WebUI를 통해 업그레이드한 지 약 3일 전에 발생했습니다. 사이트는 약 2개월 정도 운영 중이며, 사용자는 약 500명이며 지금까지 잘 작동하고 있었습니다.
재시작, 재빌드, Redis 플러시를 시도해 보았지만 여전히 흰 화면만 표시됩니다.
다음으로 무엇을 시도해야 할까요? 플러그인 없이 시작할까요? 아니면 백업에서 복원할까요?
관련 로그:
rails/production_errors: empty
rails/production:
Started GET "/" for 147.234.130.218 at 2024-07-21 08:38:13 +0000
Processing by ListController#unread as HTML
Rendered layout layouts/application.html.erb (Duration: 114.3ms | Allocations: 34494)
Completed 500 Internal Server Error in 264ms (ActiveRecord: 0.0ms | Allocations: 88191)
하지만 500은 서버 오류야. 플러그인에서 비롯된 경우가 많지만, 설정 오류일 수도 있어. 문제가 사용자 측에서 발생한다면 안전 모드가 무엇이 문제인지 힌트를 줄 수 있어. 하지만 서버 측에서 기능을 변경하는 부분이 깨졌다면 안전 모드는 별 도움이 안 돼.
물론 모든 플러그인을 비활성화하고 다시 빌드해서 상황이 해결되는지 확인한 다음, 하나씩 찾아보는 방법도 있어. 또는 적어도 디스코어가 만든 플러그인이 아닌 것들은 전부 비활성화하는 방법도 있지만, 공식 플러그인도 여기서는 사용되지 않으므로 그것도 완전히 확신할 수는 없어.
하지만 꽤 시간이 걸리지. 실제로 아는 사람이 말하기까지 기다리는 것이 더 현명한 선택일 수도 있어.
아니, 정말… 로케일 번역이 부족하다는 것이 500 에러를 발생시키는 이유가 될 수 있나요?!
수정: 이것이 버그 리포트가 되었으므로, 문제의 원인이 언어 파일 자체에는 없는 것 같습니다 (*.en.yml 파일을 he.yml로 복사해도 해결되지 않았으므로). 이러한 문제가 발생했을 때 적어도 우아하게 실패하고 영어로 폴백(fallback)하도록 하는 것이 좋다고 생각합니다.
제가 읽은 내용으로는, 이 문제가 발생하기 직전의 마지막으로 정상 작동했던 커밋으로 git을 되돌리는 방법이 없는 것 같습니다. 만약 이 변경 사항이 테스트를 통과했다면, 새로운 테스트를 추가해야 할 것 같습니다. 이 커밋은 사이트가 ‘잘못된’ 로케일을 사용하는 경우 작동하지 않습니다. 사이트를 가장 빠르게 정상 가동하기 위한 최선의 방법은 무엇이며, 앞으로 이런 문제를 어떻게 방지할 수 있을까요?