Спасибо, Кэмерон, здорово это слышать! Я планирую закрыть эту тему через
ещё месяц. Если она будет закрыта и возникнет новая проблема, не стесняйтесь
открыть новую тему
Не могли бы вы проверить, что говорят ваши записи о заголовке первого сообщения?
Оно должно содержать message-id <discourse/post/72724@discuss.python.org>,
но этот message-id не отображается в моих логах почтового фильтра.
Дополнение. Похоже, Discourse обрезал мою вставку заголовков. Я размещу их здесь через веб-форум вместо отправки по электронной почте:
Возможно, это проблема отображения. В исходном тексте, который виден при редактировании этого сообщения, заголовки присутствуют полностью. Я загрузил их как файл. Думаю. — Кэмерон hdrs.txt (2.7 КБ)
Да, спасибо, Кэмерон, моя вина, я забыл ответить. На этой неделе я был завален другими делами, плюс у меня был выходной в середине недели. Я поставил напоминание разобрать это в понедельник и тогда уже дать полноценный ответ.
Подтверждаю, что в наших почтовых логах для Python указан правильный Message-ID. Скорее всего, в данном случае произошло следующее: исходное сообщение (OP) было опубликовано в категории «Packaging», а вскоре после этого перемещено в категорию «Python Help», что могло повлиять на отправку писем. Похоже, что для исходного сообщения письмо получили только 5 человек, а для второго сообщения — 30 человек (включая вас). Возможно, стоит просто понаблюдать, не повторится ли это, чтобы выявить закономерность. В нашей системе рассылки существует множество механизмов для предотвращения отправки писем в определённых случаях, и, возможно, мы просто столкнулись с одним из них.
[quote=“Кэмерон Симпсон, пост:94, тема:233499,
username:cameron-simpson”]
Сообщение должно было иметь идентификатор discourse/post/72724@discuss.python.org,
но этот идентификатор не отображается в моих логах почтового фильтра.
[/quote]
Подтверждаю, что в наших почтовых логах для Python указан правильный Message-ID.
Отлично.
Полагаю, в данном случае произошло следующее: исходный пост (OP) был размещён
в категории «Packaging», а вскоре после этого переведён в категорию
«Python Help», что могло повлиять на отправку писем. Похоже, что для
исходного поста письма получили только 5 человек, а для второго поста — 30
(включая вас). Возможно, стоит просто понаблюдать и посмотреть, повторится ли
это, чтобы выявить закономерность. В нашей почтовой системе существует множество
«коротких замыканий», предотвращающих отправку писем в определённых случаях,
и, возможно, мы просто столкнулись с одним из них.
Это интересно. У меня включён режим рассылки, и, насколько мне известно, категория
«Packaging» для меня не отключена. Неужели я не должен был получить письмо
по поводу исходного поста?
Стоит ли использовать меня как известный случай неполучения письма для анализа
этих «коротких замыканий»?
Извините, это был я. Я убрал таймер после того, как прочитал ваш пост с просьбой его отключить. Я поставил небольшой «Лайк» в знак признательности, но, возможно, это было слишком незаметным намеком.
Для меня это было слишком незаметно. Как вы, наверное, догадались из обсуждения, я в первую очередь предпочитаю электронную почту.
Но также я читал «Снежный криш», так и не заметив, что имя главного героя — игра слов. Так что, если вы рассчитываете на subtlety, вам предстоит нелёгкая борьба со мной
Сейчас я использую этот случай в качестве примера. Пока что, просматривая код шаг за шагом, ничего подозрительного не обнаружено. Согласно нашей таблице EmailLog, ни один пользователь не получил письмо с исходным сообщением (OP) этой темы, но причина этого неясна. Если я проделаю те же шаги, что и в discourse/app/jobs/regular/notify_mailing_list_subscribers.rb at 23ac0cf8f1f5d7aede3991c6947530dc1af7f7a2 · discourse/discourse · GitHub, но остановлюсь перед отправкой писем, всё выглядит так, будто должно произойти правильное действие. Записей для OP в таблице SkippedEmailLog также нет. Возможно, задача завершилась неудачей и затем каждый последующий повтор тоже провалился, но я в этом сомневаюсь.
Я только что немного изменил настройки нашего хостинга для Python, чтобы получить возможность видеть более подробную информацию о логировании для этих задач. Пожалуйста, следите за этим и сообщите, если заметите повторение подобной ситуации в ближайшие пару недель. Надеюсь, мне удастся найти причину проблемы.
[quote=“Кэмерон Симпсон, пост:102, тема:233499,
username:cameron-simpson”]
И ещё один пример, где я получил второй пост, а не исходный (OP).
[/quote]
Я использую этот пример сейчас. Пока что, просматривая код, я ничего подозрительного не обнаружил. Никто не получил письмо по поводу исходного поста (OP) этой темы согласно нашей таблице EmailLog, но причина не ясна, поскольку если я пройду по тем же шагам, что и в discourse/app/jobs/regular/notify_mailing_list_subscribers.rb at 23ac0cf8f1f5d7aede3991c6947530dc1af7f7a2 · discourse/discourse · GitHub, и остановлюсь перед отправкой писем, то кажется, что всё должно сработать правильно. Записей для OP в SkippedEmailLog тоже нет. Возможно, задача не выполнилась и затем не выполнялась при каждой последующей попытке, но я в этом сомневаюсь.
Верно. Я тоже не вижу ничего неправильного в этом коде, если только нет странных проблем с конструкцией NOT EXISTS. Но на мой наивный взгляд, всё выглядит нормально.
Я только что настроил некоторые параметры на нашем хостинге для Python, чтобы получить более подробную информацию о логировании для этих задач. Пожалуйста, следите за этим и дайте знать, если заметите повторение этой проблемы в ближайшие пару недель. Надеюсь, мне удастся найти причину.
Спасибо. Я буду держать вас в курсе, как только увижу новые случаи.
Совпадение по времени (это и предыдущий случай произошли сегодня утром после периода затишья) заставляет меня задуматься: возможно, дело не в банальной ошибке логики типа «должно ли это отправляться?», а в более широкой проблеме, из-за которой это не работает, например, перезапуск экземпляра Discourse или какая-то другая проблема с ресурсами.
Аналогичный поиск по ID сообщения ответа, а затем по ID сообщения «в ответ на» (ОП):
Спасибо, Кэмерон, что привёл эти два примера. Действительно, это может быть что-то подобное, возможно, связано с фоновыми задачами в Sidekiq, которые завершаются с ошибкой, или с чем-то ещё, что происходит с ними, поскольку они хранятся в Redis.
Подтверждаю: для вашего пользователя в этой теме нет записи EmailLog для оригинального поста. Пока ничего более заметного не выделяется, однако это очень неприятная ошибка, причина которой сложно определяется.
К сожалению, это действие было рассчитано только на один месяц, и автоматическая система уже отключила его. Я снова включил детальное ведение журналов на три месяца, чтобы посмотреть, появятся ли ещё примеры для Python, которые я смогу проанализировать.