Does the RRD4J persistence service have a limit on the number of items?

Hello,
does the RRD4J persistence service have a limit on the number of items?

Openhab runs stably and reliably with approx. 1490 items. I use MapDB and RRD4J as persists.

Little by little, I add more items via “Add elements from text definition” in order to be able to fully configure and control my heating controller.

During the import of the items, openhab completely crashes and restarts. The items were then only partially imported. I’m then at about ~1495-1500 items.

A fatal error has been detected by the Java Runtime Environment:

SIGBUS (0x7) at pc=0x0000007f85396384, pid=1034280, tid=1040900

JRE version: OpenJDK Runtime Environment (11.0.16+8) (build 11.0.16+8-post-Debian-1deb11u1)

Java VM: OpenJDK 64-Bit Server VM (11.0.16+8-post-Debian-1deb11u1, mixed mode, tiered, compressed oops, g1 gc, linux-aarch64)

Problematic frame:

V [libjvm.so+0x52a384]

No core dump will be written. Core dumps have been disabled. To enable core dumping, try “ulimit -c unlimited” before starting Java again

If you would like to submit a bug report, please visit:

https://bugs.debian.org/openjdk-11

--------------- S U M M A R Y ------------

Command Line: -XX:-UsePerfData -Dopenhab.home=/usr/share/openhab -Dopenhab.conf=/etc/openhab -Dopenhab.runtime=/usr/share/openhab/runtime -Dopenhab.userdata=/var/lib/openhab -Dopenhab.logdir=/var/log/openhab -Dfelix.cm.dir=/var/lib/openhab/config -Djava.library.path=/var/lib/openhab/tmp/lib -Djetty.host=0.0.0.0 -Djetty.http.compliance=RFC2616 -Dnashorn.args=–no-deprecation-warning -Dorg.apache.cxf.osgi.http.transport.disable=true -Dorg.ops4j.pax.web.listening.addresses=0.0.0.0 -Dorg.osgi.service.http.port=8080 -Dorg.osgi.service.http.port.secure=8443 -Djava.awt.headless=true -Dfile.encoding=UTF-8 -XX:+ExitOnOutOfMemoryError --add-reads=java.xml=java.logging --add-exports=java.base/org.apache.karaf.specs.locator=java.xml,ALL-UNNAMED --patch-module=java.base=/usr/share/openhab/runtime/lib/endorsed/org.apache.karaf.specs.locator-4.3.7.jar --patch-module=java.xml=/usr/share/openhab/runtime/lib/endorsed/org.apache.karaf.specs.java.xml-4.3.7.jar --add-opens=java.base/java.security=ALL-UNNAMED --add-opens=java.base/java.net=ALL-UNNAMED --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.naming/javax.naming.spi=ALL-UNNAMED --add-opens=java.rmi/sun.rmi.transport.tcp=ALL-UNNAMED --add-opens=java.base/java.io=ALL-UNNAMED --add-opens=java.base/java.lang.reflect=ALL-UNNAMED --add-opens=java.base/java.text=ALL-UNNAMED --add-opens=java.base/java.time=ALL-UNNAMED --add-opens=java.desktop/java.awt.font=ALL-UNNAMED --add-exports=java.base/sun.net.www.protocol.file=ALL-UNNAMED --add-exports=java.base/sun.net.www.protocol.ftp=ALL-UNNAMED --add-exports=java.base/sun.net.www.protocol.http=ALL-UNNAMED --add-exports=java.base/sun.net.www.protocol.https=ALL-UNNAMED --add-exports=java.base/sun.net.www.protocol.jar=ALL-UNNAMED --add-exports=java.base/sun.net.www.content.text=ALL-UNNAMED --add-exports=jdk.xml.dom/org.w3c.dom.html=ALL-UNNAMED --add-exports=jdk.naming.rmi/com.sun.jndi.url.rmi=ALL-UNNAMED --add-exports=java.rmi/sun.rmi.registry=ALL-UNNAMED --add-exports=java.security.sasl/com.sun.security.sasl=ALL-UNNAMED -Dkaraf.instances=/var/lib/openhab/tmp/instances -Dkaraf.home=/usr/share/openhab/runtime -Dkaraf.base=/var/lib/openhab -Dkaraf.data=/var/lib/openhab -Dkaraf.etc=/var/lib/openhab/etc -Dkaraf.log=/var/log/openhab -Dkaraf.restart.jvm.supported=true -Djava.io.tmpdir=/var/lib/openhab/tmp -Djava.util.logging.config.file=/var/lib/openhab/etc/java.util.logging.properties -Dkaraf.startLocalConsole=false -Dkaraf.startRemoteShell=true org.apache.karaf.main.Main

