새로운 업그레이드 이후 내 디스코urs 인스턴스의 프론트엔드가 완전히 비어 있고 로드되지 않습니다. 이건 좋은 상황이 아니며, 사용자들이 불만을 제기하고 있어 조금 당황스럽습니다. 백엔드는 정상적으로 작동하는 것 같습니다.
오늘 최신 업그레이드 후 디지털 오션 드롭렛에서 컨테이너를 실행하면서 이 문제가 발생했습니다. 런처를 사용하여 앱을 다시 빌드했습니다.
어떤 도움이라도 깊이 감사하겠습니다.
콘솔 오류는 다음과 같습니다:
app.js:31
Uncaught TypeError: Cannot read properties of undefined (reading 'registerAsyncHelper') at s.callback (vendor-suffix.js:58:1)
at s.exports (loader.js:106:1)
at s._reify (loader.js:143:1)
at s.reify (loader.js:130:1)
at s.exports (loader.js:104:1)
at s._reify (loader.js:143:1)
at s.reify (loader.js:130:1)
at s.exports (loader.js:104:1)
at s._reify (loader.js:143:1)
at s.reify (loader.js:130:1)
at s.exports (loader.js:104:1)
at requireModule (loader.js:27:1)
at n._prepareInitializer (app.js:24:1)
at app.js:81:1
at Array.forEach (<anonymous>)
at n.start (app.js:73:1)
at HTMLDocument.<anonymous> (start-app.js:4:1)
at discourse-boot.js:30:1
at discourse-boot.js:31:1
으으… 플러그인이었네… 정확히 어떤 플러그인인지는 모르겠지만, 여기저기 살펴본 끝에 그게 문제일 것 같다는 의심을 하게 됐어… cakeday, signatures, data explorer, discourse-video-upload, encryption을 제거했어. 나중에 하나씩 다시 도입해서 문제의 원인을 찾아볼 거야. 하지만 지금은 앱이 다시 정상 작동 중이라 건드리지 않을 거야.
정말 끔찍한 경험이었어. 지금은 좀 죄책감이 느껴져… 앞으로 이런 업그레이드 전에 스테이징 클론 과정을 마련해야 할 것 같아. 교훈을 얻었지. 아니면 적어도 업그레이드 전에 항상 스냅샷을 찍어두면 실패 시 복구가 가능하겠지.
네, 이는 매우 중요하며 제가 언급을 잊었습니다(이 글을 쓸 때 제 시간으로 새벽 4시 가까이 되었고, 마침 모든 것이 다시 작동하기 시작해서 다른 사람들도 같은 문제를 겪고 있는지 확인하려고 이곳을 방문했었습니다). 이것은 모든 것을 다시 작동시키기 위한 임시 조치일 뿐입니다.@david 님, 상기해 주셔서 감사합니다.
오늘 오전 00:00 UTC(10시간 반 전)에 모든 것을 업데이트했을 때 저에게는 그 수정 사항이 작동하지 않았습니다. 서명 검증이 수정되었다는 것을 보고 그때 인스턴스를 업데이트했습니다. 그런 다음 위에서 설명한 임시 조치를 취해야 했습니다. 제가 평소 하던 업데이트 과정에서 어떤 이유로 인해 최신 코드가 반영되지 않은 것이 가능한가요?
첫 페이지가 백색으로 표시되어 사이트를 로드하려면 모든 플러그인(안전 모드에서)을 비활성화해야 했습니다. 저는 보통 월요일 9:00 UTC에 정기 업데이트를 수행하며, 이번에는 서명 검증 문제를 해결하기 위한 추가 업데이트였습니다. 그러나… 물론 그 기간 동안 다른 변경 사항들도 꽤 많이 반영되었습니다. 또한 해당 기간 동안 버전이 2.9.0beta3으로 업데이트되었습니다.
이미 보셨을 수도 있지만(아마 누군가는 아직 보지 못했을 수도 있습니다), 현재 실행 중인 버전과 이 메시지가 작성된 시점의 최신 버전 간의 Discourse Encrypt diff를 공유합니다.
또한, 실제로 새벽 4시 가까이까지 걸린 것은 아닙니다. 새벽 2시 조금 전까지만 해도 모든 것이 정상이었지만, 이후에는 무슨 일이 있었는지 사람들에게 알려야 했기 때문입니다(저희 사용자 대부분이 미국에 거주하고 있습니다).
업그레이드 과정에 관해서, 저는 보통 /admin/upgrade UI를 통해 이 작업을 수행합니다. 이번 경우는 달랐습니다.
저는 업그레이드 UI에서 docker-manager만 업그레이드했습니다. 그 후 다른 일들을 처리해야 했고, 몇 시간 후 업그레이드 과정을 완료하기 위해 /admin/upgrade 경로에 다시 방문했습니다.
그러면 호스트로 이동하여 /var/discourse 디렉터리로 변경하고, git pull을 실행한 후 ./launcher로 앱을 다시 빌드하라는 텍스트 페이지가 나타났습니다. 그래서 그렇게 했는데, 이후로 혼란이 시작되었습니다.
스트레스와 긴장감이 최고조에 달했을 때, 포럼에서 잡히지 않는 TypeError가 플러그인과 관련이 있다는 것을 발견하여, app.yml의 플러그인에서 비필수적인 것들을 모두 제거하고 컨테이너를 다시 빌드했습니다. 그 시점에서 Ember 앱이 다시 작동하기 시작했습니다.