업데이트 후 테마 컴포넌트에서 'TypeError' 렌더링 오류 발생

방금 이 버전으로 업데이트했습니다: Commits · discourse/discourse · GitHub 2f398db9b66f19220b5a7f56721a68f41dcdeeec

서로 다른 테마 컴포넌트 두 가지가 제 사이트를 완전히 망가뜨립니다. 해당 컴포넌트는 Air Theme 의 "Modern Category + Group Boxes"와 Avatar Size and Shape 입니다.

사이트가 사용 불가능한 상태가 됩니다(루프가 발생하는 것 같습니다). Firefox와 Chrome(데스크톱) 모두에서 발생합니다.

플러그인 없이, 그리고 다른 테마에서 단독으로(예: 플러그인 없이 안전 모드 및 격리된 테마) 시도해 보았기 때문에 제 인스턴스 특유의 문제라고 생각하지 않습니다.

콘솔에는 다음과 같은 줄이 보고됩니다:

Uncaught TypeError: Cannot read properties of null (reading ‘syscall’)

Uncaught (in promise) TypeError: Invalid value used as weak map key

message-bus.js:118 MESSAGE BUS FAIL: callback /latest caused exception TypeError: Cannot read properties of null (reading ‘syscall’)

임시 해결책으로, 문제가 해결될 때까지 사용자들을 일반 테마로 강제 적용했습니다. 이 오류를 재현할 수 있는지 알려주시면 감사하겠습니다.

4개의 좋아요

죄송합니다. 아직까지 재현하지 못했습니다.

2개의 좋아요

저도 제 사이트에서 동일한 문제를 겪고 있습니다. 예를 들어 로그아웃을 시도하면 동일한 오류와 함께 페이지가 완전히 흰색으로 변합니다. 일부 사용자들은 페이지가 하얗게 비어 있어서 로그인조차 할 수 없다고 보고했습니다. 이 문제는 무작위로 발생하는 것 같습니다.

가장 큰 문제는 원인을 파악할 수 있는 명확한 오류 메시지가 없다는 것입니다. 제 테마 컴포넌트를 확인하며 원인을 추적해 보았습니다. 대부분의 컴포넌트를 이미 gjs로 업데이트했지만, 흥미로운 점은 특정 컴포넌트를 비활성화했다가 다시 활성화하면 오류 없이 사이트가 정상적으로 작동하기 시작한다는 것입니다. 아직 이 문제의 원인을 정확히 알지는 못하지만… 문제 페이지에는 (사용자 정의) 테마 컴포넌트가 존재하는 것 같습니다. 따라서 문제가 해당 컴포넌트 중 하나에서 비롯되고 있음을 시사하는 단서 정도는 얻었습니다.

1개의 좋아요

이것이 원인을 파악하는 데 도움이 될 수 있습니다:

헬퍼를 확인해 보세요!

@Don @piffy, 어디서 일어나고 있는지 페이지나 사이트를 공유해 줄 수 있어?

1개의 좋아요

아바타 컴포넌트만 포함된 간단한 테마를 설정해 보았습니다: Elite Fourum - E4 - efour

https://www.elitefourum.com/latest?safe_mode=no_plugins&preview_theme_id=39

이 링크에서 Firefox와 Chrome(데스크톱)으로 문제를 재현할 수 있습니다.


Modern Category + Group Boxes: Elite Fourum - E4 - efour

https://www.elitefourum.com/?safe_mode=no_plugins&preview_theme_id=58

이것은 재현하기가 더 어려운 것 같습니다. 관리자 계정으로 로그인한 상태에서는 문제가 발생하지만(Chrome 및 Firefox), 더미 계정으로 시도할 때는 문제가 없습니다. 두 테마 컴포넌트 간의 버그가 유사해 보이므로, 하나를 수정하면 다른 것도 해결될 수 있을 것 같습니다.

도움이 되길 바랍니다!

1개의 좋아요

해석 가능한 에러 메시지로 얻을 수 있었던 가장 가까운 결과는 다음과 같습니다.

client-error-handler.js:125 [THEME 39 ‘Test’] Error: Could not find module admin/components/color-input imported from (require)

customize-edit-category-general.js는 Air 테마에서 가져와집니다:

코어에서는:

이것은 같은 문제인 것 같습니다: Forum navbar is repeating

1개의 좋아요

이 변경 사항은 air 테마의 color-input 오류를 수정합니다. 하지만 이 문제는 이미 알려진 문제이므로, 이러한 렌더링 오류의 원인이 될 가능성은 낮다고 생각합니다.

2개의 좋아요

@piffy 혹시 color-input 수정이 도움이 될지 모르겠으니, 최신 tests-passed로 업데이트를 시도해 주실 수 있을까요?

재빌드 후에도 문제가 여전히 발생한다면, 다음을 시도해 주세요:

./launcher enter app
rails c
Discourse.clear_all_theme_cache!

@don 님도 시간이 되시면 같은 방법으로 시도해 주세요.

이 방법으로 문제가 해결된다면, 테마 캐시 무효화(theme cache invalidation)에 문제가 있다는 뜻이 됩니다. :thinking:

2개의 좋아요

데이비드, 감사합니다. 저에게는 이 방법으로 잘 되는 것 같습니다.

1개의 좋아요

업데이트를 확인해도 도움이 되지 않았지만, 테마 캐시 재설정은 효과가 있었습니다.

2개의 좋아요

좋아요, 확인해 주셔서 감사합니다! 수동 작업이 필요 없도록 테마 캐싱 시스템에서 이 문제를 해결해 보겠습니다.

하지만 그 동안 이 문제를 겪고 계신 분들을 위해:

Uncaught TypeError: Cannot read properties of null (reading ‘syscall’)
Uncaught (in promise) TypeError: Invalid value used as weak map key

콘솔에서 다음 단계를 수행해 주세요:

./launcher enter app
rails c
Discourse.clear_all_theme_cache!
4개의 좋아요

@piffy @Don 두 분 다 단일 컨테이너 표준 설치로 실행 중이신가요?

1개의 좋아요

네, 저는 싱글 컨테이너 표준 설치를 사용하고 있습니다.

1개의 좋아요

DigitalOcean에서 단일 컨테이너로 Ubuntu 20.04.6 LTS를 실행 중입니다(더 이상 공식적으로 지원되지 않는다는 점을 인지하고 있습니다).

표준 설치에서 벗어난 주요 사항:

1개의 좋아요

한 가지 더 여쭤볼게요. 처음에 문제가 생겼을 때, UI 업데이트를 실행 중이었나요, 아니면 CLI 재빌드를 하고 있었나요?

관리자 UI

20자 게시글 제한을 넘기려고 더 많은 단어를 추가합니다

1개의 좋아요

네, 나도요. 먼저 UI 업데이트를 했어요.

1개의 좋아요

문제를 재현하지는 못했지만, UI 기반 업그레이드 방식에 고유한 하나의 가능한 문제를 발견했습니다. 이 문제는 다음과 같이 해결해야 합니다:

이것은 재컴파일도 강제하므로, 이미 이 버그의 영향을 받은 사이트는 다음 업데이트 후 정상화됩니다.

5개의 좋아요