Host: AArch64, 4 cores, 7G, Debian GNU/Linux 11 (bullseye)
Time: Thu Nov 3 16:32:32 2022 CET elapsed time: 1884.342802 seconds (0d 0h 31m 24s)

--------------- T H R E A D ---------------

Current thread (0x0000007f302ad800): JavaThread “OH-safeCall-9” [_thread_in_vm, id=1040900, stack(0x0000007ea35e1000,0x0000007ea37e1000)]

Stack: [0x0000007ea35e1000,0x0000007ea37e1000], sp=0x0000007ea37de720, free space=2037k
Native frames: (J=compiled Java code, A=aot compiled Java code, j=interpreted, Vv=VM code, C=native code)
V [libjvm.so+0x52a384]
V [libjvm.so+0xc66e18]
J 32293 jdk.internal.misc.Unsafe.copySwapMemory0(Ljava/lang/Object;JLjava/lang/Object;JJJ)V java.base@11.0.16 (0 bytes) @ 0x0000007f70cff45c [0x0000007f70cff3c0+0x000000000000009c]
C 0x0000000000000000

Java frames: (J=compiled Java code, j=interpreted, Vv=VM code)
J 32293 jdk.internal.misc.Unsafe.copySwapMemory0(Ljava/lang/Object;JLjava/lang/Object;JJJ)V java.base@11.0.16 (0 bytes) @ 0x0000007f70cff460 [0x0000007f70cff3c0+0x00000000000000a0]
J 39780 c1 jdk.internal.misc.Unsafe.copySwapMemory(Ljava/lang/Object;JLjava/lang/Object;JJJ)V java.base@11.0.16 (37 bytes) @ 0x0000007f6a21b258 [0x0000007f6a21b100+0x0000000000000158]
j java.nio.DirectDoubleBufferS.put([DII)Ljava/nio/DoubleBuffer;+123 java.base@11.0.16
j org.rrd4j.core.ByteBufferBackend.writeDouble(JDI)V+39
J 31174 c1 org.rrd4j.core.RrdDoubleMatrix.(Lorg/rrd4j/core/RrdUpdater;IIZ)V (43 bytes) @ 0x0000007f6b71b04c [0x0000007f6b71af40+0x000000000000010c]
J 47918 c1 org.rrd4j.core.Archive.(Lorg/rrd4j/core/RrdDb;Lorg/rrd4j/core/ArcDef;)V (354 bytes) @ 0x0000007f6caad360 [0x0000007f6caabd00+0x0000000000001660]
j org.rrd4j.core.RrdDb.(Lorg/rrd4j/core/RrdDef;Lorg/rrd4j/core/RrdBackendFactory;Lorg/rrd4j/core/RrdDbPool;)V+202
J 41669 c1 org.openhab.persistence.rrd4j.internal.RRD4jPersistenceService.getDB(Ljava/lang/String;)Lorg/rrd4j/core/RrdDb; (175 bytes) @ 0x0000007f6c3c5f5c [0x0000007f6c3c5380+0x0000000000000bdc]
J 43109 c1 org.openhab.persistence.rrd4j.internal.RRD4jPersistenceService.query(Lorg/openhab/core/persistence/FilterCriteria;)Ljava/lang/Iterable; (452 bytes) @ 0x0000007f69257ed4 [0x0000007f69257e00+0x00000000000000d4]
j jdk.internal.reflect.GeneratedMethodAccessor76.invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;+40
J 10415 c2 jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object; java.base@11.0.16 (10 bytes) @ 0x0000007f708c510c [0x0000007f708c50c0+0x000000000000004c]
J 32273 c1 org.openhab.core.internal.common.AbstractInvocationHandler.invokeDirect(Lorg/openhab/core/internal/common/Invocation;)Ljava/lang/Object; (81 bytes) @ 0x0000007f6b89a700 [0x0000007f6b89a580+0x0000000000000180]
J 32207 c1 org.openhab.core.internal.common.Invocation.call()Ljava/lang/Object; (16 bytes) @ 0x0000007f6b87e374 [0x0000007f6b87e2c0+0x00000000000000b4]
J 33564 c2 java.util.concurrent.FutureTask.run()V java.base@11.0.16 (123 bytes) @ 0x0000007f70d5e094 [0x0000007f70d5de00+0x0000000000000294]
J 45681 c2 java.util.concurrent.ThreadPoolExecutor.runWorker(Ljava/util/concurrent/ThreadPoolExecutor$Worker;)V java.base@11.0.16 (187 bytes) @ 0x0000007f71317580 [0x0000007f71317400+0x0000000000000180]
J 37790 c1 java.util.concurrent.ThreadPoolExecutor$Worker.run()V java.base@11.0.16 (9 bytes) @ 0x0000007f6a9f8c4c [0x0000007f6a9f8bc0+0x000000000000008c]
J 6952 c1 java.lang.Thread.run()V java.base@11.0.16 (17 bytes) @ 0x0000007f69fcc1a4 [0x0000007f69fcc040+0x0000000000000164]
v ~StubRoutines::call_stub

siginfo: si_signo: 7 (SIGBUS), si_code: 2 (BUS_ADRERR), si_addr: 0x0000007ee54fc000

Complete Crash-Reports:
hs_err_pid331673.log (242.8 KB)
hs_err_pid1034280.log (264.8 KB)

I can then continue to import individual items, but the following entry appears in the log file for each new item:

2022-11-03 17:18:02.150 [ERROR] [nal.common.AbstractInvocationHandler] - An error occurred while calling method ‘QueryablePersistenceService.query()’ on ‘org.openhab.persistence.rrd4j.internal.RRD4jPersistenceService@17dc802’: a fault occurred in a recent unsafe memory access operation in compiled Java code

java.lang.InternalError: a fault occurred in a recent unsafe memory access operation in compiled Java code

at org.rrd4j.core.Header.(Header.java:54) ~[?:?]

at org.rrd4j.core.RrdDb.(RrdDb.java:471) ~[?:?]

at org.rrd4j.core.RrdDb.of(RrdDb.java:417) ~[?:?]

at org.openhab.persistence.rrd4j.internal.RRD4jPersistenceService.getDB(RRD4jPersistenceService.java:331) ~[?:?]

at org.openhab.persistence.rrd4j.internal.RRD4jPersistenceService.query(RRD4jPersistenceService.java:235) ~[?:?]

at jdk.internal.reflect.GeneratedMethodAccessor72.invoke(Unknown Source) ~[?:?]

at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]

