Не удалось установить новые плагины: требуется очистка структуры

Привет! Когда я добавляю плагин реакций или плагин перевода в containers/app.yml и пытаюсь пересобрать приложение, получаю следующий вывод. Странно, но в сообщении об ошибке также присутствует фраза на нидерландском языке.

Проверка актуальности лаунчера
Получение origin
предупреждение: не удалось получить доступ к '.git/info/grafts': Structure moet worden opgeschoond
предупреждение: не удалось получить доступ к '.git/info/grafts': Structure moet worden opgeschoond
предупреждение: не удалось получить доступ к '.git/info/grafts': Structure moet worden opgeschoond
Обновление лаунчера...
предупреждение: не удалось получить доступ к '.git/info/grafts': Structure moet worden opgeschoond
предупреждение: не удалось получить доступ к '.git/info/grafts': Structure moet worden opgeschoond
предупреждение: не удалось получить доступ к '.git/info/grafts': Structure moet worden opgeschoond
Обновление 333b879..f982cc4
предупреждение: не удалось получить доступ к '.git/info/attributes': Structure moet worden opgeschoond
предупреждение: не удалось получить доступ к '.git/info/exclude': Structure moet worden opgeschoond
ошибка: ваши локальные изменения в следующих файлах будут перезаписаны при слиянии:
        image/base/Dockerfile
        image/base/install-gifsicle
        image/base/install-imagemagick
        image/base/install-nginx
        image/base/install-pngcrush
        image/base/install-pngquant
        image/base/install-redis
Пожалуйста, подтвердите изменения или сохраните их в stash перед слиянием.
Прерывание
обновление не удалось
Лаунчер обновлён, перезапуск...

Это повторяется бесконечно, пока я не нажму CTRL+C.

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

Есть ли ещё какая-либо информация, которую я могу предоставить? Существует ли процедура очистки, которую я мог бы попробовать, а затем снова попытаться установить плагины?

Вы добавили две строки для клонирования этих плагинов и выполнили

 ./launcher rebuild app

?

Привет! Я следовал этой процедуре.

В части плагина файла containers/app.yml:

## Плагины размещаются здесь
## подробности см. по ссылке https://meta.discourse.org/t/19157
hooks:
  after_code:
- exec:
    cd: $home/plugins
    cmd:
      - git clone https://github.com/discourse/docker_manager.git
      - git clone https://github.com/paviliondev/discourse-locations.git
      - git clone https://github.com/discourse/discourse-sitemap.git
#          - git clone https://github.com/discourse/discourse-reactions.git
      - git clone https://github.com/discourse/discourse-translator.git

Только что попробовал снова — тот же цикл вывода повторяется снова и снова.

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

Извините. Ничего бросилось в глаза. Возможно, вам нужно добавить два пробела перед - exec (или, возможно, текст вставился некорректно?). Это не та ошибка, которую я узнаю или которая, как я ожидал, вызвала бы такую проблему. . .. Да. Возможно, вам нужно добавить 4 пробела перед - exec и ещё 2 пробела перед остальным содержимым. Вы можете (или переименовать) свой файл app.yml, снова запустить discourse-setup, а затем аккуратно скопировать и вставить строку discourse_docker и отредактировать её для дополнительных плагинов.

Если вы хотите решить эту проблему, пожертвовав деньги, посмотрите Redirecting… или Redirecting…, и я смогу помочь.

Попробовал вашу рекомендацию, и, кажется, при запуске discourse-setup я получил следующее:

WARNING: Discourse requires at least 2GB of swap when running with 2GB of RAM
or less. This system does not appear to have sufficient swap space.

Without sufficient swap space, your site may not work properly, and future
upgrades of Discourse may not complete successfully.

