Wb-rules: ERROR: failed to SetValue for unexisting control

Добрый день!
Завис wb-rules. Визуально все правила по cron и whenChanged работали (записываем лог, когда правило срабатывает), но эффекта выполнения правила небыло.
Из ошибок в /var/log/messages только
ERROR: failed to SetValue for unexisting cont
в месте обращения к обычным переменным.

Также не работало присвоение значения из MQTT через /on.

После перезапуска wb-rules проблема больше не появлялась.

Версия wb-rules 2.6.0

А можете на всякий случай весь лог по rules приложить? Возможно там какое-то сообщение было до того, как заметили проблему.

Да, конечно.


Сюда файл не влез.

А напишите пожалуйста, в какое время в этом логе оно зависло, в какое - ещё работало, и в какое вы перезагрузили wb-rules.

И, видимо, ещё нужно messages.1.gz выложить.

Да, конечно.

Когда конкретно зависло сложно сказать, перезапустили в Oct 31 10:23:57.
Сейчас заметил, что …failed to SetValue for… и в предыдущий день было, возможно не связано с тем, что по /on не зависывались значения.

Добрый день!
По признакам похожая проблема, небыло активности wb-rules. Перезапустили в Nov 4 08:53:27.
https://drive.google.com/drive/folders/11PhqerJGTpwb3Z6JL9Hg24DlCwBYSCAw

Добрый день!
Столкнулись с аналогичной проблемой. На wb-rules 1.7.1 такого никогда небыло.

Команда для 5f5fa2202438f6c72bbd6b4d в Nov 5 00:45:03 визуально выполнилась, но состояние реле по факту не переключилось.

Скрипт с контроллера:
5f5fa2202438f6c72bbd6b4d-1604536600.js.txt|attachment (8.9 КБ)

Попытаюсь воспроизвести.

Проблема в том, что у нас в районе 10ти контроллеров на новом wb-rules и каждое утро падает лишь 0-2 контроллера. Возможно связано с обращением к переменным из другого потока, но на wb-rules 1.7.1 не наблюдал таких проблем. Возможно при загрузке контроллера что-то не так стартует.

Насколько понял, failed to SetValue for unexisting cont возникает при обращении через dev[][] к несуществующему элементу. Но от запуска к запуску код скрипта не меняется, поэтому куда мог деться элемент не понятно.

Если виртуальное устройство (например) создается одним скриптом а обращение к нему идет из другого то вполне возможна ситуация что устройства еще нет.

Нет, у нас каждый файл независим друг от друга. Ошибка с SetValue предположительно появляется при обращении к устройствам wb-mqtt-serial. Но так же при записи через /on в виртуальное устройство, значение не менялось.

Выключение halt -f может влиять?

Похожее поведение получаю, когда вручную удаляю метаданные устройств.

Нет, не должно.
Хотя - надо проверить как retained топики в mosquitto себя ведут.

Как снова зависнет, выгружу все топики /devices/#, может что интересное будет.

Не было пока?

Мы убрали halt -f, пока больше не случалось.

Появилось снова, упало управление всего объекта.
halt -f меняли на halt, поидее, точно не должна перезагрузка влиять.

Выкачал топики.
topics.txt (193.0 КБ)

