Отвалился MQTT во время очередного обновления

Wirenboard 7.4 проработал несколько месяцев, во время очередного обновления отвалился MQTT: перестал работать веб-интерфейс и облачный сервис Wirenboard. Остался доступ через tailscale.
Не удалось подключиться к ws://100.119.122.94/mqtt
Если не останавливать MQTT брокер, то контроллер перезагружается.

Welcome to Wiren Board 7.4.3 (s/n A5BDCBII), release wb-2407 (as stable)
Linux wirenboard-A5BDCBII 5.10.35-wb169 #1 SMP Wed Aug 7 14:39:59 UTC 2024 armv7l GNU/Linux

System load:   3.27 1.06 0.37   Up time:       1 min
Memory usage:  13% of 997M      Usage of /:    39% of 2.0G      /mnt/data:     23% of 4.9G

Last login: Tue Sep  3 05:44:22 2024 from 100.113.178.27
root@wirenboard-A5BDCBII:~# systemctl stop mosquitto
root@wirenboard-A5BDCBII:~# systemctl status mosquitto
● mosquitto.service - Mosquitto MQTT Broker
     Loaded: loaded (/lib/systemd/system/mosquitto.service; enabled; vendor preset: enabled)
    Drop-In: /etc/systemd/system/mosquitto.service.d
             └─override.conf
     Active: activating (start) since Tue 2024-09-03 05:56:08 UTC; 3s ago
       Docs: man:mosquitto.conf(5)
             man:mosquitto(8)
    Process: 19898 ExecStartPre=/bin/mkdir -m 740 -p /var/log/mosquitto (code=exited, status=0/SUCCESS)
    Process: 19902 ExecStartPre=/bin/chown mosquitto /var/log/mosquitto (code=exited, status=0/SUCCESS)
    Process: 19904 ExecStartPre=/bin/mkdir -m 740 -p /run/mosquitto (code=exited, status=0/SUCCESS)
    Process: 19906 ExecStartPre=/bin/chown mosquitto /run/mosquitto (code=exited, status=0/SUCCESS)
    Process: 19908 ExecStartPre=/bin/chown mosquitto:mosquitto /run/mosquitto (code=exited, status=0/SUCCESS)
    Process: 19911 ExecStartPre=/bin/chmod g+x /run/mosquitto (code=exited, status=0/SUCCESS)
   Main PID: 19913 (mosquitto)
      Tasks: 1 (limit: 2354)
     Memory: 102.6M
        CPU: 3.441s
     CGroup: /system.slice/mosquitto.service
             └─19913 /usr/sbin/mosquitto -c /etc/mosquitto/mosquitto.conf

Sep 03 05:56:08 wirenboard-A5BDCBII systemd[1]: Starting Mosquitto MQTT Broker...
Sep 03 05:56:08 wirenboard-A5BDCBII mosquitto[19913]: 1725342968: Loading config file /usr/share/wb-configs/mosquitto/30limits.conf
Sep 03 05:56:08 wirenboard-A5BDCBII mosquitto[19913]: 1725342968: Loading config file /etc/mosquitto/conf.d/00default_listener.conf
Sep 03 05:56:08 wirenboard-A5BDCBII mosquitto[19913]: 1725342968: Loading config file /etc/mosquitto/conf.d/10listeners.conf
Sep 03 05:56:08 wirenboard-A5BDCBII mosquitto[19913]: 1725342968: Loading config file /etc/mosquitto/conf.d/20bridges.conf
Sep 03 05:56:12 wirenboard-A5BDCBII mosquitto[19913]: 1725342968: Error: Out of memory.
Sep 03 05:56:12 wirenboard-A5BDCBII mosquitto[19913]: 1725342968: Error: Couldn't open database.
Sep 03 05:56:12 wirenboard-A5BDCBII systemd[1]: mosquitto.service: Main process exited, code=exited, status=1/FAILURE
Sep 03 05:56:12 wirenboard-A5BDCBII systemd[1]: mosquitto.service: Failed with result 'exit-code'.
Sep 03 05:56:12 wirenboard-A5BDCBII systemd[1]: Failed to start Mosquitto MQTT Broker.
Sep 03 05:56:12 wirenboard-A5BDCBII systemd[1]: mosquitto.service: Consumed 3.853s CPU time.
Sep 03 05:56:12 wirenboard-A5BDCBII systemd[1]: mosquitto.service: Scheduled restart job, restart counter is at 19.
Sep 03 05:56:12 wirenboard-A5BDCBII systemd[1]: Stopped Mosquitto MQTT Broker.
Sep 03 05:56:12 wirenboard-A5BDCBII systemd[1]: mosquitto.service: Consumed 3.853s CPU time.
Sep 03 05:56:12 wirenboard-A5BDCBII systemd[1]: Starting Mosquitto MQTT Broker...
root@wirenboard-A5BDCBII:~#
root@wirenboard-A5BDCBII:~# systemctl restart mosquitto
Job for mosquitto.service failed because the control process exited with error code.
See "systemctl status mosquitto.service" and "journalctl -xe" for details.
root@wirenboard-A5BDCBII:~# systemctl status mosquitto
● mosquitto.service - Mosquitto MQTT Broker
     Loaded: loaded (/lib/systemd/system/mosquitto.service; enabled; vendor preset: enabled)
    Drop-In: /etc/systemd/system/mosquitto.service.d
             └─override.conf
     Active: activating (start) since Tue 2024-09-03 06:05:22 UTC; 676ms ago
       Docs: man:mosquitto.conf(5)
             man:mosquitto(8)
    Process: 18286 ExecStartPre=/bin/mkdir -m 740 -p /var/log/mosquitto (code=exited, status=0/SUCCESS)
    Process: 18287 ExecStartPre=/bin/chown mosquitto /var/log/mosquitto (code=exited, status=0/SUCCESS)
    Process: 18291 ExecStartPre=/bin/mkdir -m 740 -p /run/mosquitto (code=exited, status=0/SUCCESS)
    Process: 18295 ExecStartPre=/bin/chown mosquitto /run/mosquitto (code=exited, status=0/SUCCESS)
    Process: 18297 ExecStartPre=/bin/chown mosquitto:mosquitto /run/mosquitto (code=exited, status=0/SUCCESS)
    Process: 18300 ExecStartPre=/bin/chmod g+x /run/mosquitto (code=exited, status=0/SUCCESS)
   Main PID: 18301 (mosquitto)
      Tasks: 1 (limit: 2354)
     Memory: 5.1M
        CPU: 288ms
     CGroup: /system.slice/mosquitto.service
             └─18301 /usr/sbin/mosquitto -c /etc/mosquitto/mosquitto.conf