at java.lang.reflect.Method.invoke(Method.java:566) ~[?:?]

at org.openhab.core.internal.common.AbstractInvocationHandler.invokeDirect(AbstractInvocationHandler.java:154) [bundleFile:?]

at org.openhab.core.internal.common.Invocation.call(Invocation.java:52) [bundleFile:?]

at java.util.concurrent.FutureTask.run(FutureTask.java:264) [?:?]

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) [?:?]

2022-11-03 17:18:02.162 [ERROR] [ence.internal.PersistenceManagerImpl] - Exception occurred while querying persistence service ‘rrd4j’: a fault occurred in a recent unsafe memory access operation in compiled Java code

java.lang.InternalError: a fault occurred in a recent unsafe memory access operation in compiled Java code

at org.rrd4j.core.Header.(Header.java:54) ~[?:?]

at org.rrd4j.core.RrdDb.(RrdDb.java:471) ~[?:?]

at org.rrd4j.core.RrdDb.of(RrdDb.java:417) ~[?:?]

at org.openhab.persistence.rrd4j.internal.RRD4jPersistenceService.getDB(RRD4jPersistenceService.java:331) ~[?:?]

at org.openhab.persistence.rrd4j.internal.RRD4jPersistenceService.query(RRD4jPersistenceService.java:235) ~[?:?]

