Здрасьте господа товарищи.
Итак, есть у меня один девайс, сердцем которого является Raspberry Pi. Задачей девайса является измерение текущей нагрузки в домашней сети, и выключение некоторых устройств типа бойлера или конвекторов при превышении определенного пика.
Концепции задачи вот уже четыре года, менялась только малинка, ну и АЦП для измерения потребляемой мощности. Полгода назад взял подороже и пожирнее на ads1015. Да не суть.
За работу девайса отвечает две программы: первая на питоне, которая преобразовывает значение с АЦП в ватты, вторая на пыхе содержит логику контроля, ну типа «если потребление более 4 квт + последним отключался конвектор на кухне + в коридоре больше 20 градусов, то отключаем конвектор в ванной, а если он уже отключен, то бойлер».
Программа на питоне - просто замкнутый цикл, читающий значение АЦП с i2c-шины, используя полторы либы. Ничо сложного.
И вот в один прекрасный момент что-то пошло не так. Программа на питоне3 перестала работать. Залогинившись в консоль, и позапускав пару раз программу и сам питон, я докопался до этого:
root@raspberrypi:/home/pi/wattmeter# python3
Python 3.7.3 (default, Jul 25 2020, 13:03:44)
[GCC 8.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
XXX too many states!
XXX too many states!
XXX too many states!
Segmentation fault
root@raspberrypi:/home/pi/wattmeter#
UPD:
(gdb) run /home/pi/wattmeter/driver.py
Starting program: /usr/bin/python3 /home/pi/wattmeter/driver.py
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/arm-linux-gnueabihf/libthread_db.so.1".
XXX too many states!
XXX too many states!
XXX too many states!
XXX too many states!
XXX too high nonterminal number!
XXX too high nonterminal number!
XXX too high nonterminal number!
XXX too high nonterminal number!
XXX too high nonterminal number!
Program received signal SIGSEGV, Segmentation fault.
0x0009a5b0 in PyGrammar_AddAccelerators ()
(gdb)
Забегая вперед, скажу что с малинкой все в порядке, равно как и все в порядке с MicroSD-картой, dmesg ничего криминального не видит, равно как и остальные логи.
ШТОЭТА??!!111
Выходит я не могу положиться на сраный петон, потому что ему может стрельнуть в голову просто не запуститься без видимых на то причин ?
Ладно десктоп, ладно сервер, но это тупо железка без доступа в мир, без апдейтов, я ее трогаю раз в месяц.