Ребут на ровном месте

Были ли какие-то кроме “стандартных” правила в системном каталоге?

Наконец дождался падение wb-rules. Рекорд - 10 суток.
В правилах WB6 пусто. Всё это время ус-во, можно сказать, тупо грело воздух.
Перезагрузки, как было месяц назад не наблюдаю. Не знаю, чем вызваны такие изменения (может быть обновлениями, может быть условным простоем).

wb-rules продолжает грузить систему. Даже с пустыми правилами.
Как итог - его падение. Судя по продолжительности пути, из-за простоя системы возникает отсрочка падения.

root@trailer-wb6:~# uptime
 11:16:52 up 10 days, 21:16,  5 users,  load average: 2,72, 2,53, 2,47





diag_output_ACMRRATU_2022-03-28-11.09.17.zip (120.6 КБ)

/var/log/messages:

[cut]
Mar 28 10:38:14 trailer-wb6 wb-rules[1752]: panic: runtime error: index out of range [4] with length 0
Mar 28 10:38:14 trailer-wb6 wb-rules[1752]: goroutine 16 [running]:
Mar 28 10:38:14 trailer-wb6 wb-rules[1752]: github.com/wirenboard/wbgo-private.(*score).zbCBVIsgVKWhREgN(0xce2680, 0x126de, 0x37f08780)
Mar 28 10:38:14 trailer-wb6 wb-rules[1752]: 	github.com/wirenboard/wbgo-private/support.go:135 +0x90
Mar 28 10:38:14 trailer-wb6 wb-rules[1752]: github.com/wirenboard/wbgo-private.(*score).fnXdJjMUChLnQged(0xce2680, 0x30b8a000, 0x346, 0xd2f1a9fc, 0x3f70624d, 0x0, 0x40390000, 0x0)
Mar 28 10:38:14 trailer-wb6 wb-rules[1752]: 	github.com/wirenboard/wbgo-private/support.go:125 +0x1ac
Mar 28 10:38:14 trailer-wb6 wb-rules[1752]: github.com/wirenboard/wbgo-private.(*score).aQLxhdNvDCggTgxa(0xce2680)
Mar 28 10:38:14 trailer-wb6 wb-rules[1752]: 	github.com/wirenboard/wbgo-private/support.go:155 +0x154
Mar 28 10:38:14 trailer-wb6 wb-rules[1752]: github.com/wirenboard/wbgo-private.(*score).sdyaePIdHdhPmunY(0xce2680, 0xd2f1a9fc, 0x3f50624d, 0x0)
Mar 28 10:38:14 trailer-wb6 wb-rules[1752]: 	github.com/wirenboard/wbgo-private/support.go:191 +0x1c
Mar 28 10:38:14 trailer-wb6 wb-rules[1752]: github.com/wirenboard/wbgo-private.(*PahoMQTTClient).subscribe.func1(0x950e05d8, 0xcfe420, 0x950e01b8, 0xe998f0)
Mar 28 10:38:14 trailer-wb6 wb-rules[1752]: 	github.com/wirenboard/wbgo-private/mqtt.go:287 +0xc0
Mar 28 10:38:14 trailer-wb6 wb-rules[1752]: github.com/eclipse/paho%2emqtt%2egolang.(*router).matchAndDispatch.func2(0xc4dbc0, 0xc4e510, 0xc4dc00, 0xcfe420, 0xc2af01, 0xc16de0, 0xc4dc00, 0xc4dc40, 0xc4dc80, 0xc4dcc0)
Mar 28 10:38:14 trailer-wb6 wb-rules[1752]: 	github.com/eclipse/paho.mqtt.golang@v1.3.5/router.go:210 +0x32c
Mar 28 10:38:14 trailer-wb6 wb-rules[1752]: created by github.com/eclipse/paho%2emqtt%2egolang.(*router).matchAndDispatch
Mar 28 10:38:14 trailer-wb6 wb-rules[1752]: 	github.com/eclipse/paho.mqtt.golang@v1.3.5/router.go:169 +0x128
Mar 28 10:38:14 trailer-wb6 systemd[1]: wb-rules.service: Main process exited, code=exited, status=2/INVALIDARGUMENT
Mar 28 10:38:14 trailer-wb6 systemd[1]: wb-rules.service: Unit entered failed state.
Mar 28 10:38:14 trailer-wb6 systemd[1]: wb-rules.service: Failed with result 'exit-code'.
Mar 28 10:38:16 trailer-wb6 systemd[1]: wb-rules.service: Service hold-off time over, scheduling restart.
Mar 28 10:38:16 trailer-wb6 systemd[1]: Stopped MQTT Rule engine for Wiren Board.
Mar 28 10:38:16 trailer-wb6 systemd[1]: Started MQTT Rule engine for Wiren Board.
Mar 28 10:38:16 trailer-wb6 wb-rules[31835]: INFO: driver is created
Mar 28 10:38:16 trailer-wb6 wb-rules[31835]: INFO: [wbgo_mqtt] rules-trailer-wb6-31835: MQTT connection established
Mar 28 10:38:16 trailer-wb6 wb-rules[31835]: INFO: driver loop is started
Mar 28 10:38:16 trailer-wb6 wb-rules[31835]: INFO: wait for driver to become ready
Mar 28 10:38:17 trailer-wb6 wb-rules[31835]: INFO: driver is ready 
[cut]