at jdk.internal.reflect.GeneratedMethodAccessor72.invoke(Unknown Source) ~[?:?]

at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]

at java.lang.reflect.Method.invoke(Method.java:566) ~[?:?]

at org.openhab.core.internal.common.AbstractInvocationHandler.invokeDirect(AbstractInvocationHandler.java:154) [bundleFile:?]

at org.openhab.core.internal.common.Invocation.call(Invocation.java:52) [bundleFile:?]

at java.util.concurrent.FutureTask.run(FutureTask.java:264) [?:?]

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) [?:?]

And with many of the most recently imported and newly created items, these errors appear in the logbook cyclically or when the value changes - as specified in the persistence configuration - although the database file is created and also values:

2022-11-03 17:18:02.335 [ERROR] [d4j.internal.RRD4jPersistenceService] - Could not create rrd4j database file ‘/var/lib/openhab/persistence/rrd4j/Configuration_Heating Controller_Kitchen_Window Contact.rrd’: Invalid file header. File [/var/lib/openhab/persistence/rrd4j/Configuration_heating controller_kitchen_window contact.rrd] is not a RRD4J RRD file

If the values ​​of the added items are changed, you can see the following logbook entries, for example:

2022-11-03 17:38:55.043 [ERROR] [d4j.internal.RRD4jPersistenceService] - Could not create rrd4j database file ‘/var/lib/openhab/persistence/rrd4j/Configuration_Heating Controller_Kitchen_Von_Monat_Aus.rrd’: Invalid file header. File [/var/lib/openhab/persistence/rrd4j/Configuration_Heating Controller_Kitchen_Von_Monat_Aus.rrd] is not a RRD4J RRD file

2022-11-03 17:38:47.264 [WARN ] [org.openhab.core.items.GenericItem ] - failed notifying listener ‘org.openhab.core.persistence.internal.PersistenceManagerImpl@18b06f2b’ about state update of item Configuration_heating controller_kitchen_holiday_sunday: Null consolidation function specified
java.lang.IllegalArgumentException: Null consolidation function specified
at org.rrd4j.core.ArcDef.(ArcDef.java:43) ~[?:?]
at org.rrd4j.core.RrdDb.getRrdDef(RrdDb.java:1288) ~[?:?]
at org.openhab.persistence.rrd4j.internal.RRD4jPersistenceService.getConsolidationFunction(RRD4jPersistenceService.java:397) ~[?:?]
at org.openhab.persistence.rrd4j.internal.RRD4jPersistenceService.store(RRD4jPersistenceService.java:142) ~[?:?]
at org.openhab.core.persistence.internal.PersistenceManagerImpl.handleStateEvent(PersistenceManagerImpl.java:152) ~[?:?]
at org.openhab.core.persistence.internal.PersistenceManagerImpl.stateChanged(PersistenceManagerImpl.java:473) ~[?:?]
at org.openhab.core.items.GenericItem.lambda$1(GenericItem.java:259) ~[?:?]
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) [?:?]
2022-11-03 17:38:47.731 [WARN ] [org.openhab.core.items.GenericItem ] - failed notifying listener ‘org.openhab.core.persistence.internal.PersistenceManagerImpl@18b06f2b’ about state update of item Configuration_heating controller_kitchen_holiday_sunday: Null consolidation function specified
java.lang.IllegalArgumentException: Null consolidation function specified
at org.rrd4j.core.ArcDef.(ArcDef.java:43) ~[?:?]
at org.rrd4j.core.RrdDb.getRrdDef(RrdDb.java:1288) ~[?:?]
at org.openhab.persistence.rrd4j.internal.RRD4jPersistenceService.getConsolidationFunction(RRD4jPersistenceService.java:397) ~[?:?]
at org.openhab.persistence.rrd4j.internal.RRD4jPersistenceService.store(RRD4jPersistenceService.java:142) ~[?:?]
at org.openhab.core.persistence.internal.PersistenceManagerImpl.handleStateEvent(PersistenceManagerImpl.java:152) ~[?:?]
at org.openhab.core.persistence.internal.PersistenceManagerImpl.stateChanged(PersistenceManagerImpl.java:473) ~[?:?]
at org.openhab.core.items.GenericItem.lambda$1(GenericItem.java:259) ~[?:?]
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) [?:?]