Ctrl+C to exit or wait 5 seconds to have a 2GB swapfile created.
install: kan geen toegang krijgen tot '/swapfile': Structure moet worden opgeschoond
fallocate: cannot open /swapfile: Structure moet worden opgeschoond
mkswap: cannot open /swapfile: Structure moet worden opgeschoond
swapon: cannot open /swapfile: Structure moet worden opgeschoond
/swapfile       swap    swap    auto      0       0
vm.swappiness = 10
Failed to create swap: are you root? Are you running on real hardware, or a fully virtualized server?

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

Нужно добавить своп или есть какая-то очистка, которую можно выполнить?

Выполнил ./launcher cleanup. Не помогло.

Меня интересует эта строка ошибки на нидерландском:

Structure moet worden opgeschoond

Это происходит при запуске discourse-setup и при попытке выполнить swap. Ошибка возникает при попытке доступа к .git/info/grafts.

Значит, вы удалили/переименовали файл app.yml, снова запустили настройку Discourse, но ошибка всё ещё появляется? Это странно.

Я бы не ожидал, что ./launcher cleanup поможет. Эта команда лишь (пытается) очистить файлы Docker (в основном).

Failed to create swap: are you root? Are you running on real hardware, or a fully virtualized server?

Привет. У меня вопрос: вы работаете от имени root? Вы находитесь на полностью виртуализированном сервере?

Вы устанавливали систему очень давно?

Но в данном случае у меня в основном закончились идеи.

OK, должно быть что-то с файловой системой. Посмотрите на это: я даже не могу перейти в директорию ‘info’:

root@skrzat:/var/discourse/.git# ls -al
ls: невозможно получить доступ к 'info': Структура должна быть очищена
всего 32
drwxr-xr-x   8 root root  198 мар 26 21:54 .
drwxr-xr-x  11 root root  246 янв  7 22:18 ..
drwxr-xr-x   2 root root    6 ноя 13 11:43 branches
-rw-r--r--   1 root root  274 ноя 13 11:43 config
-rw-r--r--   1 root root   73 ноя 13 11:43 description
-rw-r--r--   1 root root    0 мар 26 21:53 FETCH_HEAD
-rw-r--r--   1 root root   23 ноя 13 11:43 HEAD
drwxr-xr-x   2 root root  301 ноя 13 11:43 hooks
-rw-r--r--   1 root root 7395 янв  7 22:18 index
d?????????   ? ?    ?       ?            ? info
drwxr-xr-x   3 root root   30 ноя 13 11:43 logs
drwxr-xr-x 155 root root 4096 мар 24 15:13 objects
-rw-r--r--   1 root root   41 мар 26 21:52 ORIG_HEAD
-rw-r--r--   1 root root 1572 ноя 13 11:43 packed-refs

drwxr-xr-x 5 root root 46 ноя 13 11:43 refs

самая странная вещь — все эти вопросительные знаки.

Я проведу собственное исследование, вероятно, это вообще не связано с Discourse.

Всем привет, просто отчитываюсь о том, как я решил эту проблему.

Действительно, файловая система XFS была сильно повреждена. Для её восстановления потребовалась установка XFSprogs, но я не мог этого сделать, так как использование apt-get приводило к тем же ошибкам.

Я понял, что установка плагинов и пересборка приложения — это задача, требующая много памяти. Однако у меня небольшой форум с аппаратным обеспечением: 2 ГБ оперативной памяти и 15 ГБ дискового пространства. Служба подкачки (swap) не была включена, и я предполагаю, что столкнулся с нехваткой памяти, потому что несколько раз перезагружал систему во время установки плагинов. Это, вероятно, негативно сказалось на файловой системе, и XFS установила защитные механизмы, в том числе для папки GIT.

Поэтому я восстановил резервную копию (к счастью, она была на S3, так что проблем не возникло), сделал копию файла app.yml, перезапустил VPS и настроил подкачку по этому руководству (для Debian VPS). Менее чем за час всё снова заработало. Немного вспотел :sweat_smile:

И плагин реакций, ради которого всё затевалось, работает отлично!