Нет тайм-аута для резервных копий (зависло с сентября)

Я хочу сообщить о следующих проблемах:

  1. Похоже, для резервного копирования не установлено время ожидания. Таким образом, автоматическое резервное копирование зависло с сентября.
  2. После отмены все наши пользователи получили сводные электронные письма и запросы на сброс пароля, накопленные с сентября.

Вот лог:

[2019-09-26 03:35:25] pg_dump: создание ИНДЕКСА "public.idx_tag_users_ix1"
[2019-09-26 03:35:25] pg_dump: создание ИНДЕКСА "public.idx_tag_users_ix2"
[2019-09-26 03:35:25] pg_dump: создание ИНДЕКСА "public.idx_topic_id_public_type_deleted_at"
[2019-09-26 03:35:25] pg_dump: создание ИНДЕКСА "public.idx_topics_front_page"
[2019-09-26 03:35:25] pg_dump: создание ИНДЕКСА "public.idx_topics_user_id_deleted_at"
[2019-09-26 03:35:25] pg_dump: создание ИНДЕКСА "public.idx_unique_actions"
[2019-09-26 03:35:25] pg_dump: создание ИНДЕКСА "public.idx_unique_flags"
[2019-09-26 03:35:25] Завершение резервного копирования...
[2019-09-26 03:35:25] Создание архива: our-community-2019-09-26-033520-v20171214040346.tar.gz
[2019-09-26 03:35:25] Проверка на существование архива...
[2019-09-26 03:35:25] pg_dump: создание ИНДЕКСА "public.idx_unique_post_uploads"
[2020-01-24 16:02:39] Процесс резервного копирования был отменён!
[2020-01-24 16:02:39] Уведомление 'system' об окончании резервного копирования...
4 лайка

Хотя это и не идеально, у вас есть какие-либо идеи, почему резервное копирование заняло так много времени? У вас огромная база данных?

1 лайк

Нет, это небольшой размер: файлы .dump из Postgres занимали 112 МБ.

Как был установлен ваш сервер? Где он развернут?

1 лайк

Это очень странно. После сообщения «Finalizing backup…» появляется лишний лог от «pg_dump».

Также я не понимаю, почему система перестала отправлять письма. Sidekiq должен быть уже разблокирован, когда в логах появляется «Finalizing backup…».

Какую версию Discourse вы используете? Предполагаю, что вы не выполняли обновлений с сентября, иначе я почти уверен, что это остановило бы резервное копирование. :thinking:

8 лайков

Спасибо за прочтение и ответ! Я заметил проблему при проверке старого сервера, который теперь заменён. У меня всё ещё есть доступ к старому экземпляру.

  • Это произошло в версии 1.8
  • Отправлялись только письма с уведомлением new_version. Сбросы паролей и другие уведомления не отправлялись.
  • Логи часто записываются и сбрасываются в разных потоках/процессах, поэтому я не уверен, может ли это объяснить появление случайного сообщения pg_dump… но это определённо очень подозрительно.

Думаю, реальная проблема может заключаться ещё и в том, что при отправке большого количества писем из очереди не выполняются проверки на корректность данных. Что, если напоминание о пароле устарело на 3 месяца? Стоит ли предполагать, что изменилось системное время или что письма не отправлялись в течение значительного периода?

Наш новый сервер теперь работает на последней версии Discourse, но было бы обидно, если бы автоматические резервные копии снова зависли. https://community.learningequality.org/

1 лайк

Что ж, это крайне старая версия. Меня бы не удивило, если бы в той версии были проблемы с приостановкой/возобновлением Sidekiq, которые уже были исправлены с тех пор.

В Discourse нет функции неконтролируемых обновлений.

4 лайка

В Discourse нет автоматических обновлений без участия пользователя.

Это была опечатка

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

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

4 лайка