Добрый день.
Имеется контроллер 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.
Способ восстановления работоспособного состояния мы нашли такой:
- выключаем опрос контроллера со всех клиентов
- перезапускаем сервис wb-mqtt-mbgate
- запускаем опрос на ПО Интеллект и меняем настройки таймингов опроса (±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, и опрос нормально продолжился с первого клиента.
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
Добрый день. Удалось разобраться?

