Bullseye: wb-mqtt-db не стартует - 2

В продолжение темы Bullseye: wb-mqtt-db не стартует:

Проблема не исчезла: после перезагрузки, после рестарта сервиса wb-mqtt-db он иногда стартует, иногда нет. Удаление базы, рестарт сервисов wb-rules и wb-mqtt-serial не всегда помогает, системы выявить никак не могу.

Сегодня после изменения конфига после рестарта сервис так и не поднялся. В логах останавливается на “INFO: [mqtt] subscription succeeded (message id 10)” и висит.

В этот раз прилагаю базу, посмотрите пожалуйста:

Положил на облако, к сообщению не прикрепляется

Дополнение: через час после остановки сервиса он успешно стартанул:

root@wirenboard-ANKMIELJ:~# service wb-mqtt-db start
root@wirenboard-ANKMIELJ:~# service wb-mqtt-db status
● wb-mqtt-db.service - Wiren Board database logger
     Loaded: loaded (/lib/systemd/system/wb-mqtt-db.service; enabled; vendor preset: enabled)
     Active: active (running) since Thu 2023-02-16 10:59:36 MSK; 4min 51s ago
   Main PID: 23216 (main)
      Tasks: 7 (limit: 4790)
     Memory: 7.7M
        CPU: 19.403s
     CGroup: /system.slice/wb-mqtt-db.service
             └─23216 /usr/bin/wb-mqtt-db

фев 16 10:59:37 wirenboard-ANKMIELJ wb-mqtt-db[23216]: INFO: [mqtt] subscription succeeded (message id 1)
фев 16 10:59:37 wirenboard-ANKMIELJ wb-mqtt-db[23216]: INFO: [mqtt] subscription succeeded (message id 2)
фев 16 10:59:37 wirenboard-ANKMIELJ wb-mqtt-db[23216]: INFO: [mqtt] subscription succeeded (message id 5)
фев 16 10:59:37 wirenboard-ANKMIELJ wb-mqtt-db[23216]: INFO: [mqtt] subscription succeeded (message id 6)
фев 16 10:59:37 wirenboard-ANKMIELJ wb-mqtt-db[23216]: INFO: [mqtt] subscription succeeded (message id 7)
фев 16 10:59:37 wirenboard-ANKMIELJ wb-mqtt-db[23216]: INFO: [mqtt] subscription succeeded (message id 8)
фев 16 10:59:37 wirenboard-ANKMIELJ wb-mqtt-db[23216]: INFO: [mqtt] subscription succeeded (message id 9)
фев 16 10:59:37 wirenboard-ANKMIELJ wb-mqtt-db[23216]: INFO: [mqtt] subscription succeeded (message id 10)
фев 16 10:59:37 wirenboard-ANKMIELJ wb-mqtt-db[23216]: INFO: [mqtt] subscription succeeded (message id 13)
фев 16 10:59:37 wirenboard-ANKMIELJ wb-mqtt-db[23216]: INFO: [mqtt] subscription succeeded (message id 15)

diag_output_ANKMIELJ_2023-02-16-11.05.10.zip (267.8 КБ)

А каких сообщений в логи ожидаете? Немного непонятно, на основании каких признаков делаете вывод что сервис не работает.
Если нужно проверить - можно включить debug в конфиге и перезапустить сервис.

В предыдущей теме подробно описано: wb-mqtt-db-cli выходит по таймауту, в Web UI бесконечно крутятся точки

Лог при включенном debug выдает следующее:

