Периодически перестают работать правила. Т.е. демон wb-rules запущен, живой, но ни одно правило не работает.
Например, есть простое правило, которое читает температуру с 1wire датчика и пишет ее в виртуальный девайс. И лог пишет.
Вот в один прекрасный момент в лог перестает писать, значение в виртуальном девайсе не меняется, хотя значения у датчика меняются.
В /var/log/messages есть вот такое. Появилось, кстати, пару дней назад и не факт, что связано. До этого правила так же отваливались и в логе вообще было пусто.
Jan 25 09:03:01 wiren6 daemon.info wb-rules[11644]: ERROR: queue Events is almost filled! 2048/2048
Jan 25 09:04:01 wiren6 daemon.info wb-rules[11644]: ERROR: queue Events is almost filled! 2048/2048
...
Jan 25 10:10:02 wiren6 daemon.info wb-rules[23654]: ERROR: queue handleMessage is almost filled! 1795/2048
Jan 25 10:10:02 wiren6 daemon.info wb-rules[23654]: ERROR: queue handleMessage is almost filled! 1794/2048
Jan 25 10:10:02 wiren6 daemon.info wb-rules[23654]: ERROR: queue handleMessage is almost filled! 1793/2048
Jan 25 10:10:02 wiren6 daemon.info wb-rules[23654]: ERROR: queue handleMessage is almost filled! 1817/2048
Jan 25 10:10:02 wiren6 daemon.info wb-rules[23654]: INFO: queue handleMessage length back to normal: 1024/2048
Лог полностью:
Пока решил проблему костылем - по крону в правилах пишу таймстемп в виртуальный девайс и уже в системном кроне проверяю, если текущее время сильно убежало от этого таймстемпа, то перезапускаю wb-rules.
Есть 2 таймера, которые опрашивают статус ups и по snmp забирают данные с одного сервера. Но они выполняются раз в 10 секунд. Я не думаю что особо влияют на память.
Так, прошло 5 дней. Зависаний wb-rules пока не было, но ошибки продолжают валиться в лог
Jan 30 09:17:00 wiren6 daemon.info wb-rules[23654]: ERROR: queue handleMessage is almost filled! 1799/2048
Jan 30 09:17:00 wiren6 daemon.info wb-rules[23654]: ERROR: queue handleMessage is almost filled! 1798/2048
Jan 30 09:17:00 wiren6 daemon.info wb-rules[23654]: ERROR: queue handleMessage is almost filled! 1797/2048
Jan 30 09:17:00 wiren6 daemon.info wb-rules[23654]: ERROR: queue handleMessage is almost filled! 1796/2048
Jan 30 09:17:00 wiren6 daemon.info wb-rules[23654]: ERROR: queue handleMessage is almost filled! 1795/2048
Jan 30 09:17:00 wiren6 daemon.info wb-rules[23654]: ERROR: queue handleMessage is almost filled! 1794/2048
Jan 30 09:17:00 wiren6 daemon.info wb-rules[23654]: ERROR: queue handleMessage is almost filled! 1793/2048
Jan 30 09:17:02 wiren6 daemon.info wb-rules[23654]: INFO: queue handleMessage length back to normal: 1024/2048
У меня идет перезапуск сервиса, когда queue становится полностью full…
Беда в том, что при перезапуске wb-rules у меня срабатывают все правила и включается свет в 3-и часа ночи в коридоре. Есть правило, которое включает свет в коридоре, когда квартира снимается с сигнализации (сухой контакт)… Как отфильтровать данную ситуацию - понятия не имею
Проблема с зависанием правил из-за роста очереди сообщений была описана здесь больше года назад. Похоже, это тянется до сих пор.
Ситуация критическая - правила могут перестать работать в любой момент, а новой версии движка с исправлениями до сих пор нет.