I have quite a large installation in a docker contrainer on a Synolgic NAS (with 8 GB RAM) which becomes struck after a while (randomly, mostly some days to some weeks).
Observed behavior:
Even simple rules are not executed anymore but I could still controll KNX via openHAB UI.
For example I have an item that can still be controlled via KNX and UI but the trigger rule below (to close KNX and non-KNX rollershutters) does not react
rule "RollladenRunter"
when
Item Szene_Rollladen_Runter changed to ON
then
logInfo("Rollladen", "Rollladen runter")
Neither memory nor CPU usage show spikes / come to the limits.
The only other odd thing I observe is that the tablet with HABPanel is updating super slowly.
Any idea how I could debug this problem? I’m a bit clueless …
Having similar issues currently. I haven’t a lot of rules. No sleeps or long running rules. Older rule files are working fine. But rules that were created a few days ago are causing problems. For example: I have 3 .rule-files. If i update them, only the last touched rule-file is working. No rules in the other two files will be executed.
It might be an SD card issue. I don’t know. SD card is only 3 months old and the only persistence I use is MapDB.
Read all those threads around it and try to alter rules but still couldn’t find the problem.
The rules are executed by openHAB-job-scheduler_Worker-1 (and following) right?
Seems like they are all idle.
openhab> threads --monitors --locks
"openHAB-job-scheduler_Worker-1" Id=117 in TIMED_WAITING on lock=java.lang.Object@2985f79d
at java.lang.Object.wait(Native Method)
at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:568)
"openHAB-job-scheduler_Worker-2" Id=118 in TIMED_WAITING on lock=java.lang.Object@1b3a3870
at java.lang.Object.wait(Native Method)
at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:568)
"openHAB-job-scheduler_Worker-3" Id=119 in TIMED_WAITING on lock=java.lang.Object@3572a0e4
at java.lang.Object.wait(Native Method)
at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:568)
"openHAB-job-scheduler_Worker-4" Id=120 in TIMED_WAITING on lock=java.lang.Object@65dc4329
at java.lang.Object.wait(Native Method)
at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:568)
"openHAB-job-scheduler_Worker-5" Id=121 in TIMED_WAITING on lock=java.lang.Object@2ec389db
at java.lang.Object.wait(Native Method)
at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:568)
"openHAB-job-scheduler_Worker-6" Id=122 in TIMED_WAITING on lock=java.lang.Object@2da078d2
at java.lang.Object.wait(Native Method)
at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:568)
"openHAB-job-scheduler_Worker-7" Id=123 in TIMED_WAITING on lock=java.lang.Object@7d35b977
at java.lang.Object.wait(Native Method)
at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:568)
"openHAB-job-scheduler_Worker-8" Id=124 in TIMED_WAITING on lock=java.lang.Object@274d9331
at java.lang.Object.wait(Native Method)
at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:568)
"openHAB-job-scheduler_Worker-9" Id=125 in TIMED_WAITING on lock=java.lang.Object@d81dc29
at java.lang.Object.wait(Native Method)
at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:568)
"openHAB-job-scheduler_Worker-10" Id=126 in TIMED_WAITING on lock=java.lang.Object@1a995b98
at java.lang.Object.wait(Native Method)
at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:568)
Or is the threadpool shared with something else (persistance?)?