Recurring OpenHAB crashes

Set-up

  • Platform information:
    • Hardware: RPi4
    • OS: openSUSE Leap 15.3
    • Java Runtime Environment: OpenJDK Runtime Environment Zulu11.48+21-CA (build 11.0.11+9-LTS)
    • openHAB version: 3.3.0 (started occurring with 3.1.0)

Issue

About two months ago OpenHAB started to crash regularly, eventually causing hardware watchdog reboots (I haven’t checked if those are due to the dog not being tickled or high load or what). I have now, as far as I can tell, narrowed down the problem to this:

13:13:15.070 [WARN ] [ommon.WrappedScheduledExecutorService] - Scheduled runnable ended with an exception: 
java.lang.InternalError: a fault occurred in a recent unsafe memory access operation in compiled Java code
        at org.rrd4j.core.RrdPrimitive.writeDouble(RrdPrimitive.java:73) ~[?:?]
        at org.rrd4j.core.RrdDoubleMatrix.set(RrdDoubleMatrix.java:19) ~[?:?]
        at org.rrd4j.core.RobinMatrix.store(RobinMatrix.java:46) ~[?:?]
        at org.rrd4j.core.Archive.finalizeStep(Archive.java:194) ~[?:?]
        at org.rrd4j.core.Archive.archive(Archive.java:139) ~[?:?]
        at org.rrd4j.core.RrdDb.archive(RrdDb.java:1105) ~[?:?]
        at org.rrd4j.core.Datasource.process(Datasource.java:183) ~[?:?]
        at org.rrd4j.core.RrdDb.store(RrdDb.java:976) ~[?:?]
        at org.rrd4j.core.Sample.update(Sample.java:194) ~[?:?]
        at org.openhab.persistence.rrd4j.internal.RRD4jPersistenceService.store(RRD4jPersistenceService.java:198) ~[?:?]
        at org.openhab.core.persistence.internal.PersistItemsJob.run(PersistItemsJob.java:60) ~[?:?]
        at org.openhab.core.internal.scheduler.CronSchedulerImpl.lambda$0(CronSchedulerImpl.java:62) ~[?:?]
        at org.openhab.core.internal.scheduler.CronSchedulerImpl.lambda$1(CronSchedulerImpl.java:69) ~[?:?]
        at org.openhab.core.internal.scheduler.SchedulerImpl.lambda$12(SchedulerImpl.java:191) ~[?:?]
        at org.openhab.core.internal.scheduler.SchedulerImpl.lambda$1(SchedulerImpl.java:88) ~[?:?]
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) ~[?:?]
        at java.util.concurrent.FutureTask.run(FutureTask.java:264) ~[?:?]
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304) ~[?:?]
        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:829) [?:?]

From looking at different instances of the above error, scattered all over the logs, the common denominator seems to be:

at org.openhab.persistence.rrd4j.internal.RRD4jPersistenceService.store(RRD4jPersistenceService.java:198)

This was occurring with 3.1.x, but after upgrading to the 3.3.0 RPM today, I still see these crashes (even though they don’t seem to have caused a watchdog reboot yet).

I have discarded SD card or memory issues by cloning the card and running it on a different RPi4 unit.

Any ideas?

It’s a java-internal memory access error I’ve never seen before.
If I was to guess it’s because of your OS/Java combo, you’re probably the only person to have ever used that. I suggest you move to openHABian instead.