Аватары пользователей пропали

Я готовлю к запуску новый форум. Самостоятельно размещённый Discourse (версия 2.6.0.beta1) на DigitalOcean (кстати, я всё ещё в восторге от того, что вы дарите этот драгоценный инструмент бесплатно). Всё работало отлично, и у всех пользователей (включая меня) были аватары.

Затем, в какой-то конкретный момент, без каких-либо изменений в конфигурации форума, я обновил страницу в браузере, и аватары исчезли.

В настоящее время список тем выглядит так:

Интересно, что если открыть тему, то в «строке состояния» аватары отображаются:
existing_avatars

Редактирование: Я только что попытался открыть форум снова в режиме инкогнито. Все аватары исчезли, поэтому, похоже, тот факт, что я где-то их видел, мог быть связан с кэшированием.

Однако, если открыть профиль пользователя, там тоже нет аватара:

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

Насколько я понимаю, эти аватары берутся из Gravatar.

Я новичок в Discourse, поэтому заранее извиняюсь, если в этом отчёте недостаточно информации. Я предоставлю любую дополнительную информацию по вашему запросу.

Спасибо.

Изображения профиля пользователей загружаются из Gravatar, если у них есть аккаунт Gravatar. Я не уверен, как часто происходит эта загрузка, но есть способ принудительно загрузить их.

Если необходимо, вы можете обновить их для всех пользователей, выполнив:

./launcher enter app
rails r 'UserAvatar.find_each {|u| print "."; u.update_gravatar!}'

Это займет некоторое время.

Ссылка: Automatic updates of Gravatar avatars? - #7 by sam

@IAmGav, спасибо за рекомендацию.

К сожалению, даже после выполнения этого шага и ожидания 30 минут аватары так и не появились.

Я потратил несколько часов на эту проблему, но так и не смог найти решение. Восстановление из резервной копии тоже не помогло :frowning:

Нашёл похожую проблему от 2018 года: How to fix user avatar?

Насколько я понимаю, там дело было в несовместимости внутренних компонентов Discourse. Не могло ли случиться что-то подобное у меня? Честно говоря, я бы ожидал, что проблема в самом Discourse затронет гораздо больше установок, но и в том случае жаловался только один человек.

Буду очень признателен за любую помощь :pray:

Несколько рекомендаций:

  1. Посмотрите на URL одного из некорректных изображений: что произойдёт, если добавить ?a в конец URL — начнёт ли изображение отображаться?

  2. Можете ли вы вручную исправить одного пользователя (переключиться на букву, загрузить аватар, переключиться на аватар, обновить аватар)?

Ваши изображения хранятся локально или на S3?

@sam

Изображения локальные. Добавление ?a в конец URL изображения не помогло.

Интересно, что я всё ещё вижу своё собственное изображение на страницах настроек (но это не так для других пользователей). С точки зрения URL происходит следующее:

  • URL моего изображения с главной страницы указывает на заглушку по умолчанию (даже с ?a): https://forum.techyourchance.com/user_avatar/forum.techyourchance.com/vasiliy/45/2_2.png?a
  • URL моего изображения со страницы настроек указывает на правильное изображение: https://forum.techyourchance.com/user_avatar/forum.techyourchance.com/vasiliy/120/2_2.png

Пытался исправить проблему для одного пользователя. Переключение на букву, затем на пользовательское изображение и обратно на Gravatar не помогло.

Есть ещё одна проблема, с которой я столкнулся. Она, кажется, не связана, но поскольку вероятность одновременного возникновения двух независимых проблем очень мала, я подозреваю, что между ними есть связь.

Форум больше не отправляет приглашения пользователям (раньше отправлял).

Я пригласил нескольких пользователей, но никто из них не получил приглашение. Поэтому я отправил приглашение себе (на другой email), но и его не получил. Теперь у меня несколько ожидающих приглашений:

Сразу подумал, что проблема в интеграции с Mailgun или даже в доставляемости писем, поэтому отправил себе тестовое письмо, но оно пришло мгновенно. Посмотрев на страницу отправленных писем, я вижу следующее:

Форум отправил тестовые письма, но не отправил приглашения.

На данный момент я считаю, что моя установка Discourse сильно повреждена. Вероятно, я сам что-то сделал, не осознавая этого. Я борюсь с этим уже много часов в самое неподходящее время (запуск моего нового сообщества). Поэтому я просто выполню чистую установку Discourse, без восстановления из резервной копии, и заново пригласлю всех пользователей. К счастью, сейчас пользователей немного, и на форуме ещё мало контента.

Я оставлю дроплет со старой установкой на некоторое время, на случай если вам понадобится дополнительная информация. Если вы решите, что это стоит изучить, я даже не против предоставить вам доступ через SSH.

Спасибо за вашу помощь. Надеюсь, чистая установка сработает.

Также ознакомьтесь с этой темой: Avatars lost after restore. How to get them back? - #57 by Overgrow

Привет, @Vasiliy

Прежде чем разворачивать новый экземпляр для решения этой проблемы, возможно, стоит проверить планировщик заданий (sidekiq), чтобы убедиться, что он работает корректно, нет ли неудачных заданий, не перегружена ли очередь заданий и т. д.

your.cooldiscoursesite.com/sidekiq

Просто мысль…

Также, возможно, стоит проверить логи Rails, особенно лог ошибок.

@neounix
Спасибо за ваши предложения.

У меня сейчас нет времени на дальнейшую отладку этой проблемы, поэтому я уже создал новый форум. Пока всё работает нормально.

Честно говоря, я чувствую себя немного глупо, что не додумался проверить логи. Не то чтобы я ожидал понять, что там написано, но я должен был прикрепить их к отчёту. Что ж, лучше поздно, чем никогда. Прикрепляю все логи из директории rails.

Я немного прогнал их через grep, и похоже, что там действительно есть сообщения об ошибках. Однако я не могу понять, что они означают и связаны ли они вообще с проблемами. Вероятно, более опытные участники смогут лучше разобраться в них.