Не открываются скрипты


#1

После очередных правок кода скриптов, не могу открыть ни один скрипт. Появляется сообщение : «Error listing the scripts: MQTT RPC request timed out». Пытался работать с функциями таймера. Возможно они стали причиной некорректной работы скрипта. Перезагрузка не помогла. Как поступить, подскажите?


#2

Обнаружил, что скрипты не работали из-за отсутствия mqtt connection. Помогло исправить командой /etc/init.d/wb-rules force-reload.

Как избежать подобных случаев отключения mqtt?


#3

Вполне возможно, что при ошибках в скрипте движок правил отключается. Попробуйте удалить подозрительные скрипты через консоль (в директории /etc/wb-rules). Когда обнаружите проблемный скрипт, можете прислать его, попробуем найти проблему.


#4

У меня похожая проблема, после неск. часов работы скрипта возникает такая же ситуация. Что делать?

(ч-з некоторое время):
А сейчас очень интересно… Удалил скрипт, запустил его в работу заново - заработало, потом зависло. Опять удалил рестартанул - не работает скрипт… Как такое возмжно? Он или не должен работать или должен, я же ничего не меняю в нем!

(еще чер-з небольшое время):
удалил-вставил - работает. Мистика. Не стабильное поведение… Прислать скрипт?


#5

Добрый день, polygon!
Пришлите скрипт, пожалуйста!
Для отладки иногда удобно запускать движок правил не как сервис, а как исполняемый файл из командной строки:

~# service wb-rules stop
~# /usr/bin/wb-rules -debug -syslog -queue-len 2048 -editdir /etc/wb-rules /usr/share/wb-rules-system/rules/ /etc/wb-rules /usr/share/wb-rules/

#6

Здравствуйте, Kilpio!
Спасибо за быстрый отзыв!
А что дает такой способ запуска движка?

Ну и по скрипту, наверное, нужны пояснения, чтобы вы долго в него не вникали, время не тратили…
Почтой на саппорт отправить? Сюда не вставляется(

Я, не понимая, что будет)) все-таки сделал как Вы мне сказали, вот что консоль мне выдала:

чер-з неск. минут.
У меня опять завис скрипт и нет доступа к скриптам(


#7

Да, давайте почтой на support. напишите, что для меня. Присылайте. я попробую разобраться, если что – спрошу.

В выводе откровенных ошибок нет по работе скриптов, есть проблемы с системными правилами, но они не влияют.
При запуске движка из командной строки просто удобно отлаживать правила. Вы примерно понимаете, в каком месте правило зависает?


#8

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

Скрипт сейчас отправлю, в письме все поясню.


#9

Вот сейчас проверил. Удалил скрипт, потом рестарт правил, потом загрузил скрипт, кликнул два раза - включил и потом выключил канал и оставил как есть. Через неск. минут проверил - зависли правила, не реагирует, скрипты не открываются( Пожалуйста, сообщите, вам письмо пришло или нет? отправил на info с темой для вас.
Еще дополнение - через морду во время такого зависания даже не ребутится. Только через putty


#10

polygon, спасибо — получил скрипт, но пока не смотрел.


#11

polygon, запустил ваш скрипт, работает, как вы написали в письме. Жду зависания.


#12

Зависает. Посмотрю, где.


#13

Добрый день!
Я переделал скрипт, зависать перестал, пока работает нормально. Если вы еще не тратили на него время, предлагаю пока что не трогать его, вдруг не повторится, я мог там наделать ошибок.


#14

Добрый день! Очень интересно, что вы изменили. Ваш скрипт, в том виде, в каком вы прислали, у меня не приводил к аварийному завершению движка правил: процесс движка правил продолжал висеть, но скрипт выполняться переставал.
Вы что-то сделали с таймерами?


#15

За выходные, пока никто не нажимал “кнопку”, движок не завис и скрипты по-прежнему выполняются.


#16

если хотите, пришлю вам последний релиз на сег. момент. там, правда в стиле ООП, но у меня два скрипта параллельно вот уже нес. дней работают


#17

Присылайте! А можете описать вкратце, что вы изменили?


#18

Сейчас отправлю. Я написал скрипт заново и в парадигме ООП. Так что поменял все) Не понимаю еще, зачем вы в функции таймера и интервала присваиваете null ID. У меня и без этого работает.


#19

Насколько я понимаю, если не сбрасывать в null, то можно словтиь ситуацию, когда таймер не запустится, если он был определен раньше.