LINUX.ORG.RU
ФорумTalks

Бугурт по поводу Python'а

 ,


0

1

Здрасьте господа товарищи.

Итак, есть у меня один девайс, сердцем которого является 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

Выходит я не могу положиться на сраный петон, потому что ему может стрельнуть в голову просто не запуститься без видимых на то причин ?

Ладно десктоп, ладно сервер, но это тупо железка без доступа в мир, без апдейтов, я ее трогаю раз в месяц.

★★★★★

Последнее исправление: windows10 (всего исправлений: 1)

Ответ на: комментарий от qaqa

Какая конкретно информация нужна ?

Даже сам чистый бинарь вылетает.

windows10 ★★★★★
() автор топика

вторая на пыхе содержит логику контроля

emoncms?

vvn_black ★★★★★
()

https://pythondev.readthedocs.io/platforms.html#supported-architectures

Well supported architectures:

- Intel x86 (32-bit) and x86_64 (64-bit, aka AMD64)


Best effort support architectures:

- ppc64le: should be well supported in practice
- AArch64
- ARMv7: should be well supported in practice
- s390x

Возможно где-то и облажались, потому что PyGrammar_AddAccelerators - вроде как именно из кода интерпретатора ¯\_(ツ)_/¯

anonymous-angler ★☆
()
Последнее исправление: anonymous-angler (всего исправлений: 3)
Ответ на: комментарий от Meyer

Проблема в оверинжиниринге, все решается одним контроллером на Cortex-M3.

Не решается. Например конвекторы у меня управляются по вафле. И много другого «почему нет». А так, хватает даже атмеги 8-й.

windows10 ★★★★★
() автор топика

что с малинкой все в порядке, равно как и все в порядке с MicroSD-картой

железобетонные пруфы есть?

Harald ★★★★★
()
Ответ на: комментарий от Harald

железобетонные пруфы есть?

Уже нет. Переустанавливаю систему, решил пользуясь случаем попробовать васяносборку васянодистра - dietPi. Пока все норм.

Вот думаю а не сделать ли мне рутфс в ro от греха подальше ?

windows10 ★★★★★
() автор топика
Ответ на: комментарий от windows10

Типичный малоквалифицированный вантузятник ))

Вместо того, чтобы взять нормальный образ с raspi.debian.net, лечит проблемы переустановкой. Да еще и одной васяносборки на другую.

Вот думаю а не сделать ли мне рутфс в ro от греха подальше

Это, кстати, хороший вариант сохранить microsd.

zemidius
()
Последнее исправление: zemidius (всего исправлений: 1)
Ответ на: комментарий от TooPar

Букв много, так и не понял, зачем зоопарк вместо одного бинарника на чистом си

Затем что практической ценности в нем никакой нет.

10 строчек на питоне - опрашивают датчик по i2c-шине. Это вполне достаточно, и в принципе эту часть я никогда не трогаю.

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

windows10 ★★★★★
() автор топика
Ответ на: комментарий от zemidius

Вместо того, чтобы взять нормальный образ с raspi.debian.net, лечит проблемы переустановкой. Да еще и одной васяносборки на другую.

А разница в чем ?

windows10 ★★★★★
() автор топика
Ответ на: комментарий от windows10

10 строчек на питоне - опрашивают датчик по i2c-шине

Попробуй опрашивать датчик в другом ЯП (в том же ПХП).
Нужно понять, проблема именно в Питоне и его библиотеках или это системная проблема.

p.s. И да, ждал бугурт именно по поводу Питона :)

Novator ★★★★★
()
Последнее исправление: Novator (всего исправлений: 1)
Ответ на: комментарий от Novator

Попробуй опрашивать датчик в другом ЯП (в том же ПХП).

Не не не. Дело было именно в питоне. Даже без кода, он вылетал с сегфолтом. В сабже самый первый листинг кода :)

windows10 ★★★★★
() автор топика
Ответ на: комментарий от zemidius

Ну разница в том, что оно долгосрочно работает, прогнозируемо и без глюков.

Любой дистр так работает. Разница в удобстве работы.

windows10 ★★★★★
() автор топика
Ответ на: комментарий от windows10

Не не не. Дело было именно в питоне.

Там 2-й питон есть? Попробуй через него.
Накрайняк, качни другой deb и напрямую переустанови.

Novator ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.