Без ошибок, инстанс не поднимается после пересоздания

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

Возможно, это из-за свежего коммита?

Каковы симптомы?

Что вы увидите, если выполните

tail -f /var/discourse/shared/standalone/log/rails/production.log
Выполнено за 89,60 с.
Загрузка MaxMindDB...
Сжатие JavaScript и генерация карт исходного кода

I, [2023-03-08T17:11:55.996529 #1]  INFO -- : Файл > /usr/local/bin/discourse  chmod: +x  chown: 
I, [2023-03-08T17:11:55.999205 #1]  INFO -- : Файл > /usr/local/bin/rails  chmod: +x  chown: 
I, [2023-03-08T17:11:56.001899 #1]  INFO -- : Файл > /usr/local/bin/rake  chmod: +x  chown: 
I, [2023-03-08T17:11:56.004616 #1]  INFO -- : Файл > /usr/local/bin/rbtrace  chmod: +x  chown: 
I, [2023-03-08T17:11:56.007306 #1]  INFO -- : Файл > /usr/local/bin/stackprof  chmod: +x  chown: 
I, [2023-03-08T17:11:56.010710 #1]  INFO -- : Файл > /etc/update-motd.d/10-web  chmod: +x  chown: 
I, [2023-03-08T17:11:56.012746 #1]  INFO -- : Файл > /etc/logrotate.d/rails  chmod:   chown: 
I, [2023-03-08T17:11:56.014343 #1]  INFO -- : Файл > /etc/logrotate.d/nginx  chmod:   chown: 
I, [2023-03-08T17:11:56.017963 #1]  INFO -- : Файл > /etc/runit/1.d/00-ensure-links  chmod: +x  chown: 
I, [2023-03-08T17:11:56.020609 #1]  INFO -- : Файл > /etc/runit/1.d/01-cleanup-web-pids  chmod: +x  chown: 
I, [2023-03-08T17:11:56.023663 #1]  INFO -- : Файл > /root/.bash_profile  chmod: 644  chown: 
I, [2023-03-08T17:11:56.026021 #1]  INFO -- : Файл > /usr/local/etc/ImageMagick-7/policy.xml  chmod:   chown: 
I, [2023-03-08T17:11:56.026795 #1]  INFO -- : Замена (?-mix:server.+{) на limit_req_zone $binary_remote_addr zone=flood:10m rate=$reqs_per_secondr/s;
limit_req_zone $binary_remote_addr zone=bot:10m rate=$reqs_per_minuter/m;
limit_req_status 429;
limit_conn_zone $binary_remote_addr zone=connperip:10m;
limit_conn_status 429;
server {
 в /etc/nginx/conf.d/discourse.conf
I, [2023-03-08T17:11:56.026984 #1]  INFO -- : Замена (?-mix:location @discourse {) на location @discourse {
  limit_conn connperip $conn_per_ip;
  limit_req zone=flood burst=$burst_per_second nodelay;
  limit_req zone=bot burst=$burst_per_minute nodelay; в /etc/nginx/conf.d/discourse.conf
I, [2023-03-08T17:11:56.029658 #1]  INFO -- : Файл > /etc/runit/1.d/remove-old-socket  chmod: +x  chown: 
I, [2023-03-08T17:11:56.032272 #1]  INFO -- : Файл > /etc/runit/3.d/remove-old-socket  chmod: +x  chown: 
I, [2023-03-08T17:11:56.032398 #1]  INFO -- : Замена (?-mix:listen 80;) на listen unix:/shared/nginx.http.sock;
set_real_ip_from unix:;
 в /etc/nginx/conf.d/discourse.conf
I, [2023-03-08T17:11:56.032577 #1]  INFO -- : Замена (?-mix:listen 443 ssl http2;) на listen unix:/shared/nginx.https.sock ssl http2;
set_real_ip_from unix:; в /etc/nginx/conf.d/discourse.conf
I, [2023-03-08T17:11:56.035350 #1]  INFO -- : Файл > /tmp/add-cloudflare-ips  chmod: +x  chown: 
I, [2023-03-08T17:11:56.035435 #1]  INFO -- : > /tmp/add-cloudflare-ips
I, [2023-03-08T17:11:56.359453 #1]  INFO -- : IP-адреса CloudFlare:
set_real_ip_from 173.245.48.0/20; set_real_ip_from 103.21.244.0/22; set_real_ip_from 103.22.200.0/22; set_real_ip_from 103.31.4.0/22; set_real_ip_from 141.101.64.0/18; set_real_ip_from 108.162.192.0/18; set_real_ip_from 190.93.240.0/20; set_real_ip_from 188.114.96.0/20; set_real_ip_from 197.234.240.0/22; set_real_ip_from 198.41.128.0/17; set_real_ip_from 162.158.0.0/15; set_real_ip_from 104.16.0.0/13; set_real_ip_from 104.24.0.0/14; set_real_ip_from 172.64.0.0/13; set_real_ip_from 131.0.72.0/22; set_real_ip_from 2400:cb00::/32; set_real_ip_from 2606:4700::/32; set_real_ip_from 2803:f800::/32; set_real_ip_from 2405:b500::/32; set_real_ip_from 2405:8100::/32; set_real_ip_from 2a06:98c0::/29; set_real_ip_from 2c0f:f248::/32;

I, [2023-03-08T17:11:56.359655 #1]  INFO -- : > rm /tmp/add-cloudflare-ips
I, [2023-03-08T17:11:56.361599 #1]  INFO -- : 
I, [2023-03-08T17:11:56.361818 #1]  INFO -- : > echo "Начало пользовательских команд"
I, [2023-03-08T17:11:56.363535 #1]  INFO -- : Начало пользовательских команд

I, [2023-03-08T17:11:56.367829 #1]  INFO -- : Файл > /etc/service/monerochan_merchant_rpc/run  chmod: +x  chown: 
I, [2023-03-08T17:11:56.368034 #1]  INFO -- : > echo "Конец пользовательских команд"
I, [2023-03-08T17:11:56.369958 #1]  INFO -- : Конец пользовательских команд

I, [2023-03-08T17:11:56.370117 #1]  INFO -- : Завершение асинхронных процессов
I, [2023-03-08T17:11:56.370225 #1]  INFO -- : Отправка INT для 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 pid: 42
I, [2023-03-08T17:11:56.370261 #1]  INFO -- : Отправка TERM для exec chpst -u redis -U redis /usr/bin/redis-server /etc/redis/redis.conf pid: 103
2023-03-08 17:11:56.370 UTC [42] LOG:  получен запрос быстрого завершения
103:signal-handler (1678295516) Получен SIGTERM, планирование завершения...
2023-03-08 17:11:56.372 UTC [42] LOG:  прерывание всех активных транзакций
2023-03-08 17:11:56.374 UTC [42] LOG:  фоновый рабочий "запускщик логической репликации" (PID 51) завершился с кодом выхода 1
2023-03-08 17:11:56.375 UTC [46] LOG:  завершение работы
2023-03-08 17:11:56.392 UTC [42] LOG:  система баз данных завершена
103:M 08 Mar 2023 17:11:56.469 # Пользователь запросил завершение...
103:M 08 Mar 2023 17:11:56.469 * Сохранение финального снимка RDB перед выходом.
103:M 08 Mar 2023 17:11:56.570 * База данных сохранена на диск
103:M 08 Mar 2023 17:11:56.570 # Redis теперь готов к выходу, пока...
sha256:422bd26e098f3af0623647ebce02770ac1608bfac07260aeb5469ab975696363
a0b91a9cc45e8666352e172143854705faa97b38208fcfe0650ea929989b8570
Удаление старого контейнера
+ /usr/bin/docker rm app
app
➜  discourse git:(main) ✗ tail -f /var/discourse/shared/standalone/log/rails/production.log


Пока!
Уведомление об устаревании: (siwe) полный экран входа теперь принудительный. Параметр full_screen_login можно удалить из auth_provider. (удаление в Discourse 2.9.0) 
В /var/www/discourse/lib/plugin/instance.rb:763:in `public_send`
Миграция к MakeChatMentionNotificationIdNullable (20230227172543)
Миграция к DropBadgeGrantedTitleColumn (20230228105851)
Миграция к AddExternalToSidebarUrls (20230303015952)
Тип настройки темы изменился, но преобразовать его невозможно. 

 #<ThemeSettingsManager::Upload:0x00007f60ff714e38 @name=:background_image, @default="", @theme=#<Theme id: 31, name: "Search Banner", user_id: 2, created_at: "2021-08-03 16:38:09.042735000 +0000", updated_at: "2021-08-03 17:01:41.329058000 +0000", compiler_version: 0, user_selectable: false, hidden: false, color_scheme_id: nil, remote_theme_id: 29, component: true, enabled: true, auto_update: true>, @opts={:description=>"фоновое изображение для баннера", :textarea=>false, :json_schema=>nil, :refresh=>false}, @types={:integer=>0, :float=>1, :string=>2, :bool=>3, :list=>4, :enum=>5, :upload=>6}>
Пока!
Уведомление об устаревании: (siwe) полный экран входа теперь принудительный. Параметр full_screen_login можно удалить из auth_provider. (удаление в Discourse 2.9.0) 
В /var/www/discourse/lib/plugin/instance.rb:763:in `public_send`
Миграция к MakeChatMentionNotificationIdNullable (20230227172543)
Миграция к DropBadgeGrantedTitleColumn (20230228105851)
Миграция к AddExternalToSidebarUrls (20230303015952)
Тип настройки темы изменился, но преобразовать его невозможно. 

 #<ThemeSettingsManager::Upload:0x00007f60ff714e38 @name=:background_image, @default="", @theme=#<Theme id: 31, name: "Search Banner", user_id: 2, created_at: "2021-08-03 16:38:09.042735000 +0000", updated_at: "2021-08-03 17:01:41.329058000 +0000", compiler_version: 0, user_selectable: false, hidden: false, color_scheme_id: nil, remote_theme_id: 29, component: true, enabled: true, auto_update: true>, @opts={:description=>"фоновое изображение для баннера", :textarea=>false, :json_schema=>nil, :refresh=>false}, @types={:integer=>0, :float=>1, :string=>2, :bool=>3, :list=>4, :enum=>5, :upload=>6}>

Я не вижу ничего необычного. Возможно, строки nginx вызывают беспокойство? (моя настройка nginx взята из официального руководства по обслуживанию Discourse).

Что произойдет, если вы посетите свой сайт? Можете поделиться URL?

Лучше не публично, но я напишу тебе в личные сообщения.

Редакция: перенастроил nginx, чтобы игнорировать ошибки 502 и т. д. Просто ошибка шлюза.

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

Если Cloudflare (или что-то ещё) блокирует браузер от доступа к сайту, возможно, вы сможете просмотреть логи в поисках ошибки 500, чтобы понять, в чём проблема.

Вы можете попробовать выполнить curl localhost изнутри контейнера.

Отличный фидбек. Попробую и отпишусь.

EDIT: Хм, похоже, в логах ничего не происходит, но я вижу следующее.

➜  ~ tail -f /var/discourse/shared/standalone/log/rails/production.log
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/redis-4.8.1/lib/redis/subscribe.rb:14:in `subscribe'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/redis-4.8.1/lib/redis.rb:288:in `_subscription'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/redis-4.8.1/lib/redis/commands/pubsub.rb:20:in `block in subscribe'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/redis-4.8.1/lib/redis.rb:265:in `block in synchronize'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/redis-4.8.1/lib/redis.rb:265:in `synchronize'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/redis-4.8.1/lib/redis.rb:265:in `synchronize'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/redis-4.8.1/lib/redis/commands/pubsub.rb:19:in `subscribe'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/message_bus-4.3.2/lib/message_bus/backends/redis.rb:302:in `global_subscribe'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/message_bus-4.3.2/lib/message_bus.rb:768:in `global_subscribe_thread'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/message_bus-4.3.2/lib/message_bus.rb:739:in `block in new_subscriber_thread'

В логах nginx я вижу:

023/03/08 17:58:38 [crit] 115962#115962: *448 connect() to unix:/var/discourse/shared/standalone/nginx.http.sock failed (2: No such file or directory) while connecting to upstream, client: IP.XXX server: [domain.com](http://domain.com), request: "GET /service-worker.js HTTP/2.0", upstream: "http://unix:/var/discourse/shared/standalone/nginx.http.sock:/service-worker.js", host: "domain.com", referrer: "https://domain.com/service-worker.js"
2023/03/08 17:59:32 [notice] 318573#318573: signal process started

Это поможет? Или мне стоит полностью откатить настройку nginx?

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

Завершено 200 OK за 25 мс (Views: 0.1 мс | ActiveRecord: 0.0 мс | Выделения: 17734)
Начат GET запрос "/categories_and_latest" для [ip удален] в 2023-03-08 16:20:41 +0000
Обработка CategoriesController#categories_and_latest в формате JSON
  Отрендерен текстовый шаблон (Длительность: 0.0 мс | Выделения: 1)
Завершено 200 OK за 112 мс (Views: 0.2 мс | ActiveRecord: 0.0 мс | Выделения: 63242)
Начат GET запрос "/" для [ip удален] в 2023-03-08 16:21:00 +0000
Обработка CategoriesController#index в формате HTML
  Отрендерен categories/index.html.erb внутри layouts/crawler (Длительность: 1.4 мс | Выделения: 1135)
  Отрендерен макет layouts/crawler.html.erb (Длительность: 6.7 мс | Выделения: 3536)
Завершено 200 OK за 75 мс (Views: 7.7 мс | ActiveRecord: 0.0 мс | Выделения: 41712)
Начат GET запрос "/notifications?limit=30&recent=true&bump_last_seen_reviewable=true" для [ip удален] в 2023-03-08 16:21:35 +0000
Обработка NotificationsController#index в формате JSON
  Параметры: {"limit"=>"30", "recent"=>"true", "bump_last_seen_reviewable"=>"true"}
Завершено 200 OK за 60 мс (Views: 0.1 мс | ActiveRecord: 0.0 мс | Выделения: 30822)
Начат GET запрос "/" для [ip удален] в 2023-03-08 16:22:00 +0000
Обработка CategoriesController#index в формате HTML
  Отрендерен categories/index.html.erb внутри layouts/crawler (Длительность: 1.1 мс | Выделения: 1135)
  Отрендерен макет layouts/crawler.html.erb (Длительность: 5.4 мс | Выделения: 3536)
Завершено 200 OK за 86 мс (Views: 6.1 мс | ActiveRecord: 0.0 мс | Выделения: 41842)
Остановка
Завершение неактивных потоков
Планировщик завершает работу...
Ошибка получения задания: ошибка подключения к Redis на localhost:6379 (Errno::EADDRNOTAVAIL)
Ошибка подключения к Redis на localhost:6379 (Errno::EADDRNOTAVAIL) подписка не удалась, повторное подключение через 1 секунду. Стек вызовов /var/www/discourse/vendor/bundle/ruby/3.2.0/gems/redis-4.8.1/lib/redis/client.rb:398:in `rescue in establish_connection'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/redis-4.8.1/lib/redis/client.rb:379:in `establish_connection'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/redis-4.8.1/lib/redis/client.rb:115:in `block in connect'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/redis-4.8.1/lib/redis/client.rb:344:in `with_reconnect'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/redis-4.8.1/lib/redis/client.rb:114:in `connect'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/redis-4.8.1/lib/redis/client.rb:409:in `ensure_connected'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/redis-4.8.1/lib/redis/client.rb:269:in `block in process'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/redis-4.8.1/lib/redis/client.rb:356:in `logging'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/redis-4.8.1/lib/redis/client.rb:268:in `process'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/redis-4.8.1/lib/redis/client.rb:175:in `block in call_loop'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/redis-4.8.1/lib/redis/client.rb:331:in `with_socket_timeout'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/redis-4.8.1/lib/redis/client.rb:174:in `call_loop'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/redis-4.8.1/lib/redis/subscribe.rb:44:in `subscription'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/redis-4.8.1/lib/redis/subscribe.rb:14:in `subscribe'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/redis-4.8.1/lib/redis.rb:288:in `_subscription'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/redis-4.8.1/lib/redis/commands/pubsub.rb:20:in `block in subscribe'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/redis-4.8.1/lib/redis.rb:265:in `block in synchronize'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/redis-4.8.1/lib/redis.rb:265:in `synchronize'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/redis-4.8.1/lib/redis.rb:265:in `synchronize'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/redis-4.8.1/lib/redis/commands/pubsub.rb:19:in `subscribe'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/message_bus-4.3.2/lib/message_bus/backends/redis.rb:302:in `global_subscribe'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/message_bus-4.3.2/lib/message_bus.rb:768:in `global_subscribe_thread'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/message_bus-4.3.2/lib/message_bus.rb:739:in `block in new_subscriber_thread'
Ошибка получения задания: ошибка подключения к Redis на localhost:6379 (Errno::EADDRNOTAVAIL)
Ошибка получения задания: ошибка подключения к Redis на localhost:6379 (Errno::EADDRNOTAVAIL)
Ошибка получения задания: ошибка подключения к Redis на localhost:6379 (Errno::EADDRNOTAVAIL)
Исключение задания: ошибка подключения к Redis на localhost:6379 (Errno::EADDRNOTAVAIL)

Ошибка получения задания: ошибка подключения к Redis на localhost:6379 (Errno::EADDRNOTAVAIL)
Исключение задания: ошибка подключения к Redis на localhost:6379 (Errno::EADDRNOTAVAIL)

Исключение задания: ошибка подключения к Redis на localhost:6379 (Errno::EADDRNOTAVAIL)

Исключение задания: ошибка подключения к Redis на localhost:6379 (Errno::EADDRNOTAVAIL)

Исключение задания: ошибка подключения к Redis на localhost:6379 (Errno::EADDRNOTAVAIL)

Исключение задания: ошибка подключения к Redis на localhost:6379 (Errno::EADDRNOTAVAIL)

Не удалось обработать задание: ошибка подключения к Redis на localhost:6379 (Errno::EADDRNOTAVAIL) ["/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/redis-4.8.1/lib/redis/client.rb:398:in `rescue in establish_connection'", "/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/redis-4.8.1/lib/redis/client.rb:379:in `establish_connection'", "/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/redis-4.8.1/lib/redis/client.rb:115:in `block in connect'", "/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/redis-4.8.1/lib/redis/client.rb:344:in `with_reconnect'", "/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/redis-4.8.1/lib/redis/client.rb:114:in `connect'", "/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/redis-4.8.1/lib/redis/client.rb:409:in `ensure_connected'", "/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/redis-4.8.1/lib/redis/client.rb:269:in `block in process'", "/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/redis-4.8.1/lib/redis/client.rb:356:in `logging'", "/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/redis-4.8.1/lib/redis/client.rb:268:in `process'", "/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/redis-4.8.1/lib/redis/client.rb:161:in `call'", "/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/rack-mini-profiler-3.0.0/lib/mini_profiler/profiling_methods.rb:85:in `block in profile_method'", "/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/redis-4.8.1/lib/redis.rb:270:in `block in send_command'", "/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/redis-4.8.1/lib/redis.rb:269:in `synchronize'", "/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/redis-4.8.1/lib/redis.rb:269:in `send_command'", "/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/redis-4.8.1/lib/redis/commands/scripting.rb:110:in `_eval'", "/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/redis-4.8.1/lib/redis/commands/scripting.rb:97:in `evalsha'", "/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/message_bus-4.3.2/lib/message_bus/backends/redis.rb:463:in `cached_eval'", "/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/message_bus-4.3.2/lib/message_bus/backends/redis.rb:150:in `publish'", "/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/message_bus-4.3.2/lib/message_bus.rb:391:in `publish'", "/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/message_bus-4.3.2/lib/message_bus.rb:751:in `block in new_subscriber_thread'", "/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/message_bus-4.3.2/lib/message_bus/timer_thread.rb:117:in `do_work'", "/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/message_bus-4.3.2/lib/message_bus/timer_thread.rb:95:in `block (2 levels) in queue'"]
Приостановка для завершения выполнения заданий...
heartbeat: ошибка подключения к Redis на localhost:6379 (Errno::EADDRNOTAVAIL)
Ошибка подключения к Redis на localhost:6379 (Errno::EADDRNOTAVAIL) подписка не удалась, повторное подключение через 1 секунду. Стек вызовов /var/www/discourse/vendor/bundle/ruby/3.2.0/gems/redis-4.8.1/lib/redis/client.rb:398:in `rescue in establish_connection'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/redis-4.8.1/lib/redis/client.rb:379:in `establish_connection'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/redis-4.8.1/lib/redis/client.rb:115:in `block in connect'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/redis-4.8.1/lib/redis/client.rb:344:in `with_reconnect'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/redis-4.8.1/lib/redis/client.rb:114:in `connect'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/redis-4.8.1/lib/redis/client.rb:409:in `ensure_connected'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/redis-4.8.1/lib/redis/client.rb:269:in `block in process'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/redis-4.8.1/lib/redis/client.rb:356:in `logging'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/redis-4.8.1/lib/redis/client.rb:268:in `process'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/redis-4.8.1/lib/redis/client.rb:161:in `call'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/rack-mini-profiler-3.0.0/lib/mini_profiler/profiling_methods.rb:85:in `block in profile_method'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/redis-4.8.1/lib/redis.rb:270:in `block in send_command'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/redis-4.8.1/lib/redis.rb:269:in `synchronize'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/redis-4.8.1/lib/redis.rb:269:in `send_command'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/redis-4.8.1/lib/redis/commands/strings.rb:191:in `get'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/message_bus-4.3.2/lib/message_bus/backends/redis.rb:401:in `process_global_backlog'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/message_bus-4.3.2/lib/message_bus/backends/redis.rb:286:in `block in global_subscribe'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/message_bus-4.3.2/lib/message_bus/backends/redis.rb:299:in `global_subscribe'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/message_bus-4.3.2/lib/message_bus.rb:768:in `global_subscribe_thread'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/message_bus-4.3.2/lib/message_bus.rb:739:in `block in new_subscriber_thread'
Исключение задания: ошибка подключения к Redis на localhost:6379 (Errno::EADDRNOTAVAIL)

Пока!
Предупреждение об устаревании: (siwe) параметр full_screen_login теперь принудительно включен. Параметр full_screen_login можно удалить из auth_provider. (удаление в Discourse 2.9.0)
В /var/www/discourse/lib/plugin/instance.rb:763:in `public_send`
Миграция в MakeChatMentionNotificationIdNullable (20230227172543)
Миграция в DropBadgeGrantedTitleColumn (20230228105851)
Миграция в AddExternalToSidebarUrls (20230303015952)
Тип настройки темы изменился, но преобразовать его невозможно.

 #<ThemeSettingsManager::Upload:0x00007f60ff714e38 @name=:background_image, @default="", @theme=#<Theme id: 31, name: "Search Banner", user_id: 2, created_at: "2021-08-03 16:38:09.042735000 +0000", updated_at: "2021-08-03 17:01:41.329058000 +0000", compiler_version: 0, user_selectable: false, hidden: false, color_scheme_id: nil, remote_theme_id: 29, component: true, enabled: true, auto_update: true>, @opts={:description=>"фоновое изображение для баннера", :textarea=>false, :json_schema=>nil, :refresh=>false}, @types={:integer=>0, :float=>1, :string=>2, :bool=>3, :list=>4, :enum=>5, :upload=>6}>
Предупреждение об устаревании: (siwe) параметр full_screen_login теперь принудительно включен. Параметр full_screen_login можно удалить из auth_provider. (удаление в Discourse 2.9.0)
В /var/www/discourse/lib/plugin/instance.rb:763:in `public_send`
Ошибка подключения к Redis на localhost:6379 (Errno::EADDRNOTAVAIL) подписка не удалась, повторное подключение через 1 секунду. Стек вызовов /var/www/discourse/vendor/bundle/ruby/3.2.0/gems/redis-4.8.1/lib/redis/client.rb:398:in `rescue in establish_connection'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/redis-4.8.1/lib/redis/client.rb:379:in `establish_connection'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/redis-4.8.1/lib/redis/client.rb:115:in `block in connect'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/redis-4.8.1/lib/redis/client.rb:344:in `with_reconnect'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/redis-4.8.1/lib/redis/client.rb:114:in `connect'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/redis-4.8.1/lib/redis/client.rb:409:in `ensure_connected'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/redis-4.8.1/lib/redis/client.rb:269:in `block in process'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/redis-4.8.1/lib/redis/client.rb:356:in `logging'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/redis-4.8.1/lib/redis/client.rb:268:in `process'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/redis-4.8.1/lib/redis/client.rb:175:in `block in call_loop'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/redis-4.8.1/lib/redis/client.rb:331:in `with_socket_timeout'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/redis-4.8.1/lib/redis/client.rb:174:in `call_loop'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/redis-4.8.1/lib/redis/subscribe.rb:44:in `subscription'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/redis-4.8.1/lib/redis/subscribe.rb:14:in `subscribe'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/redis-4.8.1/lib/redis.rb:288:in `_subscription'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/redis-4.8.1/lib/redis/commands/pubsub.rb:20:in `block in subscribe'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/redis-4.8.1/lib/redis.rb:265:in `block in synchronize'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/redis-4.8.1/lib/redis.rb:265:in `synchronize'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/redis-4.8.1/lib/redis.rb:265:in `synchronize'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/redis-4.8.1/lib/redis/commands/pubsub.rb:19:in `subscribe'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/message_bus-4.3.2/lib/message_bus/backends/redis.rb:302:in `global_subscribe'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/message_bus-4.3.2/lib/message_bus.rb:768:in `global_subscribe_thread'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/message_bus-4.3.2/lib/message_bus.rb:739:in `block in new_subscriber_thread'

Это данные с момента перед «фатальной» пересборкой и до нескольких попыток с удалёнными плагинами и т. д.

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

Поэтому это, вероятно, связано с последними коммитами одного из них.

Ошибка не попадает в лог, потому что происходит при запуске Rails:

root@test1-web-only:/var/www/discourse# rails c                                                                                                                                               
bundler: failed to load command: pry (/var/www/discourse/vendor/bundle/ruby/3.2.0/bin/pry)                                                                                                    
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/zeitwerk-2.6.7/lib/zeitwerk/loader/helpers.rb:135:in `const_get': uninitialized constant PluginInstance (NameError)                          
                                                                                                                                                                                              
    parent.const_get(cname, false)                                                                                                                                                            
          ^^^^^^^^^^                                                                                                                                                                          
Did you mean?  PluginStore                       

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

Не могли бы вы поделиться списком плагинов и коммитами для каждого из них?

Я выяснил, что это конфликт между Automation и другим плагином. Сборка проходит только с включённым Automation, но не работает при включении других плагинов. Я почти определил виновника…

На самом деле у нас была ошибка и в автоматизации, и в назначении, и мы только что исправили обе. Поэтому пересборка сейчас решит проблему.

cc @pfaffman

Кто-то другой только что сказал мне, что

Вот список плагинов (плюс один еще, который приватный)

          - git clone https://github.com/discourse/docker_manager.git
            #- git clone https://github.com/discourse/discourse-docs.git
            #- git clone https://github.com/discourse/discourse-solved.git
            #- git clone https://github.com/discourse/discourse-voting.git
            #- git clone https://github.com/discourse/discourse-reactions.git
            #- git clone https://github.com/discourse/discourse-canned-replies.git
            #- git clone https://github.com/jomaxro/discourse-plugin-site-setting-override.git
            #- git clone https://github.com/discourse/discourse-automation.git

Мне удалось получить

Ага. То есть, похоже, мой тест, который должен был подтвердить баг плагина, подтвердил исправление.

У меня тоже, ха-ха, как же вовремя! Спасибо, Фалько.

Я сейчас попробую пересобрать и восстановить удалённые плагины. На всякий случай, вот список остальных плагинов:

РЕДАКТИРОВАНИЕ: Работает с тремя ранее удалёнными плагинами, которые снова установлены. Спасибо команде!

discourse 12436d05 Актуально
docker_manager e90c8f55 Актуально
discourse-adplugin bfd4438b Актуально
discourse-calendar adca3f65 Актуально
discourse-category-lockdown 2cf5f064 Актуально
discourse-chat-integration 75cf4136 Актуально
discourse-chatbot eb9c50ae Актуально
discourse-data-explorer 389b8e15 Актуально
discourse-docs 63bb4629 Актуально
discourse-encrypt 0f3c612b Актуально
discourse-formatting-toolbar d99f3c6d Актуально
discourse-gamification a842e183 Актуально
discourse-patreon 778829aa Актуально
discourse-policy b86d520c Актуально
discourse-pushover-notifications 30711ac7 Актуально
discourse-siwe 752687c8 Актуально
discourse-solved 2c1c64af Актуально
discourse-staff-alias 10ae5329 Актуально
discourse-telegram-notifications d9886998 Актуально
discourse-whos-online aeee51e4 Актуально