If a certain number of the items created last is deleted, everything is error-free again!

-Openhab 3.4M3 has the same problem.
-Restarting the system doesn’t change anything either.
-There are no permission problems or file system errors.
-When I import the last imported ~22 items to a fresh system with 0 items there are no crashes or errors!

So there must be a problem with the number of items and/or RRD4J persistence items?

Can someone confirm or understand this?

Please use code fences. It’s really hard to tell the difference between what you are copying and what you are writing.

```
code/logs/configs go here
```

A SIGBUS error though is happening at the OS kernel level and not rrd4j nor openHAB level. The JVM is trying to do something (e.g. access memory it’s not allocated) and the kernel is smacking it down, as it should.

The first thing I would try, assuming that you’ve ruled out problems with your RAM, is running OH with a different JVM from a different vendor (e.g. Azul or Adopt).

This is a bug in the JVM and not something you have influence over in your config.

Double check your file system to see that it’s not full and look in your syslog for inode errors to make sure you don’t have too many files open at once. Each Item gets its own rrd4j file. But if it’s running into a segfault in the rrd4j code, I bet that any files it’s tried to create or modify may have become corrupted.

That’s probably because OH is no longer attempting to open and write to these corrupted files. Before recreating the Items, remove the files from `$OH_USERDATA/persistence/rrd4j (the file will have the same name as the Item) that are causing trouble. That will force OH to recreate those files and, assuming there isn’t another segfault, the new one won’t be corrupted.

Given the number of Items you have here, it might be worth creating a custom .persist file at least for rrd4j to only persist those Items you care about. That’s a ton of writes going on and I’d bet a good quarter to half are useless and unnecessary.

Hello,
and Thank you for your support and explanations.

Sorry, I hope my post is easier to read now :wink:

After I switched to Zulu 11 OpenJDK 64-bit instead of OpenJDK 11 64-bit, Openhab no longer crashed/rebooted when importing the items.
However, the errors in the log file remained the same even though I deleted the RRD4J files and these were recreated by Openhab.

2022-11-03 17:38:55.043 [ERROR] [d4j.internal.RRD4jPersistenceService] - Could not create rrd4j database file ‘/var/lib/openhab/persistence/rrd4j/Configuration_Heating Controller_Kitchen_Von_Monat_Aus.rrd’: Invalid file header. File [/var/lib/openhab/persistence/rrd4j/Configuration_Heating Controller_Kitchen_Von_Monat_Aus.rrd] is not a RRD4J RRD file

I checked all memory with Memtester, everything is 100% error free.
I turned off ZRAM to rule that out as well.

You’re right that I have too many RRD4J files, which I’ve noticed myself, but I’ve been trying to reduce them for a long time, which I haven’t really been able to do as it seems.

I have set as default persistence: MapDB and also in the
mapdb.persist the group: Konfiguration - to which I import my new items - is specified.
However, Openhab still creates an RRD4J file again and again, which I don’t understand.
However, the set value of the item is also saved in the MapDB, because the set value is still available after deleting the RRD4J files and restarting Openhab.

File: mapdb.persist:

Strategies {
  default = everyUpdate
}

Items {
  Konfiguration* : strategy = everyChange, restoreOnStartup
  Abfall* : strategy = everyChange, restoreOnStartup
  Alarmanlage* : strategy = everyChange, restoreOnStartup
  Astro* : strategy = everyChange, restoreOnStartup
  Zeitsteuerungen* : strategy = everyChange, restoreOnStartup
  Anzeigemodis* : strategy = everyChange
  Benachrichtigung* : strategy = everyChange
  Manuell* : strategy = everyChange
  WerIstZuHause* : strategy = everyChange
  Device_Status* : strategy = everyChange
  FritzBox* : strategy = everyChange
  HikvisionCamerawithAPI* : strategy = everyChange
  Touchmonitor* : strategy = everyChange
  Rollladenverlauf* : strategy = everyChange, restoreOnStartup
  Klingel* : strategy = everyChange, restoreOnStartup
}

Imported items with “Add Items from Textual Definition”

Switch Konfiguration_Heizungsregler_BadUnten_Automatik "Konfiguration Heizungsregler Bad Unten Automatik" <switch> (Konfiguration)
Switch Konfiguration_Heizungsregler_BadUnten_Feiertag_Sonntag "Konfiguration Heizungsregler Bad Unten Feiertag Sonntag" <switch> (Konfiguration)
Switch Konfiguration_Heizungsregler_BadUnten_Heizen_Beendet_Automatik "Konfiguration Heizungsregler Bad Unten Heizen Beendet Automatik" <Switch> (Konfiguration)
Switch Konfiguration_Heizungsregler_BadUnten_Fensterkontakt "Konfiguration Heizungsregler Bad Unten Fensterkontakt" <switch> (Konfiguration)
Number Konfiguration_Heizungsregler_BadUnten_Von_Tag_Aus "Konfiguration Heizungsregler Bad Unten Von Tag Aus" <calendar> (Konfiguration)
Number Konfiguration_Heizungsregler_BadUnten_Von_Tag_An "Konfiguration Heizungsregler Bad Unten Von Tag An" <calendar> (Konfiguration)
Number Konfiguration_Heizungsregler_BadUnten_Von_Monat_Aus "Konfiguration Heizungsregler Bad Unten Von Monat Aus" <calendar> (Konfiguration)
Number Konfiguration_Heizungsregler_BadUnten_Von_Monat_An "Konfiguration Heizungsregler Bad Unten Von Monat An" <calendar> (Konfiguration)
Number Konfiguration_Heizungsregler_BadUnten_MoFr_Absenk_Minute "Konfiguration Heizungsregler Bad Unten MoFr Absenk Minute" <time> (Konfiguration)
Number Konfiguration_Heizungsregler_BadUnten_MoFr_Absenk_Stunde "Konfiguration Heizungsregler Bad Unten MoFr Absenk Stunde" <time> (Konfiguration)
Number Konfiguration_Heizungsregler_BadUnten_MoFr_Comfort_Minute "Konfiguration Heizungsregler Bad Unten MoFr Comfort Minute" <time> (Konfiguration)
Number Konfiguration_Heizungsregler_BadUnten_MoFr_Comfort_Stunde "Konfiguration Heizungsregler Bad Unten MoFr Comfort Stunde" <time> (Konfiguration)
Number Konfiguration_Heizungsregler_BadUnten_Sa_Absenk_Minute "Konfiguration Heizungsregler Bad Unten Sa Absenk Minute" <time> (Konfiguration)
Number Konfiguration_Heizungsregler_BadUnten_Sa_Absenk_Stunde "Konfiguration Heizungsregler Bad Unten Sa Absenk Stunde" <time> (Konfiguration)
Number Konfiguration_Heizungsregler_BadUnten_Sa_Comfort_Minute "Konfiguration Heizungsregler Bad Unten Sa Comfort Minute" <time> (Konfiguration)
Number Konfiguration_Heizungsregler_BadUnten_Sa_Comfort_Stunde "Konfiguration Heizungsregler Bad Unten Sa Comfort Stunde" <time> (Konfiguration)
Number Konfiguration_Heizungsregler_BadUnten_So_Absenk_Minute "Konfiguration Heizungsregler Bad Unten So Absenk Minute" <time> (Konfiguration)
Number Konfiguration_Heizungsregler_BadUnten_So_Absenk_Stunde "Konfiguration Heizungsregler Bad Unten So Absenk Stunde" <time> (Konfiguration)
Number Konfiguration_Heizungsregler_BadUnten_So_Comfort_Minute "Konfiguration Heizungsregler Bad Unten So Comfort Minute" <time> (Konfiguration)
Number Konfiguration_Heizungsregler_BadUnten_So_Comfort_Stunde "Konfiguration Heizungsregler Bad Unten So Comfort Stunde" <time> (Konfiguration)
Number Konfiguration_Heizungsregler_BadUnten_Urlaubsmodus "Konfiguration Heizungsregler Bad Unten Urlaubsmodus" <settings> (Konfiguration)
Number Manuell_Radiator_Mode_BadUnten_Gespeichert "Manuell Radiator Mode Bad Unten Gespeichert" <settings> (Manuell)
Number Manuell_Radiator_Temp_BadUnten_Gespeichert "Manuell Radiator Temp Bad Unten Gespeichert" <settings> (Manuell)```

