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

Привет, ребята,

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

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

Но есть какие-то идеи, что может быть причиной? Похоже, проблема возникает только при входе в систему.

Например, если зайти на
https://community.cyanlabs.net/
и кликнуть по любой ссылке — всё работает, но если перейти напрямую, например, по адресу
https://community.cyanlabs.net/t/sync-3-4-22251-feedback-issues/6515/189
, то получится вот так:

image

Однако, если перейти, например, к посту 160 вместо 189, всё работает:
https://community.cyanlabs.net/t/sync-3-4-22251-feedback-issues/6515/160
Теперь вы можете подумать, что это потому, что всего 170 постов, но при нажатии кнопки «Вниз» URL всё равно меняется на 189, хотя страница не загружается. Это приводит к копированию неправильных ссылок и другим проблемам при их распространении.

Кроме того, разве Discourse не должен определять, что URL некорректен, и просто загружать тему вместо конкретного поста в ней?


Надеюсь, это легко исправить :thinking:

РЕДАКТИРОВАНИЕ: при дальнейшем исследовании выяснилось, что проблема затрагивает лишь несколько аккаунтов. Пока что это мой (администратор) и модератор по имени Louage. Если не входить в систему — всё работает. Если войти как тестовый пользователь — тоже всё в порядке (как обычный пользователь, так и модератор). Но если войти как я сам — не работает… хм, странно.

Другие модераторы тоже работают нормально… это действительно странная ситуация :thinking:

Верно.

Похоже на проблему с компонентом темы или плагином (возможно, append-tag-apim?). Попробуйте безопасный режим.

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

это мой собственный плагин, GitHub - cyanlabs/discourse-append-tag-apim: Simple plugin that appends the apim tag to sync1,sync2,sync3,sync4 tagged topics · GitHub не делает многого.

https://community.cyanlabs.net/t/sync-3-4-22251-feedback-issues/6515/16022 работает, если вы не вошли в систему.

Кажется маловероятным, что это проблема.

Я бы посоветовал удалить оба неофициальных плагина и выполнить пересборку в качестве следующего шага.

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

Один момент: я использую отдельные контейнеры для данных и веб-части, но оба обновлены, так что, думаю, это не имеет значения?

К сожалению, это не помогло, та же проблема

Попробуйте другие браузеры.

Если это только эти два пользователя, то, наверное, дело в них.

Ссылки работают у других пользователей, так что, скорее всего, это не ошибка Discourse.

Браузер не имеет значения: я пробовал Chrome на телефоне, Chrome на Windows, Edge и т.д. Как только я вхожу в свой аккаунт, эти ссылки перестают работать. То же самое касается Louage; для других модов всё в порядке. На моём тестовом аккаунте всё работает нормально.

Не понимаю, как это не баг Discourse. Даже если проблема связана с конкретными аккаунтами пользователей, это всё равно баг Discourse. Где именно он возникает — кто знает, но это точно проблема на стороне Discourse. Как это может быть проблемой компьютера пользователя, если на том же компьютере (моем) всё работает нормально при входе в другой аккаунт на Discourse?

В конце концов, там буквально написано, что «require» не определён. Это точно означает, что что-то не загружается корректно с сервера Discourse при попытке открыть эти ссылки.
image

Однако я ценю вашу помощь, но это точно серверная проблема, а не клиентская.

Извините за двойной пост, но я также только что заметил, что эти темы

и

тоже вообще не работают. Неужели это связано?

РЕДАКТИРОВАНИЕ: хорошо, это действительно было связано с плагином флагов, но первоначальная проблема всё ещё сохраняется.

РЕДАКТИРОВАНИЕ 2: В любом из файлов логов ничего полезного нет

Started GET "/t/sync-3-4-22251-feedback-issues/6515/9999" for xxxx at 2023-05-01 16:21:07 +0000
Processing by TopicsController#show as HTML
  Parameters: {"slug"=>"sync-3-4-22251-feedback-issues", "topic_id"=>"6515", "post_number"=>"9999"}
  Rendered topics/show.html.erb within layouts/application (Duration: 8.2ms | Allocations: 7009)
  Rendered layout layouts/application.html.erb (Duration: 19.8ms | Allocations: 16957)
Completed 200 OK in 237ms (Views: 20.3ms | ActiveRecord: 0.0ms | Allocations: 179458)

РЕДАКТИРОВАНИЕ 3: Это определённо похоже на ошибку в Discourse, похоже, что проблему вызывают определённые сообщения. Например, я могу открыть
https://community.cyanlabs.net/t/sync-3-4-22251-feedback-issues/6515/341
(341 и ниже)

но не могу открыть

https://community.cyanlabs.net/t/sync-3-4-22251-feedback-issues/6515/342
(342 и выше)

Итак, я разделил тему, и теперь разделённая тема не работает, а исходная — работает, так что это на 100% связано с каким-то сообщением в этой теме где-то…

https://community.cyanlabs.net/t/sync-3-4-22251-feedback-issues-archived-replies/8977/150 сообщения до 150 работают, всё после 150 — нет… так странно.

1 лайк

А если только у некоторых пользователей? Это связано с сетью? Будет ли работать, если зайти из другой сети?

Нет, дело конкретно в пользователе. Неважно, какой браузер, сеть или устройство: если я вхожу как я (или Louage), включая имперсонацию, это не работает.

Насколько я понимаю, это всё ещё баг в Discourse, поэтому я переместил его в bug.

Не уверен, как нам собрать шаги для воспроизведения, чтобы разобраться в этом? :thinking:

Происходит ли это со всеми аккаунтами администраторов и/или модераторов? Есть ли в /logs какие-либо дополнительные детали, которые помогут сузить круг поиска?

И вы проверяли безопасный режим?

1 лайк

Привет,

К сожалению, нет. Это происходит только с моей учётной записью (Администратор) и с учётной записью Louage (Модератор).

В /logs ничего не отображается, к сожалению. То же самое касается всех файлов журнала, упомянутых в теме о логах.

Безопасный режим ничего не меняет (это было упомянуто выше, но, возможно, вы это пропустили).