Не работает Mosquitto после обновления

Здравствуйте, столкнулся с той же проблемой при обновлении.

Проблема оказалась в том что pid теперь видимо пытается создаться из под пользователя mosquitto, а у /run права 755 и принадлежит она root

При этом есть папка /var/run/mosquitto принадлежащая mosquitto

Изменил pid файл с /var/run/mosquitto.pid на /var/run/mosquitto/mosquitto.pid и файл успешно создался, mosquitto запустился

Здравствуйте. Перенёс в новую тему, чтобы не путаться.

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

Это всё поможет локализовать проблему и починить её.

Здравствуйте.
Контроллер AXRQOWKO, 7.3B/2GI/3

Обновлял точно не знаю с какой, та что была изначально, наверное 2207, точно на Stretch была

Сейчас последний stable 2304

Архив прикладываю

приложен диагностический архив, доступен только сотрудникам поддержки (313,5 КБ)

1 Like

Спасибо!

А как обновляли? Через веб-интерфейс или apt? И получается, что после перемещения файла .pid все заработало?

Да, обновлялся через apt

Упало со словами:

16:03:49 Restoring original system state
16:03:49 Generating /etc/apt/sources.list.d/wirenboard.list for SystemState(suite='stable', target='wb7/stretch', repo_prefix='', consistent=True)
16:03:49 Generating /etc/apt/preferences.d/20wb-release for SystemState(suite='stable', target='wb7/stretch', repo_prefix='', consistent=True)
16:03:49 Cleaning up apt cache (to make manual apt calls safe from now)
16:03:49
The subprocess ('systemctl', 'restart', 'mosquitto.service') has failed with status 1
16:03:49 Try running wb-release --update-debian-release again to continue transition

Запустил /usr/sbin/mosquitto -c /etc/mosquitto/mosquitto.conf

root@wirenboard2:~#  /usr/sbin/mosquitto -c /etc/mosquitto/mosquitto.conf
1688752546: Loading config file /etc/mosquitto/conf.d/00default_listener.conf
1688752546: Loading config file /etc/mosquitto/conf.d/10listeners.conf
1688752546: Loading config file /etc/mosquitto/conf.d/20bridges.conf
1688752546: Loading config file /etc/mosquitto/conf.d/30limits.conf
1688752546: Loading config file /etc/mosquitto/conf.d/bridge1.conf
1688752546: keepalive interval too low, using 5 seconds.
1688752546: Error: Unable to write pid file.

Поправил /etc/mosquitto/mosquitto.conf (изменил путь к pid файлу на /var/run/mosquitto/mosquitto.pid)

Запустил апдейт, там еще стандартно упало при перезапуске mosquitto с ошибкой out of memory.
Уже читал где-то у вас что это известная проблема, поставил в /etc/mosquitto/mosquitto.conf

persistence false

И удалил /var/lib/mosquitto.db

Дальше все прошло без проблем

А, и нашел в истории терминала какой был релиз

root@wirenboard2:/etc/apt/sources.list.d# wb-release
Wirenboard release wb-2207-bullseye-transition (as stable), target wb7/stretch
1 Like

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

Тему пока не закрываю.

1 Like

Благодарю, это просто отличная диагностика и разбор!
Итак, как я вижу причину. Предположительно, не отработал postinst скрипт из пакета mosquitto.
Что интерсно он спрашивает что делать с файлом конфига. и по умолчанию - “затереть существующий вариантом от мейнтейнера”. А лог обновления, который выше - не сохранился?
А как раз он и меняет расположение pid в конфиге, потому как у нас в нашем пакете сответствующий конфиг не редактируется, мы настраиваем исключительно инклюды в conf.d: https://github.com/wirenboard/wb-configs/tree/master/configs/etc/mosquitto

Спасибо :slightly_smiling_face:

Не с самого начала но в что-то в терминале осталось.
И как раз вроде нашел место где он может и должен был спросить но не спросил и оставил существующий конфиг :slight_smile:


5:44:03 Setting up mosquitto (2.0.11-1) ...
15:44:03 Installing new version of config file /etc/logrotate.d/mosquitto ...
15:44:03
15:44:03 Configuration file '/etc/mosquitto/mosquitto.conf'
15:44:03  ==> Modified (by you or by a script) since installation.
15:44:03  ==> Package distributor has shipped an updated version.
15:44:03  ==> Keeping old config file as default.
15:44:12 Failed to restart mosquitto.service: Unit mosquitto.service is masked.
15:44:12 (Reading database ... 30129 files and directories currently installed.)
15:44:12 Preparing to unpack .../watchdog_5.16-1_armhf.deb ...
15:44:12 Unpacking watchdog (5.16-1) over (5.15-1) ...
15:44:12 Setting up watchdog (5.16-1) ...

Первая попытка в wirenboard_upgrade_log, там места не хватило, почистил логи и сделал apt autoremove

И вторая wirenboard_upgrade2_log когда упало на mosquitto

wirenboard_upgrade_log (149,7 КБ)
wirenboard_upgrade2_log (36,5 КБ)

Ага… Странное вот это поведение, будем лечить.

1 Like

Пока воспроизводим, если файл в 2207 релизе не редактировать никак - то он заменяется без вопросов и при этом ничего не выводит в лог.

Я вполне его мог менять, как раз единственное что делал на этом контроллере это игрался с mosquitto и телеграфом.

Воспроизвели. Ошибка возникает только, если в релизе wb-2207 изменить файл /etc/mosquitto/mosquitto.conf, а потом обновиться.

Оформили багрепорт. Тему пока отмечу решённой, как починим, напишу сюда.

Спасибо за хорошее описание проблемы!

Отлично! Был рад помочь. Спасибо вам за отличный продукт и вашу работу!

2 Likes

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