фев 16 12:21:03 wirenboard-ANKMIELJ wb-mqtt-db[23216]: INFO: [signal handling] Received signal 15
фев 16 12:21:03 wirenboard-ANKMIELJ systemd[1]: Stopping Wiren Board database logger...
фев 16 12:21:03 wirenboard-ANKMIELJ systemd[1]: wb-mqtt-db.service: Succeeded.
фев 16 12:21:03 wirenboard-ANKMIELJ systemd[1]: Stopped Wiren Board database logger.
фев 16 12:21:03 wirenboard-ANKMIELJ systemd[1]: wb-mqtt-db.service: Consumed 4min 25.611s CPU time.
фев 16 12:21:03 wirenboard-ANKMIELJ systemd[1]: Started Wiren Board database logger.
фев 16 12:21:03 wirenboard-ANKMIELJ wb-mqtt-db[31644]: MQTT broker localhost:1883
фев 16 12:21:03 wirenboard-ANKMIELJ wb-mqtt-db[31644]: Config file /etc/wb-mqtt-db.conf
фев 16 12:21:03 wirenboard-ANKMIELJ wb-mqtt-db[31644]: INFO: [mqtt] Default host and port detected, checking if UNIX socket exists on /var/run/mosqui>
фев 16 12:21:03 wirenboard-ANKMIELJ wb-mqtt-db[31644]: INFO: [mqtt] UNIX socket exists, using it for connection
фев 16 12:21:03 wirenboard-ANKMIELJ wb-mqtt-db[31644]: INFO: [sqlite] Creating tables if necessary
фев 16 12:21:03 wirenboard-ANKMIELJ wb-mqtt-db[31644]: DEBUG: [sqlite] Creating 'channels' table...
фев 16 12:21:03 wirenboard-ANKMIELJ wb-mqtt-db[31644]: DEBUG: [sqlite] Creating 'data' table...
фев 16 12:21:03 wirenboard-ANKMIELJ wb-mqtt-db[31644]: DEBUG: [sqlite] Creating 'variables' table...
фев 16 12:21:03 wirenboard-ANKMIELJ wb-mqtt-db[31644]: DEBUG: [sqlite] Updating database version variable...
фев 16 12:21:04 wirenboard-ANKMIELJ wb-mqtt-db[31644]: INFO: [sqlite] Create indices if necessary
фев 16 12:21:04 wirenboard-ANKMIELJ wb-mqtt-db[31644]: DEBUG: [sqlite] Creating 'data_topic' index on 'data' ('channel')
фев 16 12:21:04 wirenboard-ANKMIELJ wb-mqtt-db[31644]: DEBUG: [sqlite] Creating 'data_topic_timestamp' index on 'data' ('channel', 'timestamp')
фев 16 12:21:04 wirenboard-ANKMIELJ wb-mqtt-db[31644]: INFO: [sqlite] Analyzing data table
фев 16 12:21:04 wirenboard-ANKMIELJ wb-mqtt-db[31644]: INFO: [sqlite] DB initialization is done
фев 16 12:21:05 wirenboard-ANKMIELJ wb-mqtt-db[31644]: INFO: DB logger started, go to main loop
фев 16 12:21:05 wirenboard-ANKMIELJ wb-mqtt-db[31644]: INFO: [mqtt] connection estabilished with code "0" <success>
фев 16 12:21:05 wirenboard-ANKMIELJ wb-mqtt-db[31644]: INFO: [mqtt] subscription succeeded (message id 1)
фев 16 12:21:05 wirenboard-ANKMIELJ wb-mqtt-db[31644]: INFO: [mqtt] subscription succeeded (message id 2)
фев 16 12:21:05 wirenboard-ANKMIELJ wb-mqtt-db[31644]: INFO: [mqtt] subscription succeeded (message id 5)
фев 16 12:21:05 wirenboard-ANKMIELJ wb-mqtt-db[31644]: INFO: [mqtt] subscription succeeded (message id 6)
фев 16 12:21:05 wirenboard-ANKMIELJ wb-mqtt-db[31644]: INFO: [mqtt] subscription succeeded (message id 7)
фев 16 12:21:05 wirenboard-ANKMIELJ wb-mqtt-db[31644]: INFO: [mqtt] subscription succeeded (message id 8)
фев 16 12:21:05 wirenboard-ANKMIELJ wb-mqtt-db[31644]: INFO: [mqtt] subscription succeeded (message id 9)
фев 16 12:21:05 wirenboard-ANKMIELJ wb-mqtt-db[31644]: INFO: [mqtt] subscription succeeded (message id 10)

Продолжение лога, после отключения debug и рестарта сервис поднялся, обратите внимание, что остановить его не удалось, только kill -9:

