Ошибка рендеринга TypeError с компонентами темы после обновления

Я только что обновился до этой версии: Commits · discourse/discourse · GitHub 2f398db9b66f19220b5a7f56721a68f41dcdeeec

Два разных компонента темы теперь полностью ломают мой сайт. Это «Modern Category + Group Boxes» из Air Theme и 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 (настольные версии).


Современные блоки категорий и групп: 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 лайк

Это исправит ошибку color-input в теме air. Однако эта проблема не нова, поэтому, по-моему, маловероятно, что она является причиной этих ошибок рендеринга.

2 лайка

@piffy, пожалуйста, попробуй обновиться до последней версии с пройденными тестами, на случай если исправление color-input хоть чем-то поможет.

Если после пересборки всё ещё не работает, попробуй следующее:

./launcher enter app
rails c
Discourse.clear_all_theme_cache!

То же самое касается и тебя, @don, если есть время.

Если это решит проблему, значит у нас есть проблема с инвалидацией кэша темы :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 лайк

Я использую Ubuntu 20.04.6 LTS (вижу, что она больше не поддерживается официально) на DigitalOcean, один контейнер.

Заметные отклонения от стандартной установки:

1 лайк

Ещё один вопрос. Когда это впервые произошло, вы выполняли обновление интерфейса или пересборку через CLI?

Админ-панель

Добавление дополнительных слов для преодоления ограничения в 20 символов для публикации

1 лайк

Да, я тоже. Сначала я обновил интерфейс.

1 лайк

Мне не удалось воспроизвести проблему, но я обнаружил одну возможную причину, связанную с особенностями работы обновлений через интерфейс. Это должно решить вопрос:

Также это принудительно вызывает перекомпиляцию, поэтому сайты, уже затронутые этой ошибкой, будут исправлены после следующего обновления.

5 лайков