Статистика по wb-rules. Остальные процессы - без изменений (нет роста).

pidstat -p `pgrep -x wb-rules` 3600
Linux 5.10.35-wb105 (trailer-wb6)       21.03.2022      _armv7l_        (1 CPU)

16:16:35      UID       PID    %usr %system  %guest    %CPU   CPU  Command
17:16:35        0      1752   10,70    9,44    0,00   20,14     0  wb-rules
18:16:35        0      1752   10,71    9,43    0,00   20,14     0  wb-rules
[cut]
05:38:17      UID       PID    %usr %system  %guest    %CPU   CPU  Command
06:38:17        0      1752    9,86   15,61    0,00   25,47     0  wb-rules
07:38:17        0      1752    9,90   15,64    0,00   25,54     0  wb-rules
08:38:17        0      1752    9,76   15,76    0,00   25,52     0  wb-rules
09:38:17        0      1752    9,87   15,71    0,00   25,57     0  wb-rules

для чистоты эксперимента все не стандартные удалял, проц был загружен на 100%

Так… А если удалить (перенести) системные правила? То есть содержимое /usr/share/wb-rules-system/rules/ и перезапустить движок - так же занимает CPU?

уже поздно об этом говорить, тк контроллер активно учувствует в жизнедеятельности, пришлось сносить все и заново конфигурить. Сейчас все работает с теми же правилами нормально.

@KuZia495 А вы можете это проверить?

Уже сделал:

После утреннего падения и рестарта:

11:25:26      UID       PID    %usr %system  %guest    %CPU   CPU  Command
12:25:26        0     31835   10,05    4,83    0,00   14,88     0  wb-rules
13:25:26        0     31835   10,10    4,89    0,00   14,99     0  wb-rules

После очистки /usr/share/wb-rules-system/rules/:

Linux 5.10.35-wb105 (trailer-wb6)       28.03.2022      _armv7l_        (1 CPU)

13:39:14      UID       PID    %usr %system  %guest    %CPU   CPU  Command
14:39:14        0     15289    6,13    2,95    0,00    9,08     0  wb-rules

То есть, разница таки есть.
Динамику нужно смотреть много позже.

Меньше 24ч, но уже можно сказать, что wb-rules прекратил “кушать” время, либо делает это значительно медленнее.


Linux 5.10.35-wb105 (trailer-wb6)       28.03.2022      _armv7l_        (1 CPU)

13:39:14      UID       PID    %usr %system  %guest    %CPU   CPU  Command
14:39:14        0     15289    6,13    2,95    0,00    9,08     0  wb-rules
15:39:14        0     15289    6,12    2,94    0,00    9,07     0  wb-rules
16:39:14        0     15289    6,15    2,97    0,00    9,11     0  wb-rules
17:39:14        0     15289    6,14    2,96    0,00    9,10     0  wb-rules
18:39:14        0     15289    6,14    2,94    0,00    9,07     0  wb-rules
19:39:14        0     15289    6,08    2,99    0,00    9,07     0  wb-rules
20:39:14        0     15289    6,09    2,99    0,00    9,08     0  wb-rules
21:39:14        0     15289    6,18    2,91    0,00    9,09     0  wb-rules
22:39:14        0     15289    6,13    2,97    0,00    9,10     0  wb-rules
23:39:14        0     15289    6,16    2,93    0,00    9,09     0  wb-rules
00:39:14        0     15289    6,11    2,95    0,00    9,06     0  wb-rules
01:39:14        0     15289    6,10    2,96    0,00    9,05     0  wb-rules
02:39:14        0     15289    6,14    2,92    0,00    9,06     0  wb-rules
03:39:14        0     15289    6,16    2,94    0,00    9,10     0  wb-rules
[cut]
09:26:31        0     15289    6,26    2,98    0,00    9,25     0  wb-rules