Questions:
1.I don't understand why this is so and I think this is where the problem lies?
2.How can I ensure that Openhab does not create RRD4J files and only uses MapDB?
3.I use Openhabian, can I, if necessary, for the user: Openhab with which Openhab is started? Possibly increase a limit on the number of open files in order to at least temporarily get my problem under control if necessary?

Thanks again for your help.

Hi,
short info.

I tested a few things and restarted the system several times.
Linux and the kernel have also been updated.

Currently I can import and use my items without errors/crashes etc. again.

However, the problem that I currently 1520 items and 1130 RRD4J files were created, although I have configured it to my understanding that he should please store them in the persistent MapDB and not RRD4J.

There appears to be a whitespace character in that filename. Anything funny about your Item names, national character or suchlike?

Hello,

no, the items or the resulting RRD4J files do not contain any spaces, special characters, umlauts, etc.

Such JVM crashes may be fixed in newer Java versions like Java 17.

See:

  1. Which “this” do you not understand? There are several issues here.

  2. MapDB and rrd4j are completely independent. Nothing you do in mapsb.persist will change the behavior of rrd4j in the slightest. If you want to liking which items are saved by rrd4j, you need to create an rrd4j.persist.

  3. No, it’s not a per user thing. The kernel will only allow so many open files at the same time. Search for “increase number of open files Linux” and you should find some seeing it a command to change the limit p for the whole machine.

Sorry and yes I got it.
Sometimes I’m just slow on the uptake :wink:

I was a bit misled by the default persists setting in openhab.

Despite the missing RRD4J.persist and currently 1194 RRD files, I can currently work as usual and without errors. I didn’t actually change anything significant, except on JVM Azul Zulu11.60+19-CA
to switch and update the system and reboot.

But I just created an RRD4J.persist to significantly reduce the number of RRD files.

The Java error can still strike at any time because this error was only fixed from Java 13.0.9.

https://bugs.java.com/bugdatabase/view_bug.do?bug_id=JDK-8191278

And since all my rules are written with ECMA 262 Edition 5.1, I can’t update to Java 17 either, because Java 17 will no longer support them.

Thanks for your support :grinning:

There’s this add-on which helps with that: