System Crash

  • Platform information:
    • Hardware: RPi 4
    • OS: openhabian 3
    • Java 11
    • openHAB version: 3

I have setup a simple system set up using a Raspberry Pi 4 and two NodeMCUs (ESP8266) connected over a WLAN to measure temperatures (see figure).
I also prepared a Homatic-binding, but no devices are configured.

Additionally, I supervise the network connection to the NodeMCUs and I am supervising the RPi.
In order to determine the CPU-load and the CPU-temperature I execute two different scripts using the exec-binding ever 10 seconds. The systeminfo-binding does not support the CPU-load for the Raspberry.

CPULoad.py

#!/usr/bin/env python
import psutil

value = psutil.cpu_percent(interval=1)
print value

CPU_temp.sh

#! /bin/bash
INPUT=$(/bin/cat /sys/class/thermal/thermal_zone0/temp)
TEMP=$(echo "scale=2; $INPUT / 1000 " | bc)
echo $TEMP

I convert the strings of the scripts into numbers in order to be able to get a graph in openHAB display by an openHAB-rule.

Rule to convert CPU-load:

triggers:
  - id: "1"
    configuration:
      itemName: CPULoad_Ruckgabewert
    type: core.ItemStateUpdateTrigger
conditions: []
actions:
  - inputs: {}
    id: "2"
    configuration:
      type: application/vnd.openhab.dsl.rule
      script: ">-
        CPULoad_Number.postUpdate(Float::parseFloat(String::format(\"%s",CPULoad_Ruckgabewert.state)))

        logInfo(\"Rule\", \"CPULoad_Number: \" + CPULoad_Number.state)
        \ \ 

        \ "

Rule to convert CPU-temperature:

triggers:
  - id: "1"
    configuration:
      itemName: CPUTemperature_Ruckgabewert
    type: core.ItemStateUpdateTrigger
conditions: []
actions:
  - inputs: {}
    id: "2"
    configuration:
      type: application/vnd.openhab.dsl.rule
      script: >-
        CPUTemperature_Number.postUpdate(Float::parseFloat(String::format("%s",CPUTemperature_Ruckgabewert.state)))  

        logInfo("Rule", "CPUTemperature_Number: " + CPUTemperature_Number.state)
        \ \ 
 
        \ "

All measurements send an update every 10 seconds.
It all works all very well, but after a few hours openHAB gets some problems, which end up in an exeption (06:15:16).

openHAB.log>

2021-01-12 05:52:38.602 [WARN ] [ab.core.internal.events.EventHandler] - Dispatching event to subscriber 'org.openhab.core.internal.items.ItemUpdater@1d4e56$
2021-01-12 05:52:57.431 [WARN ] [ab.core.internal.events.EventHandler] - Dispatching event to subscriber 'org.openhab.core.io.monitor.internal.EventLogger@1$
2021-01-12 06:01:39.692 [WARN ] [ab.core.internal.events.EventHandler] - Dispatching event to subscriber 'org.openhab.core.internal.items.ItemUpdater@1d4e56$
2021-01-12 06:02:23.064 [ERROR] [d4j.internal.RRD4jPersistenceService] - Could not create rrd4j database file '/var/lib/openhab/persistence/rrd4j/ESPEasy1_E$
2021-01-12 06:04:29.464 [WARN ] [ab.core.internal.events.EventHandler] - Dispatching event to subscriber 'org.openhab.core.internal.items.ItemUpdater@1d4e56$
2021-01-12 06:04:51.211 [WARN ] [ab.core.internal.events.EventHandler] - Dispatching event to subscriber 'org.openhab.core.internal.items.ItemUpdater@1d4e56$
2021-01-12 06:05:17.234 [WARN ] [ab.core.internal.events.EventHandler] - Dispatching event to subscriber 'org.openhab.core.internal.items.ItemUpdater@1d4e56$
2021-01-12 06:07:40.790 [WARN ] [ab.core.internal.events.EventHandler] - Dispatching event to subscriber 'org.openhab.core.internal.items.ItemUpdater@1d4e56$
2021-01-12 06:07:46.272 [WARN ] [ab.core.internal.events.EventHandler] - Dispatching event to subscriber 'org.openhab.core.internal.items.ItemUpdater@1d4e56$
2021-01-12 06:08:04.947 [WARN ] [ab.core.internal.events.EventHandler] - Dispatching event to subscriber 'org.openhab.core.internal.items.ItemUpdater@1d4e56$
2021-01-12 06:09:40.440 [WARN ] [ab.core.internal.events.EventHandler] - Dispatching event to subscriber 'org.openhab.core.internal.items.ItemUpdater@1d4e56$
2021-01-12 06:09:53.402 [WARN ] [ab.core.internal.events.EventHandler] - Dispatching event to subscriber 'org.openhab.core.internal.items.ItemUpdater@1d4e56$
2021-01-12 06:12:00.352 [WARN ] [ab.core.internal.events.EventHandler] - Dispatching event to subscriber 'org.openhab.core.internal.items.ItemUpdater@1d4e56$
2021-01-12 06:12:17.755 [WARN ] [ab.core.internal.events.EventHandler] - Dispatching event to subscriber 'org.openhab.core.internal.items.ItemUpdater@1d4e56$
2021-01-12 06:12:30.747 [WARN ] [ab.core.internal.events.EventHandler] - Dispatching event to subscriber 'org.openhab.core.internal.items.ItemUpdater@1d4e56$
2021-01-12 06:12:39.403 [WARN ] [ab.core.internal.events.EventHandler] - Dispatching event to subscriber 'org.openhab.core.internal.items.ItemUpdater@1d4e56$
2021-01-12 06:12:52.417 [WARN ] [ab.core.internal.events.EventHandler] - Dispatching event to subscriber 'org.openhab.core.internal.items.ItemUpdater@1d4e56$
2021-01-12 06:13:41.078 [WARN ] [ab.core.internal.events.EventHandler] - Dispatching event to subscriber 'org.openhab.core.internal.items.ItemUpdater@1d4e56$
2021-01-12 06:13:54.166 [WARN ] [ab.core.internal.events.EventHandler] - Dispatching event to subscriber 'org.openhab.core.internal.items.ItemUpdater@1d4e56$
2021-01-12 06:14:11.465 [WARN ] [ab.core.internal.events.EventHandler] - Dispatching event to subscriber 'org.openhab.core.internal.items.ItemUpdater@1d4e56$
2021-01-12 06:14:28.780 [WARN ] [ab.core.internal.events.EventHandler] - Dispatching event to subscriber 'org.openhab.core.internal.items.ItemUpdater@1d4e56$
2021-01-12 06:15:07.896 [WARN ] [ab.core.internal.events.EventHandler] - Dispatching event to subscriber 'org.openhab.core.internal.items.ItemUpdater@1d4e56$
2021-01-12 06:15:30.873 [WARN ] [ab.core.internal.events.EventHandler] - Dispatching event to subscriber 'org.openhab.core.internal.items.ItemUpdater@1d4e56$
2021-01-12 06:16:35.404 [WARN ] [ab.core.internal.events.EventHandler] - Dispatching event to subscriber 'org.openhab.core.internal.items.ItemUpdater@1d4e56$
2021-01-12 06:15:16.563 [WARN ] [mmon.WrappedScheduledExecutorService] - Scheduled runnable ended with an exception:
java.util.concurrent.RejectedExecutionException: Task org.openhab.binding.network.internal.PresenceDetection$$Lambda$973/0x977f9228@605303 rejected from jav$
        at java.util.concurrent.ThreadPoolExecutor$AbortPolicy.rejectedExecution(ThreadPoolExecutor.java:2055) ~[?:?]
        at java.util.concurrent.ThreadPoolExecutor.reject(ThreadPoolExecutor.java:825) ~[?:?]
        at java.util.concurrent.ThreadPoolExecutor.execute(ThreadPoolExecutor.java:1355) ~[?:?]
        at org.openhab.binding.network.internal.PresenceDetection.performPresenceDetection(PresenceDetection.java:362) ~[?:?]
        at org.openhab.binding.network.internal.PresenceDetection.lambda$10(PresenceDetection.java:605) ~[?:?]
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) ~[?:?]
        at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:305) ~[?:?]
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:305) ~[?:?]
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) [?:?]
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) [?:?]
        at java.lang.Thread.run(Thread.java:834) [?:?]
2021-01-12 06:17:05.935 [WARN ] [ab.core.internal.events.EventHandler] - Dispatching event to subscriber 'org.openhab.core.internal.items.ItemUpdater@1d4e56$
2021-01-12 06:17:54.493 [WARN ] [ab.core.internal.events.EventHandler] - Dispatching event to subscriber 'org.openhab.core.internal.items.ItemUpdater@1d4e56$
2021-01-12 06:18:08.565 [INFO ] [.reconnect.PeriodicReconnectStrategy] - Try to restore connection to 'localhost'. Next attempt in 60ms
2021-01-12 06:18:17.224 [WARN ] [ab.core.internal.events.EventHandler] - Dispatching event to subscriber 'org.openhab.core.internal.items.ItemUpdater@1d4e56$
2021-01-12 06:18:59.839 [WARN ] [ab.core.internal.events.EventHandler] - Dispatching event to subscriber 'org.openhab.core.io.monitor.internal.EventLogger@1$
2021-01-12 06:19:26.957 [WARN ] [ab.core.internal.events.EventHandler] - Dispatching event to subscriber 'org.openhab.core.internal.items.ItemUpdater@1d4e56$
2021-01-12 06:19:35.794 [WARN ] [ab.core.internal.events.EventHandler] - Dispatching event to subscriber 'org.openhab.core.thing.internal.CommunicationManag$

First, I thought of some memory leak, but I could not find a major evidence in TOP:
The used memory increases, but levels around 700 MByte.

Has anyone some ideas, what the root cause for the JAVA exception could be?

what behaviour ?

How to ask a good question / Help Us Help You - Tutorials & Examples - openHAB Community

The error seems to be related to something else? “binding.network.internal.PresenceDetection

Thanks for the hint!

I use the network binding to ping the two NodeMCUs every 10 s. This is quite straight forward.

OK, with behavior I meant the JAVA exeption.

Can give me anyone a hint or a solution how to avoid the JAVA exception?

I browsed through other posts and I found a quit similar problem ([OH3] Dispatching event to subscriber ItemUpdater).

The first problems there also seem to be the dispatching warnings. Maybe the JAVA-exception is just consequence.

I thing this failure is one time and comes back more and more and more and at a point openhab stopps working. I’m not really sure where this comes from. With fresh startet system, there are no problems. It’s happend if i use UI oder Basic UI… That is a feeling what i have not a really reproduce able event. Then some http devices starts with no connection… I don’t have any answer yet. No one can help me.

The problem is solved. It is related to a problem in the DSL-rules (DSL-rules via UI cause "out of memory" errors (java heap space) · Issue #2031 · openhab/openhab-core · GitHub).

Thanks for your support.

Make an update via snapshot… Seems event issues are gone and the system is fast as hell after 24h.