Какие мои дальнейшие действия?

Спасибо за информацию, сделаю багрепорт разработчикам.
Если есть возможность, то попробуйте возвращать системные правила по одному назад. Если удастся определить проблемное правило, которое вызывает рост нагрузки, то это нам очень поможет решить проблему.

Попробую.

Доброго времени!

Спасибо большое за подробное описание проблемы! Хотелось бы проверить несколько гипотез о происходящем. Есть ли возможность дать удалённый доступ на контроллер по ssh?

P.S. На будущее, лучше всё-таки создавать отдельные темы, у вас ситуация отличается от обсуждавшейся выше, а с разными темами поддержке потом проще ориентироваться в происходящем.

Да, в настоящее время отличается. Но зашёл я в неё именно из-за перезагрузки.
У меня крайние две недели контроллер перестал перезагружаться.
Не могу точно сказать, почему (в попытках “исправить” я обновлял программы через apt), а крайние недели так вообще на контроллере вообще мало чего “крутится”.

Предоставить доступ смогу. В лс?

Да, в лс

не долго музыка играла, после 3х дней нормальной работы сегодня было замечено что не отрабатывает правило, заглянул в морду вот…
image
рестарт wb-rules помог
image


image
в логах чисто

Удалил дублирующее сообщение. Пришлите, пожалуйста, ваш архив с диагностической информацией еще раз.
То есть через 3 дня работы загрузка процессора возрастает до 100 % постоянно, правила не отрабатывают, но перезагрузок нет, правильно?

При повторении попробуйте удалить еще раз сначала свои правила, а затем и системные, как было написано выше. Изменится ли что-нибудь?

файл не генерируется, отваливается по таймауту

да

хорошо, попробую

Также сделайте еще такие же скриншоты команды htop когда проблема есть, а затем после перезапуска сервиса wb-rules.

Здравствуйте! По проблеме аварийного завершения сервиса wb-rules сделали исправление - версия wb-rules 2.11.2 доступна в релизе testing. Обновите, пожалуйста.

1 лайк

Ну вот, стати, за некоторое время наблюдений.
Набор скриптов:
buzzer.js
hwmon.js
network.js
power_status.js

Замечен рост нагрузки. ООооочень маленький, но есть:


На графике с ~12:00 (29.03.2022). Сегодня утром убрал этот набор, заменив его:

system.js
wb-mqtt-dac.js
wbmz-battery.js

На графике сложно различить, но в натуре рост так же есть:

11:04:28      UID       PID    %usr %system  %guest    %CPU   CPU  Command
12:04:28        0     21054    8,54    4,31    0,00   12,85     0  wb-rules
13:04:28        0     21054    8,49    4,34    0,00   12,84     0  wb-rules
14:04:28        0     21054    8,62    4,43    0,00   13,05     0  wb-rules
15:04:28        0     21054    8,64    4,40    0,00   13,04     0  wb-rules
16:04:28        0     21054    8,69    4,44    0,00   13,12     0  wb-rules
17:04:28        0     21054    8,62    4,45    0,00   13,07     0  wb-rules

Так же — ооочень медленно. Наверное, 1% в сутки, а-то и меньше будет.
То есть, на сколько я понял, если убрать вообще все скрипты, то роста нет, либо он на порядок (а-то и пару) медленнее.

Хорошо. Сейчас обновлю и верну все “системные скрипты”.

update:

Welcome to Wiren Board 6.8.1 (s/n ACMRRATU), release staging.03704 (as testing)
Linux trailer-wb6 5.10.35-wb109 #1 Wed Mar 16 07:18:32 UTC 2022 armv7l GNU/Linux

вот сейчас опять проц уперся в 100%, озу в норме


после перезагрузки wb-rules