Не запускается wb-mqtt-mbgate.service

Добрый день.
Имеется контроллер Wiren Board 8.4.4 (s/n AMW4W3GC), release wb-2410.
При работе сервиса wb-mqtt-mbgate возникает ошибка
wirenboard 8 log modbus gateway fails.txt (3,6 КБ)

Добрый день.
Актуальный релиз 2501, советую обновтить пакеты.

Добрый вечер!
Чем может быть обоснована данная проблема?

Приложенного лога совешенно недостаточно для анализа. И большого смысла не имеет - поскольку есть более новая версия. То есть смысла исследовать для ПО которое неактуально - нет.

После обновления контроллера до актуальной версии все равно возникает ошибка

22-04-2025 14:22:54.020 [init.scope ] wb-mqtt-mbgate.service: Failed with result 'signal'.
22-04-2025 14:22:54.018 [init.scope ] wb-mqtt-mbgate.service: Main process exited, code=killed, status=11/SEGV 
22-04-2025 14:22:54.015 [mosquitto] 1745320974: Client mqtt-mbgate-1745320973 closed its connection. 
22-04-2025 14:22:53.746 [mosquitto] 1745320973: New client connected from /var/run/mosquitto/mosquitto.sock:0 as mqtt-mbgate-1745320973 (p2, c0, k60).
22-04-2025 14:22:53.746 [wb-mqtt-mbgate] INFO: [mqtt] subscription succeeded (message id 11)
22-04-2025 14:22:53.746 [wb-mqtt-mbgate] INFO: [mqtt] subscription succeeded (message id 10)
22-04-2025 14:22:53.746 [wb-mqtt-mbgate] INFO: [mqtt] subscription succeeded (message id 9)
22-04-2025 14:22:53.746 [wb-mqtt-mbgate] INFO: [mqtt] subscription succeeded (message id 8)
22-04-2025 14:22:53.744 [mosquitto] 1745320973: New connection from /var/run/mosquitto/mosquitto.sock:0 on port 0.
22-04-2025 14:22:53.743 [wb-mqtt-mbgate] INFO: [mqtt] subscription succeeded (message id 7)
22-04-2025 14:22:53.743 [wb-mqtt-mbgate] INFO: [mqtt] subscription succeeded (message id 7)
22-04-2025 14:22:53.743 [wb-mqtt-mbgate] INFO: [mqtt] subscription succeeded (message id 6)
22-04-2025 14:22:53.743 [wb-mqtt-mbgate] INFO: [mqtt] subscription succeeded (message id 5)
22-04-2025 14:22:53.743 [wb-mqtt-mbgate] INFO: [mqtt] subscription succeeded (message id 4)
22-04-2025 14:22:53.743 [wb-mqtt-mbgate] INFO: [mqtt] subscription succeeded (message id 3)
22-04-2025 14:22:53.743 [wb-mqtt-mbgate] INFO: [mqtt] subscription succeeded (message id 2)
22-04-2025 14:22:53.743 [wb-mqtt-mbgate] INFO: [mqtt] subscription succeeded (message id 1)
22-04-2025 14:22:53.743 [wb-mqtt-mbgate] INFO: [mqtt] connection estabilished with code "0" <success>
22-04-2025 14:22:53.741 [wb-mqtt-mbgate] INFO: [mbgate] Start loops
22-04-2025 14:22:53.741 [wb-mqtt-mbgate] INFO: [modbus] Modbus listening
22-04-2025 14:22:53.741 [wb-mqtt-mbgate] INFO: [modbus] Modbus listening
22-04-2025 14:22:53.711 [init.scope ] Started Wiren Board MQTT to Modbus gateway.
22-04-2025 14:22:53.684 [init.scope ] Stopped Wiren Board MQTT to Modbus gateway.
22-04-2025 14:22:53.681 [init.scope ] wb-mqtt-mbgate.service: Scheduled restart job, restart counter is at 59.

root@wirenboard-AMW4W3GC:~# systemctl status wb-mqtt-mbgate
● wb-mqtt-mbgate.service - Wiren Board MQTT to Modbus gateway
     Loaded: loaded (/lib/systemd/system/wb-mqtt-mbgate.service; enabled; vendor preset: enabled)
     Active: activating (auto-restart) (Result: signal) since Tue 2025-04-22 11:25:21 UTC; 6s ago
    Process: 11950 ExecStart=/usr/bin/wb-mqtt-mbgate -c /etc/wb-mqtt-mbgate.conf (code=killed, signal=SEGV)
   Main PID: 11950 (code=killed, signal=SEGV)
        CPU: 36ms

Загрузите диагностический архив пожалуйста. Ну и проверьте, воспроизводится ли с дефолтным конфигом сервиса.
Также - какое покажите количество доступной памяти до и сразу после перезапуска сервиса.

Можете отправить дефолтный конфиг сервиса?

diag_output_AMW4W3GC_2025-04-22-11.50.32.zip (240,8 КБ)

Количество памяти до перезагрузки


Количество памяти после перезагрузки

Попробую воспроизвести с вашим конфигом тоже.

Контроллер работает под управлением ПО Интеллект (разработчик компания itv).
Период опроса в Интеллекте составляет 1000 мс, таймаут 300 мс. Периодически сервис wb-mqtt-mbgate переставал работать
Установил период опроса 800 мс, таймаут 500 мс. Последние 30 минут работает без ошибок

Добрый день!
Есть ли какая-нибудь информация по нашей проблеме?

Попробую воспроизвести.
У меня конфиг, кстати, вполне работает.

Перечитал - и мне показалось странным… То есть при уменьшении периода - работает?

