Обновление Discourse продолжает не удаваться

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

Вот сообщение об ошибке:

Место сбоя: /usr/local/lib/ruby/gems/2.7.0/gems/pups-1.1.1/lib/pups/exec_command.rb:117:in `spawn'
Выполнение команды не удалось с параметрами {"cd"=>"$home", "hook"=>"db_migrate", "cmd"=>["su discourse -c 'bundle exec rake db:migrate'"]}
Загрузка не удалась с кодом выхода 134

Ниже этого сообщения об ошибке находится текст ** FAILED TO BOOTSTRAP ** please scroll up and look for earlier error messages, there may be more than one.

Так что… прокрутите страницу вверх и поищите более ранние сообщения об ошибках.

Извините, вставил не тот:

 не удалось получить данные от клиента: Соединение сброшено удаленным узлом
Прервано (core dumped)
I, [2022-07-04T09:24:39.336838 #1]  INFO -- : 
I, [2022-07-04T09:24:39.337289 #1]  INFO -- : Завершение асинхронных процессов
I, [2022-07-04T09:24:39.337528 #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
2022-07-04 09:24:39.337 UTC [42] LOG:  получен запрос быстрого завершения работы
I, [2022-07-04T09:24:39.337594 #1]  INFO -- : Отправка сигнала TERM для exec chpst -u redis -U redis /usr/bin/redis-server /etc/redis/redis.conf pid: 103
103:signal-handler (1656926679) Получен сигнал SIGTERM, планирование завершения работы...
103:M 04 Jul 2022 09:24:39.373 # Пользователь запросил завершение работы...
103:M 04 Jul 2022 09:24:39.373 * Сохранение финального снимка RDB перед выходом.
2022-07-04 09:24:39.441 UTC [42] LOG:  прерывание всех активных транзакций
2022-07-04 09:24:39.447 UTC [42] LOG:  фоновый рабочий "запуск логической репликации" (PID 51) завершился с кодом выхода 1
2022-07-04 09:24:39.448 UTC [46] LOG:  завершение работы
2022-07-04 09:24:39.925 UTC [42] LOG:  система базы данных завершена

Не могли бы вы также вставить несколько строк выше?

Надеюсь, этого достаточно, но дайте знать, если нужно больше:

7f7ec07f9000-7f7ec07fd000 rw-p 00000000 00:00 0 
7f7ec07fe000-7f7ec07ff000 r--p 00000000 00:38 43787088                   /usr/local/lib/ruby/2.7.0/x86_64-linux/enc/encdb.so
7f7ec07ff000-7f7ec0800000 r-xp 00001000 00:38 43787088                   /usr/local/lib/ruby/2.7.0/x86_64-linux/enc/encdb.so
7f7ec0800000-7f7ec0801000 r--p 00002000 00:38 43787088                   /usr/local/lib/ruby/2.7.0/x86_64-linux/enc/encdb.so
7f7ec0801000-7f7ec0802000 r--p 00002000 00:38 43787088                   /usr/local/lib/ruby/2.7.0/x86_64-linux/enc/encdb.so
7f7ec0802000-7f7ec0803000 rw-p 00003000 00:38 43787088                   /usr/local/lib/ruby/2.7.0/x86_64-linux/enc/encdb.so
7f7ec0803000-7f7ec0830000 r--p 00000000 00:38 43659503                   /usr/local/lib/libruby.so.2.7.6
7f7ec0830000-7f7ec0a43000 r-xp 0002d000 00:38 43659503                   /usr/local/lib/libruby.so.2.7.6
7f7ec0a43000-7f7ec0b3b000 r--p 00240000 00:38 43659503                   /usr/local/lib/libruby.so.2.7.6
7f7ec0b3b000-7f7ec0b3c000 ---p 00338000 00:38 43659503                   /usr/local/lib/libruby.so.2.7.6
7f7ec0b3c000-7f7ec0b42000 r--p 00338000 00:38 43659503                   /usr/local/lib/libruby.so.2.7.6
7f7ec0b42000-7f7ec0b45000 rw-p 0033e000 00:38 43659503                   /usr/local/lib/libruby.so.2.7.6
7f7ec0b45000-7f7ec0b62000 rw-p 00000000 00:00 0 
7f7ec0b62000-7f7ec0b63000 r--p 00000000 00:38 39719923                   /lib/x86_64-linux-gnu/ld-2.31.so
7f7ec0b63000-7f7ec0b83000 r-xp 00001000 00:38 39719923                   /lib/x86_64-linux-gnu/ld-2.31.so
7f7ec0b83000-7f7ec0b8b000 r--p 00021000 00:38 39719923                   /lib/x86_64-linux-gnu/ld-2.31.so
7f7ec0b8b000-7f7ec0b8c000 r-xp 00000000 00:00 0 
7f7ec0b8c000-7f7ec0b8d000 r--p 00029000 00:38 39719923                   /lib/x86_64-linux-gnu/ld-2.31.so
7f7ec0b8d000-7f7ec0b8e000 rw-p 0002a000 00:38 39719923                   /lib/x86_64-linux-gnu/ld-2.31.so
7f7ec0b8e000-7f7ec0b8f000 rw-p 00000000 00:00 0 
7ffdf35f7000-7ffdf3df6000 rw-p 00000000 00:00 0                          [stack]
7ffdf3dfb000-7ffdf3dfe000 r--p 00000000 00:00 0                          [vvar]
7ffdf3dfe000-7ffdf3dff000 r-xp 00000000 00:00 0                          [vdso]
ffffffffff600000-ffffffffff601000 --xp 00000000 00:00 0                  [vsyscall]


2022-07-04 09:24:39.333 UTC [892] discourse@discourse LOG:  не удалось получить данные от клиента: соединение сброшено удаленным узлом
Прервано (core dumped)
I, [2022-07-04T09:24:39.336838 #1]  INFO -- : 
I, [2022-07-04T09:24:39.337289 #1]  INFO -- : Завершение асинхронных процессов
I, [2022-07-04T09:24:39.337528 #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
2022-07-04 09:24:39.337 UTC [42] LOG:  получен запрос быстрого завершения
I, [2022-07-04T09:24:39.337594 #1]  INFO -- : Отправка TERM для exec chpst -u redis -U redis /usr/bin/redis-server /etc/redis/redis.conf pid: 103
103:signal-handler (1656926679) Получен SIGTERM, планирование завершения...
103:M 04 Jul 2022 09:24:39.373 # Пользователь запросил завершение...
103:M 04 Jul 2022 09:24:39.373 * Сохранение финального снапшота RDB перед выходом.
2022-07-04 09:24:39.441 UTC [42] LOG:  отмена активных транзакций
2022-07-04 09:24:39.447 UTC [42] LOG:  фоновый рабочий "запуск логической репликации" (PID 51) завершился с кодом выхода 1
2022-07-04 09:24:39.448 UTC [46] LOG:  завершение работы
2022-07-04 09:24:39.925 UTC [42] LOG:  система баз данных завершена
103:M 04 Jul 2022 09:24:40.378 * БД сохранена на диск
103:M 04 Jul 2022 09:24:40.378 # Redis готов к выходу, по

Ой.

Расскажите подробнее об этой установке. Это стандартная установка? На каком оборудовании вы пытаетесь это сделать?

Сначала я попытался обновить форум через менеджер Docker в рамках сегодняшнего обновления (было одиннадцать обновлений). Я уже обновился до версии 2.9.0 beta6 в прошлую пятницу, и форум работает без сбоев уже три года на том же сервере:

Он работает на выделенном сервере со следующими характеристиками:

  • AMD Opteron 4180
  • 6 ядер по 2,6 ГГц
  • 16 ГБ ОЗУ
  • 2 × 1 ТБ SSD
    (Ubuntu 20.04 LTS)

РЕДАКТИРОВАНИЕ: На сервере достаточно свободного места.

Извините, я в тупике, надеюсь, у кого-то есть идея.

В любом случае спасибо за ваши усилия.

Если это поможет, я также нашел следующее предупреждение:

I, [2022-07-04T11:08:15.901173 #1]  INFO -- : > cd /var/www/discourse && [ ! -d 'node_modules' ] || su discourse -c 'yarn install --production && yarn cache clean'
warning "eslint-config-discourse > eslint-plugin-lodash@7.1.0" has unmet peer dependency "lodash@>=4".
warning " > @mixer/parallel-prettier@2.0.1" has unmet peer dependency "prettier@^2.0.0".

Вы перезагружали компьютер недавно? Возможно, вы установили обновления, требующие перезагрузки? Я бы обновил ОС и перезагрузился. (Потому что у меня нет других идей)

Да, я перезагрузил систему в пятницу из-за обновления ядра, а также попробовал сделать это ранее сегодня, чтобы проверить, решит ли это проблему.

Возможно, это не подсказка, но я видел точно такую же ошибку при установке плагина. Теперь я не уверен, является ли этот плагин первопричиной.

https://meta.discourse.org/t/web-3-0-features/203321/21?u=marcp

Что ж, я удалил все неофициальные плагины, но продолжу расследование в этом направлении.

Нет, у вас другая ошибка. Прокрутите вверх, чтобы найти исходную ошибку.

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

Гораздо полезнее будет вставить полный лог, а не его фрагменты.

Например, неясно, что именно завершается с ошибкой: это может быть база данных или задача Rake.

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

Я создаю это прямо сейчас.

Ключевая часть вывода, по-видимому, заключается в следующем: «Illegal instruction»:

I, [2022-07-04T21:01:40.452409 #1]  INFO -- : > cd /var/www/discourse && su discourse -c 'bundle exec rake db:migrate'                                                                      
2022-07-04 21:01:46.756 UTC [932] discourse@discourse LOG:  duration: 120.094 ms  bind <unnamed>: SELECT t.oid, t.typname                                                                   
        FROM pg_type as t                                                                                                                                                                   
        WHERE t.typname IN ('int2', 'int4', 'int8', 'oid', 'float4', 'float8', 'numeric', 'bool', 'timestamp', 'timestamptz')                                                               
                                                                                                                                                                                            
2022-07-04 21:01:47.069 UTC [932] discourse@discourse LOG:  duration: 100.781 ms  statement: SELECT name, data_type, value FROM site_settings                                               
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/message_bus-4.2.0/lib/message_bus/codec/json.rb:11: [BUG] Illegal instruction at 0x00007f90039e1339                                        
ruby 2.7.6p219 (2022-04-12 revision c9c2245c0a) [x86_64-linux]

Та же ошибка «Illegal instruction» также присутствует в конце лога Unicorn (непосредственно перед тем, как всё сломалось).

(Надеюсь, Брайан предоставит полный вывод при необходимости).

Редактирование: Полный лог следует, Discourse не позволяет мне загрузить его.

Редактирование 2: Bitwarden Send (доступно в течение 7 дней).