Sep 03 06:05:22 wirenboard-A5BDCBII systemd[1]: Starting Mosquitto MQTT Broker...
Sep 03 06:05:22 wirenboard-A5BDCBII mosquitto[18301]: 1725343522: Loading config file /usr/share/wb-configs/mosquitto/30limits.conf
Sep 03 06:05:22 wirenboard-A5BDCBII mosquitto[18301]: 1725343522: Loading config file /etc/mosquitto/conf.d/00default_listener.conf
Sep 03 06:05:22 wirenboard-A5BDCBII mosquitto[18301]: 1725343522: Loading config file /etc/mosquitto/conf.d/10listeners.conf
Sep 03 06:05:22 wirenboard-A5BDCBII mosquitto[18301]: 1725343522: Loading config file /etc/mosquitto/conf.d/20bridges.conf
root@wirenboard-A5BDCBII:

Здравствуйте. Мы вам поможем, но перед этим надо чуть больше информации.

Пришлите, пожалуйста:

  1. Вывод команды du -h /var/lib/mosquitto/mosquitto.db
  2. Сам файл /var/lib/mosquitto/mosquitto.db.
  3. Диагностический архив, можно выгрузить в консоли командой wb-diag-collect diag, архив будет лежать в текущей папке, по умолчанию в /root
  4. Полный лог mqtt-брокера, выгрузить можно командой journalctl -u mosquitto -e >> mosquitto.txt , файл будет сохранён в текущую папку, по умолчанию в /root.
  5. Конфиг моста mqtt-брокера, если настраивали. Затрите в нём информацию о логине/пароле, если она есть.

Как забрать файлы с контроллера Просмотр файлов контроллера с компьютера.

root@wirenboard-A5BDCBII:~# du -h /var/lib/mosquitto/mosquitto.db
65M /var/lib/mosquitto/mosquitto.db

Конфиг моста mqtt-брокера

# This file should be used to define Mosquitto bridges.
# See 21bridge.conf.example file for an example of how to do it.
address ***:1883
remote_username ***
remote_password ***
clientid wirenboard
try_private false
start_type automatic
topic /devices/# out 0 "" /wirenboard/A5BDCBII

diag_A5BDCBII_2024-09-03-06.40.18.zip (677,9 КБ)
mosquitto.txt (102,3 КБ)

@DEMON Спасибо. Ещё файл /var/lib/mosquitto/mosquitto.db остался.

@DEMON Супер, спасибо большое! Этого нам хватит для диагностики.

Чтобы нас не ждать, пока можете купировать проблему:

  1. Остановите брокер командой systemctl stop mosquitto
  2. Удалите базу данных rm /var/lib/mosquitto/mosquitto.db. В ней хранятся неотправленные в мост сообщения, которые всё равно уже потеряли актуальность.
  3. Установите в файле /etc/mosquitto/mosquitto.conf persistence false. Это отключит сохранение сообщений в БД при обрыве связи, но они останутся в памяти контроллера.
  4. Перезагрузите контроллер.

Поставил в разработку тикет, возьмем в работу. По результатам отпишусь.

1 Like

Спасибо, ожил!

1 Like

Добрый день!

Вашу проблему устранили. Обновитесь, и всё должно работать корректно.