В процессе работы поведение следующее:
Около суток (один клиент Modbus, считывается 11 адресов (5 input registers, 6 coil registers), период опроса 600 мсек) всё работает нормально, зачастую после подключения второго клиента modbus (не сразу) начинаются падения сервиса wb-mqtt-mbgate.service с ошибкой:

|---|---|
|30-04-2025 10:48:24.172 [init.scope]|wb-mqtt-mbgate.service: Main process exited, code=killed, status=11/SEGV|
|30-04-2025 10:48:24.171 [mosquitto]|1745999304: Client mqtt-mbgate-1745999303 closed its connection.|
|30-04-2025 10:48:23.792 [mosquitto]|1745999303: New client connected from /var/run/mosquitto/mosquitto.sock:0 as mqtt-mbgate-1745999303 (p2, c0, k60).|
|30-04-2025 10:48:23.789 [wb-mqtt-mbgate]|INFO: [mbgate] Start loops|

После чего wirenboard пытается перезапустить упавший сервис. Но обычно это заканчивается той же ошибкой. Попытки просто перезапустить контроллер или сам сервис
не приводят к улучшению ситуации. В последний раз сервис wb-mqtt-mbgate.service на попытке перезапуска сервиса номер 12474 сообщил “disconnected due to out of memory”

30-04-2025 10:48:44.575 [mosquitto]	1745999324: Client mqtt-mbgate-1745999324 disconnected due to out of memory.
30-04-2025 10:48:44.568 [init.scope]	wb-mqtt-mbgate.service: Failed with result 'signal'.
30-04-2025 10:48:44.568 [init.scope]	wb-mqtt-mbgate.service: Failed with result 'signal'.
30-04-2025 10:48:44.568 [init.scope]	wb-mqtt-mbgate.service: Main process exited, code=killed, status=11/SEGV
30-04-2025 10:48:44.525 [mosquitto]	1745999324: New client connected from /var/run/mosquitto/mosquitto.sock:0 as mqtt-mbgate-1745999324 (p2, c0, k60).
30-04-2025 10:48:44.522 [wb-mqtt-mbgate]	INFO: [mbgate] Start loops
30-04-2025 10:48:44.469 [init.scope]	wb-mqtt-mbgate.service: Scheduled restart job, restart counter is at 12474.

Способ восстановления работоспособного состояния мы нашли такой:

  1. выключаем опрос контроллера со всех клиентов
  2. перезапускаем сервис wb-mqtt-mbgate
  3. запускаем опрос на ПО Интеллект и меняем настройки таймингов опроса (±100 мсек), через 5 - 10 секунд опрос полностью восстанавливается.
    Далее всё повторяется. Самое долгое сервис wb-mqtt-mbgate смог проработать около 3х суток.

ПО обновлено до последней версии. Конфигурацию сбрасывали.

diag_output_AMW4W3GC_2025-04-30-08.39.39.zip (267,9 КБ)

АгА! Вот, этого-то мне и не хватало, скорее всего.
Я воспроизводил так: Именно опрашивался сервис одним клиентом. Сейчас попробую двумя.

Не он сообщил. Как раз брокер не смог создать подключение - из за недостатка памяти.
Точнее - сервис штатно запускается, и даже подключается к брокеру - но в процессе подписки на все перечисленные в конфигурации топики брокер сбрасывает подключение и сервис wb-mqtt-mbgate падает.
Соответственно его перезапуск приводит к тем же последствиям.
То есть - причина в брокере. Но косвенно, так как действительно может не хватать (быть занятой) память…

Если перезапустить сам брокер systemctl restart mosquitto?
Точнее - не так.
Для более полной диагностики при следующем состоянии когда не сможет запуститься wb-mqtt-mbgate сделайте, (не перезапуская контроллер!) следующее:

  • Создайте еще раз архив.
  • Покажите результат выполнения команды ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%mem
  • Перезапустите брокер.

Если после перезапуска брокера - шлюз wb-mqtt-mbgate запустится - уже будет понятно, куда смотреть. Возможно - подстроить лимиты самого брокера.

Мы поменяли контроллер (ЦПУ). И у нас изменилось поведение: да сразу после включения параллельного опроса по Modbus TCP, wb-mqtt-mbgate сразу падает, но теперь сразу после отключения второго клиента также сразу поднялся wb-mqtt-mbgate, и опрос нормально продолжился с первого клиента.

приложен диагностический архив, доступен только сотрудникам поддержки
(255,3 КБ)
ps-e_pid_output.txt (8,7 КБ)

root@wirenboard-ATGB3YMT:~# systemctl restart mosquitto
root@wirenboard-ATGB3YMT:~# systemctl status wb-mqtt-mbgate
● wb-mqtt-mbgate.service - Wiren Board MQTT to Modbus gateway
     Loaded: loaded (/lib/systemd/system/wb-mqtt-mbgate.service; enabled; vendor preset: enabled)
     Active: activating (auto-restart) (Result: signal) since Wed 2025-04-30 12:27:30 UTC; 1s ago
    Process: 104977 ExecStart=/usr/bin/wb-mqtt-mbgate -c /etc/wb-mqtt-mbgate.conf (code=killed, signal=SEGV)
   Main PID: 104977 (code=killed, signal=SEGV)
        CPU: 36ms
root@wirenboard-ATGB3YMT:~#

Нет не стартовал. Успешно рестартовал wb-mqtt-mbgate только после отключения второго клиента

Ну, не стоило менять контроллер. Уж диагностировали бы на прежнем. Ну - ладно. Тут я проблем не вижу именно с брокером и его работой - попробую воспроизвести у себя.

Да, проверьте пожалуйста на testing. Переключение: wb-release -t testing

Добрый день. Удалось разобраться?