Сбой обновления до версии 2.7.0.beta2

Возможно, у вас заканчивается оперативная память (RAM), и из-за этого механизм OOM Killer завершает работу случайных процессов, например sshd, что приводит к разрыву соединения и возникновению проблем.

Если OOM Killer активен, соответствующая информация должна быть в выводе dmesg, файле /var/log/messages или в логах journalctl.

Я сомневаюсь, что проблема в нехватке оперативной памяти; скорее всего, дело в том, что я упрямо использую консоль PuTTY вместо консоли DO.

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

Проблема может быть в оперативной памяти. У вас есть файл подкачки?

Вы пробовали изменить настройку keep alive, например так?

@pfaffman Я ничего не указывал — использовал все настройки по умолчанию для Droplet, полагаясь на то, что команда DigitalOcean обеспечит разумное поведение.

Сначала я попробую установить keep-alive, как предложил @omarfilip выше, затем займусь ситуацией с файлом подкачки, а после этого последую предложению @pfaffman использовать оригинальную консоль DO (если настройка keep-alive позволит мне продолжить использование консоли PuTTY, я буду использовать её, так как она гораздо удобнее аналога от DO).

Поскольку мне помогает так много отзывчивых людей, я хочу ещё раз изложить свои причины для объединения Ghost и Discourse: на мой взгляд, это идеальный инструмент для написания технической документации и обеспечения наилучшей поддержки в обсуждении этих материалов. Моя цель — рассмотреть вопросы идентификации и управления учётными записями (IAM) с использованием нескольких интересных провайдеров IAM в формате PaaS; эта тема недостаточно хорошо освещена (по крайней мере, на мой взгляд, основанный на многолетнем опыте использования подобных сервисов).

Чтобы «протестировать в бета-режиме» мой интегрированный инструмент Ghost/Discourse, я решил подробно описать весь процесс создания и тестирования этого инструмента. Таким образом, все, кто мне помогает, должны знать, что эта работа направлена на поддержку сообществ Discourse, Ghost и Digital Ocean.

Если вы использовали установку в один клик от Digital Ocean, а не официальную стандартную установку Discourse, то у вас, скорее всего, не настроен файл подкачки (swap). В результате при пересборке вы исчерпаете оперативную память, если её объем не превышает 2 ГБ.

Вы можете выполнить следующие команды:

cd /var/discourse
./discourse-setup

Это создаст файл подкачки, если это необходимо.

Если вы хотите получить помощь по установке в один клик от Digital Ocean и «полагаться на специалистов DO для обеспечения корректной работы», то вам следует рассчитывать на их поддержку.

Однако, раз я уже пишу, более простой способ убедиться, что проблема не в PuTTY (что могло бы сэкономить много времени на бесполезную настройку параметров PuTTY) — это попробовать консоль. Если вы еще не запускали discourse-setup, то я почти уверен, что проблема заключается в нехватке места в файле подкачки.

@pfaffman Я следовал официальной процедуре установки Discourse буквально, включая использование PuTTY, упомянутого в этом официальном документе по установке.

Возможно, вы сделали вывод, что я использовал однокликовую установку от Digital Ocean, и считаете, что мне следует полагаться на DO:

Если вы хотите получить помощь с однокликовой установкой от Digital Ocean и хотите «полагаться на сотрудников DO в обеспечении разумного поведения», то вам следует полагаться на них в плане поддержки.

Моя ссылка на однокликовую установку исходит из недавнего письма от Discourse:

Ура, доступна новая версия Discourse!

Ваша версия: 2.7.0.beta1
Новая версия: 2.7.0.beta2

Итак, текущая ситуация такова:

  • Я искренне ценю вашу помощь, Jay :revolving_hearts:, зная, что вы зарабатываете на жизнь, помогая людям с Discourse. Несмотря на то, что я не выгляжу потенциальным клиентом, вы потратили время, чтобы вытащить меня из сложной ситуации.
  • Мне удалось установить обновление до версии 2.7.0.beta2, и это оказалось проще простого, как только я узнал, что PuTTY ведёт себя некорректно независимо от применённых мною настроек keep-alive. Поэтому я переключился с аутентификации по SSH на пару «идентификатор пользователя / пароль», вошёл на хост droplet и успешно выполнил команду ./launcher rebuild app.

Большое спасибо всем, кто предоставил части решения.

Ой! Моя вина! Очень извиняюсь!

Значит, у вас всё-таки есть swap, и мои предположения были неверны. Жаль, потому что это должно было быть простое исправление. :wink:

Это облегчение после того, как я ложно вас обвинил!

И ужасно слышать, что PuTTY так плох. Не понимаю, как он продолжает оставаться рекомендуемым SSH-клиентом для Windows.

Кажется, сейчас есть какой-то клиент, который является частью той самой подсистемы Linux, но версия Windows, которую я регулярно использовал, — это Windows 98.

Рад, что вы всё решили!

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

Ого, правда? В последний раз, когда я (как мне казалось) смотрел, требовалась какая-то установка, которая выглядела сложной.

И оно может использовать обычный SSH-ключ, а не эту ерунду с pem-файлами?

Эта долгая история имеет счастливый конец и может быть охарактеризована как «буря в стакане воды». Я многому научился о Discourse и, как следствие, планирую остаться здесь надолго. Вот подробное описание счастливого конца:

  1. Моя проблема при обновлении с Beta1 до Beta2 проявилась в виде тайм-аута консоли PuTTY. Я интерпретировал это как колоссальный сбой в задаче обновления Discourse и потратил много времени на изучение «внутренностей» Discourse — кроличья нора, в которую я счастливо нырнул без необходимости.

  2. Решение моей проблемы чрезвычайно простое (как только вы знаете, куда «надавить») — просто 1, 2, 3, как показано ниже:


    (Тот факт, что я начал с слишком большого интервала «keep-alive», заставил меня поверить, что PuTTY на самом деле ужасное программное обеспечение, и я потратил много времени на переключение с доступа к droplet через SSH на аутентификацию по [id, паролю], необходимую для собственной консоли Digital Ocean (которая действительно плоха). Обратите внимание, что этот эксперимент полностью реабилитирует инструмент PuTTY.

  3. @Falco открыл нам «коллективные глаза», указав просто использовать встроенный OpenSSH в Windows 10 (спасибо Скотту Хэнселману).


Поскольку я уже обещал @codinghorror написать лучший в мире документ, представляющий Discourse миру, в знак благодарности за его (и его команды) помощь в том, чтобы я понял Discourse, @pfaffman позволил мне сделать предложение @Falco первой частью моего документа.

Рекомендую использовать tmux. Это позволит вам переподключиться к сеансу, в котором выполняется пересборка, даже если ваш клиент истечёт по времени.

@md-misko спасибо за совет:

Отличная особенность tmux в том, что он позволяет открывать несколько панелей одновременно, каждая со своим запущенным оболочкой, но используя одно и то же единственное SSH-соединение. Более того, вы также можете открывать несколько «окон» одновременно, что-то вроде вкладок с дополнительными панелями внутри них.

Привет @sunjam, похоже, проблему можно решить с помощью новой версии gem omniauth-vkontakte 1.7.0.

Я создал запрос на слияние (pull request) для сопровождающего плагина. В качестве временного решения вы можете изменить ссылку на GitHub в вашем файле app.yml на

- git clone https://github.com/rapekas/discourse-vk-auth

и пересобрать проект.