Мой форум упал во время обновления программного обеспечения и теперь полностью исчез. Я получаю следующие сообщения об ошибках…
" Ой
Программное обеспечение, управляющее этим дискуссионным форумом, столкнулось с непредвиденной проблемой. Приносим извинения за доставленные неудобства.
Подробная информация об ошибке была зафиксирована в логах, и было сгенерировано автоматическое уведомление. Мы разберёмся в этом.
Дальнейших действий с вашей стороны не требуется. Однако, если ошибка повторяется, вы можете предоставить дополнительные детали, включая шаги для воспроизведения ошибки, опубликовав тему в разделе обратной связи на сайте."
То же самое поведение. У меня возникали ошибки с воркерами, я перезапустил его… он упал… попытался пересобрать. Теперь постоянные падения.
/var/discourse# ./launcher rebuild app
x86_64 arch detected.
WARNING: containers/app.yml file is world-readable. You can secure this file by running: chmod o-rwx containers/app.yml
Ensuring launcher is up to date
Fetching origin
Launcher is up-to-date
2.0.20240825-0027: Pulling from discourse/base
Digest: sha256:6de68cb49198b5281f79ed9401b3fe818c854d220dcf0238549fe2f2adb19146
Status: Image is up to date for discourse/base:2.0.20240825-0027
/usr/local/lib/ruby/gems/3.3.0/gems/pups-1.2.1/lib/pups.rb
/usr/local/bin/pups --stdin
I, [2024-08-27T21:43:42.091270 #1] INFO -- : Reading from stdin
I, [2024-08-27T21:43:42.110405 #1] INFO -- : File > /etc/service/postgres/run chmod: +x chown:
I, [2024-08-27T21:43:42.117678 #1] INFO -- : File > /etc/service/postgres/log/run chmod: +x chown:
I, [2024-08-27T21:43:42.125472 #1] INFO -- : File > /etc/runit/3.d/99-postgres chmod: +x chown:
I, [2024-08-27T21:43:42.132700 #1] INFO -- : File > /root/install_postgres chmod: +x chown:
I, [2024-08-27T21:43:42.139622 #1] INFO -- : File > /root/upgrade_postgres chmod: +x chown:
I, [2024-08-27T21:43:42.140454 #1] INFO -- : Replacing data_directory = '/var/lib/postgresql/13/main' with data_directory = '/shared/postgres_data' in /etc/postgresql/13/main/postgresql.conf
I, [2024-08-27T21:43:42.141762 #1] INFO -- : Replacing (?-mix:#?listen_addresses *=.*) with listen_addresses = '*' in /etc/postgresql/13/main/postgresql.conf
I, [2024-08-27T21:43:42.142675 #1] INFO -- : Replacing (?-mix:#?synchronous_commit *=.*) with synchronous_commit = $db_synchronous_commit in /etc/postgresql/13/main/postgresql.conf
I, [2024-08-27T21:43:42.143534 #1] INFO -- : Replacing (?-mix:#?shared_buffers *=.*) with shared_buffers = $db_shared_buffers in /etc/postgresql/13/main/postgresql.conf
I, [2024-08-27T21:43:42.144382 #1] INFO -- : Replacing (?-mix:#?work_mem *=.*) with work_mem = $db_work_mem in /etc/postgresql/13/main/postgresql.conf
I, [2024-08-27T21:43:42.144912 #1] INFO -- : Replacing (?-mix:#?default_text_search_config *=.*) with default_text_search_config = '$db_default_text_search_config' in /etc/postgresql/13/main/postgresql.conf
I, [2024-08-27T21:43:42.145541 #1] INFO -- : Replacing (?-mix:#?checkpoint_segments *=.*) with checkpoint_segments = $db_checkpoint_segments in /etc/postgresql/13/main/postgresql.conf
I, [2024-08-27T21:43:42.146355 #1] INFO -- : Replacing (?-mix:#?logging_collector *=.*) with logging_collector = $db_logging_collector in /etc/postgresql/13/main/postgresql.conf
I, [2024-08-27T21:43:42.146979 #1] INFO -- : Replacing (?-mix:#?log_min_duration_statement *=.*) with log_min_duration_statement = $db_log_min_duration_statement in /etc/postgresql/13/main/postgresql.conf
I, [2024-08-27T21:43:42.147851 #1] INFO -- : Replacing (?-mix:^#local +replication +postgres +peer$) with local replication postgres peer in /etc/postgresql/13/main/pg_hba.conf
I, [2024-08-27T21:43:42.148557 #1] INFO -- : Replacing (?-mix:^host.*all.*all.*127.*$) with host all all 0.0.0.0/0 md5 in /etc/postgresql/13/main/pg_hba.conf
I, [2024-08-27T21:43:42.149423 #1] INFO -- : Replacing (?-mix:^host.*all.*all.*::1\/128.*$) with host all all ::/0 md5 in /etc/postgresql/13/main/pg_hba.conf
I, [2024-08-27T21:43:42.149931 #1] INFO -- : > if [ -f /root/install_postgres ]; then
/root/install_postgres && rm -f /root/install_postgres
elif [ -e /shared/postgres_run/.s.PGSQL.5432 ]; then
socat /dev/null UNIX-CONNECT:/shared/postgres_run/.s.PGSQL.5432 || exit 0 && echo postgres already running stop container ; exit 1
fi
2024/08/27 21:43:42 socat[28] E connect(, AF=1 "/shared/postgres_run/.s.PGSQL.5432", 36): Connection refused
I, [2024-08-27T21:43:42.217004 #1] INFO -- : Generating locales (this might take a while)...
Generation complete.
I, [2024-08-27T21:43:42.217327 #1] INFO -- : > HOME=/var/lib/postgresql USER=postgres exec chpst -u postgres:postgres:ssl-cert -U postgres:postgres:ssl-cert /usr/lib/postgresql/13/bin/postmaster -D /etc/postgresql/13/main
I, [2024-08-27T21:43:42.220344 #1] INFO -- : Terminating async processes
2024-08-27 21:43:42.300 UTC [30] LOG: starting PostgreSQL 13.16 (Debian 13.16-1.pgdg120+1) on x86_64-pc-linux-gnu, compiled by gcc (Debian 12.2.0-14) 12.2.0, 64-bit
2024-08-27 21:43:42.300 UTC [30] LOG: listening on IPv4 address "0.0.0.0", port 5432
2024-08-27 21:43:42.300 UTC [30] LOG: listening on IPv6 address "::", port 5432
2024-08-27 21:43:42.303 UTC [30] LOG: listening on Unix socket "/var/run/postgresql/.s.PGSQL.5432"
2024-08-27 21:43:42.310 UTC [31] LOG: database system was interrupted; last known up at 2024-08-27 21:41:14 UTC
2024-08-27 21:43:42.503 UTC [31] LOG: database system was not properly shut down; automatic recovery in progress
2024-08-27 21:43:42.507 UTC [31] LOG: redo starts at 38C/55C02EA0
2024-08-27 21:43:42.507 UTC [31] LOG: invalid record length at 38C/55C02ED8: wanted 24, got 0
2024-08-27 21:43:42.507 UTC [31] LOG: redo done at 38C/55C02EA0
2024-08-27 21:43:42.540 UTC [30] LOG: database system is ready to accept connections
Просто зависает там навсегда… не назначает порты контейнеру, не запускает Rails-приложение и ничего подобного, насколько я могу судить.
Нет… существует контейнер-зомби, который создаётся командой ./launcher rebuild app, и он выдаёт вывод, показанный выше. Вот как выглядит этот контейнер. Он начинает сборку с базового образа Discourse, но затем зависает, как упоминалось ранее. Он не регистрируется как приложение Discourse.
/var/discourse# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
02ae320b72a0 discourse/base:2.0.20240825-0027 "/bin/bash -c '/usr/…" 7 minutes ago Up 7 minutes sleepy_driscoll
При запуске ./launcher start app возникает ошибка, потому что система пытается запустить новое приложение, а PostgreSQL уже работает на порту 5432 в контейнере-зомби. Если удалить контейнер-зомби (и/или образы), то создаётся новый контейнер, но он снова зависает с теми же логами, как в моём предыдущем сообщении.
Это очень напряжённая и неприятная ситуация. Я не понимаю, как мы до этого дошли. Я отключил все плагины в своём файле app.yaml и попытался выполнить сборку заново.
Я думаю, что эти логи наиболее релевантны для ситуации на моём форуме
2024-08-27 21:43:42.300 UTC [30] LOG: запуск PostgreSQL 13.16 (Debian 13.16-1.pgdg120+1) на x86_64-pc-linux-gnu, скомпилировано с помощью gcc (Debian 12.2.0-14) 12.2.0, 64-бит
2024-08-27 21:43:42.300 UTC [30] LOG: прослушивание IPv4-адреса "0.0.0.0", порт 5432
2024-08-27 21:43:42.300 UTC [30] LOG: прослушивание IPv6-адреса "::", порт 5432
2024-08-27 21:43:42.303 UTC [30] LOG: прослушивание Unix-сокета "/var/run/postgresql/.s.PGSQL.5432"
2024-08-27 21:43:42.310 UTC [31] LOG: система баз данных была прервана; последнее известное состояние активности на 2024-08-27 21:41:14 UTC
2024-08-27 21:43:42.503 UTC [31] LOG: система баз данных не была корректно завершена; выполняется автоматическое восстановление
2024-08-27 21:43:42.507 UTC [31] LOG: повторное выполнение начинается с 38C/55C02EA0
2024-08-27 21:43:42.507 UTC [31] LOG: недопустимая длина записи в 38C/55C02ED8: ожидалось 24, получено 0
2024-08-27 21:43:42.507 UTC [31] LOG: повторное выполнение завершено в 38C/55C02EA0
2024-08-27 21:43:42.540 UTC [30] LOG: система баз данных готова принимать подключения
просто зависает здесь навсегда… никогда не компилирует ассеты, не запускает Rails-приложение, не запускает Redis и так далее.