grep -a wb-rules /var/log/messages
root@IQ139000:~# grep -a wb-rules /var/log/messages
Dec  3 06:25:19 IQ139000 daemon.info wb-rules[1800]: INFO: LiveRemoveFile: /etc/wb-rules/5e03a7e9832a17ee33585f59-__1606955736__.js
Dec  3 06:25:19 IQ139000 daemon.info wb-rules[1800]: INFO: reloading file: /etc/wb-rules/5e03a7e9832a17ee33585f59-__1606976718__.js
Dec  3 06:25:29 IQ139000 daemon.info wb-rules[1800]: INFO: [rule info] 5e03a7e9832a17ee33585f59 Do schedule: {"channels":{"ch_power":[[0]]},"expiration_stamp_ms":1606976909021,"cmd_timestamp_ms":1606976729021,"source":"schedule"}
Dec  3 06:25:29 IQ139000 daemon.info wb-rules[1800]: INFO: [rule info] 5e03a7e9832a17ee33585f59 Exec: {"channels":{"ch_power":[[0]]},"expiration_stamp_ms":1606976909021,"cmd_timestamp_ms":1606976729021,"source":"schedule"}
Dec  3 06:25:29 IQ139000 daemon.info wb-rules[1800]: INFO: [rule info] 5e03a7e9832a17ee33585f59 schedule performed
Dec  3 06:25:30 IQ139000 daemon.info wb-rules[1800]: INFO: [rule info] 5e03a7e9832a17ee33585f59 ch_power[0]: 0
Dec  3 06:25:30 IQ139000 daemon.info wb-rules[1800]: ERROR: failed to SetValue for unexisting control
Dec  3 06:25:30 IQ139000 daemon.info wb-rules[1800]: INFO: [rule info] 5e03a7e9832a17ee33585f59 ch_i: ch_power RETURN
Dec  3 06:25:39 IQ139000 daemon.info wb-rules[1800]: INFO: [rule info] 5e03a7e9832a17ee33585f59 initialized
Dec  3 06:30:09 IQ139000 daemon.info wb-rules[1800]: INFO: [rule info] 5e03a7e9832a17ee33585f56 Do schedule: {"channels":{"ch_power":[[0]],"ch_frequency":[["12.5"]]},"expiration_stamp_ms":1606977189103,"cmd_timestamp_ms":1606977009103,"source":"schedule"}
Dec  3 06:30:09 IQ139000 daemon.info wb-rules[1800]: INFO: [rule info] 5e03a7e9832a17ee33585f56 Exec: {"channels":{"ch_power":[[0]],"ch_frequency":[["12.5"]]},"expiration_stamp_ms":1606977189103,"cmd_timestamp_ms":1606977009103,"source":"schedule"}
Dec  3 06:30:09 IQ139000 daemon.info wb-rules[1800]: INFO: [rule info] 5e03a7e9832a17ee33585f56 schedule performed
Dec  3 06:30:10 IQ139000 daemon.info wb-rules[1800]: INFO: [rule info] 5e03a7e9832a17ee33585f56 ch_power[0]: 0
Dec  3 06:30:10 IQ139000 daemon.info wb-rules[1800]: ERROR: failed to SetValue for unexisting control
Dec  3 06:30:10 IQ139000 daemon.info wb-rules[1800]: INFO: [rule info] 5e03a7e9832a17ee33585f56 ch_i: ch_power RETURN
Dec  3 06:30:10 IQ139000 daemon.info wb-rules[1800]: INFO: [rule info] 5e03a7e9832a17ee33585f56 ch_frequency[0]: 12.5
Dec  3 06:30:10 IQ139000 daemon.info wb-rules[1800]: ERROR: failed to SetValue for unexisting control
Dec  3 06:30:10 IQ139000 daemon.info wb-rules[1800]: ERROR: failed to SetValue for unexisting control
Dec  3 06:30:10 IQ139000 daemon.info wb-rules[1800]: ERROR: failed to SetValue for unexisting control
Dec  3 06:30:10 IQ139000 daemon.info wb-rules[1800]: INFO: [rule info] 5e03a7e9832a17ee33585f56 ch_i: ch_frequency RETURN
Dec  3 06:50:09 IQ139000 daemon.info wb-rules[1800]: INFO: [rule info] 5e03a7e8832a17ee33585f54 Do schedule: {"channels":{"ch_power":[[0]]},"expiration_stamp_ms":1606978389125,"cmd_timestamp_ms":1606978209125,"source":"schedule"}
Dec  3 06:50:09 IQ139000 daemon.info wb-rules[1800]: INFO: [rule info] 5e03a7e8832a17ee33585f54 Exec: {"channels":{"ch_power":[[0]]},"expiration_stamp_ms":1606978389125,"cmd_timestamp_ms":1606978209125,"source":"schedule"}
Dec  3 06:50:09 IQ139000 daemon.info wb-rules[1800]: INFO: [rule info] 5e03a7e8832a17ee33585f54 schedule performed
Dec  3 06:50:09 IQ139000 daemon.info wb-rules[1800]: INFO: [rule info] 5e03a7e8832a17ee33585f55 Do schedule: {"channels":{"ch_power":[[0]]},"expiration_stamp_ms":1606978389162,"cmd_timestamp_ms":1606978209162,"source":"schedule"}
Dec  3 06:50:09 IQ139000 daemon.info wb-rules[1800]: INFO: [rule info] 5e03a7e8832a17ee33585f55 Exec: {"channels":{"ch_power":[[0]]},"expiration_stamp_ms":1606978389162,"cmd_timestamp_ms":1606978209162,"source":"schedule"}
Dec  3 06:50:09 IQ139000 daemon.info wb-rules[1800]: INFO: [rule info] 5e03a7e8832a17ee33585f55 schedule performed
Dec  3 06:50:10 IQ139000 daemon.info wb-rules[1800]: INFO: [rule info] 5e03a7e8832a17ee33585f54 ch_power[0]: 0
Dec  3 06:50:10 IQ139000 daemon.info wb-rules[1800]: ERROR: failed to SetValue for unexisting control
Dec  3 06:50:10 IQ139000 daemon.info wb-rules[1800]: INFO: [rule info] 5e03a7e8832a17ee33585f54 ch_i: ch_power RETURN
Dec  3 06:50:10 IQ139000 daemon.info wb-rules[1800]: INFO: [rule info] 5e03a7e8832a17ee33585f55 ch_power[0]: 0
Dec  3 06:50:10 IQ139000 daemon.info wb-rules[1800]: ERROR: failed to SetValue for unexisting control
Dec  3 06:50:10 IQ139000 daemon.info wb-rules[1800]: INFO: [rule info] 5e03a7e8832a17ee33585f55 ch_i: ch_power RETURN

Так же:

/devices/5e03a7e9832a17ee33585f58/controls/exec/on {"channels":{"ch_power":[[0.0]]},"cmd_timestamp_ms":1606987661000,"expiration_stamp_ms":1606987961033,"source":"user","user_command_uuid":"5fc8af8d46c0f8003da33283"}

но в /devices/5e03a7e9832a17ee33585f58/controls/exec ничего нового не появляется:

/devices/5e03a7e9832a17ee33585f58/controls/exec/meta/type text
/devices/5e03a7e9832a17ee33585f58/controls/exec/meta/order 1
/devices/5e03a7e9832a17ee33585f58/controls/exec/meta/readonly 0
/devices/5e03a7e9832a17ee33585f58/controls/exec {"channels":{"ch_power":[[0.0]]},"cmd_timestamp_ms":1604986751000,"expiration_stamp_ms":1604987045168,"source":"user","user_command_uuid":"5faa27792784521dbf997d58"}