фев 16 12:21:05 wirenboard-ANKMIELJ wb-mqtt-db[31644]: INFO: [mqtt] subscription succeeded (message id 10)
фев 16 12:29:35 wirenboard-ANKMIELJ wb-mqtt-db[31644]: INFO: [signal handling] Received signal 15
фев 16 12:29:35 wirenboard-ANKMIELJ systemd[1]: Stopping Wiren Board database logger...
фев 16 12:31:05 wirenboard-ANKMIELJ systemd[1]: wb-mqtt-db.service: State 'stop-sigterm' timed out. Killing.
фев 16 12:31:05 wirenboard-ANKMIELJ systemd[1]: wb-mqtt-db.service: Killing process 31644 (main) with signal SIGKILL.
фев 16 12:31:05 wirenboard-ANKMIELJ systemd[1]: wb-mqtt-db.service: Main process exited, code=killed, status=9/KILL
фев 16 12:31:05 wirenboard-ANKMIELJ systemd[1]: wb-mqtt-db.service: Failed with result 'timeout'.
фев 16 12:31:05 wirenboard-ANKMIELJ systemd[1]: Stopped Wiren Board database logger.
фев 16 12:31:05 wirenboard-ANKMIELJ systemd[1]: wb-mqtt-db.service: Consumed 17.109s CPU time.
фев 16 12:31:05 wirenboard-ANKMIELJ systemd[1]: Started Wiren Board database logger.
фев 16 12:31:05 wirenboard-ANKMIELJ wb-mqtt-db[8338]: MQTT broker localhost:1883
фев 16 12:31:05 wirenboard-ANKMIELJ wb-mqtt-db[8338]: Config file /etc/wb-mqtt-db.conf
фев 16 12:31:05 wirenboard-ANKMIELJ wb-mqtt-db[8338]: INFO: [mqtt] Default host and port detected, checking if UNIX socket exists on /var/run/mosquit>
фев 16 12:31:05 wirenboard-ANKMIELJ wb-mqtt-db[8338]: INFO: [mqtt] UNIX socket exists, using it for connection
фев 16 12:31:05 wirenboard-ANKMIELJ wb-mqtt-db[8338]: INFO: [sqlite] Creating tables if necessary
фев 16 12:31:05 wirenboard-ANKMIELJ wb-mqtt-db[8338]: INFO: [sqlite] Create indices if necessary
фев 16 12:31:05 wirenboard-ANKMIELJ wb-mqtt-db[8338]: INFO: [sqlite] Analyzing data table
фев 16 12:31:06 wirenboard-ANKMIELJ wb-mqtt-db[8338]: INFO: [sqlite] DB initialization is done
фев 16 12:31:06 wirenboard-ANKMIELJ wb-mqtt-db[8338]: INFO: DB logger started, go to main loop
фев 16 12:31:06 wirenboard-ANKMIELJ wb-mqtt-db[8338]: INFO: [mqtt] connection estabilished with code "0" <success>
фев 16 12:31:06 wirenboard-ANKMIELJ wb-mqtt-db[8338]: INFO: [mqtt] subscription succeeded (message id 1)
фев 16 12:31:06 wirenboard-ANKMIELJ wb-mqtt-db[8338]: INFO: [mqtt] subscription succeeded (message id 2)
фев 16 12:31:06 wirenboard-ANKMIELJ wb-mqtt-db[8338]: INFO: [mqtt] subscription succeeded (message id 5)
фев 16 12:31:06 wirenboard-ANKMIELJ wb-mqtt-db[8338]: INFO: [mqtt] subscription succeeded (message id 6)
фев 16 12:31:06 wirenboard-ANKMIELJ wb-mqtt-db[8338]: INFO: [mqtt] subscription succeeded (message id 7)
фев 16 12:31:06 wirenboard-ANKMIELJ wb-mqtt-db[8338]: INFO: [mqtt] subscription succeeded (message id 8)
фев 16 12:31:06 wirenboard-ANKMIELJ wb-mqtt-db[8338]: INFO: [mqtt] subscription succeeded (message id 9)
фев 16 12:31:06 wirenboard-ANKMIELJ wb-mqtt-db[8338]: INFO: [mqtt] subscription succeeded (message id 10)
фев 16 12:31:07 wirenboard-ANKMIELJ wb-mqtt-db[8338]: INFO: [mqtt] subscription succeeded (message id 13)
фев 16 12:31:07 wirenboard-ANKMIELJ wb-mqtt-db[8338]: INFO: [mqtt] subscription succeeded (message id 15)

А какая, кстати, нагрузка на контроллер? CPU насколько занят?

image

В логах странного не вижу.
А записи в БД есть?

В логах видно только то, что после “INFO: [mqtt] subscription succeeded (message id 10)” сервис висит. Записи в БД проверить не могу, так как wb-mqtt-db-cli в этой ситуации вылетает по таймауту.

Когда сервис старатует нормально, в логах после строчки “INFO: [mqtt] subscription succeeded (message id 10)” появляется “INFO: [mqtt] subscription succeeded (message id 13)”

Не получается воспроизвести. В таком случае - включите debug, попробуйте с ним.

в этом сообщении был представлен лог с включенным debug

То есть в лог просто ничего не выводилось? Я как-то думал что процесс был закрыт. Так, если устойчиво воспроизводится - дайте доступ к контроллеру, посмотрю.

Воспроизводится неустойчиво, не всегда при загрузке/перезагрузке виснет. Как можно дать доступ, открыть наружу ssh?

ssh предпочтительней, да.
Ну а если просто перезапускать сервис - какой шанс?