Seite 1 von 1

Warnmeldung im log - persistence?

Verfasst: 5. Apr 2024 14:29
von DHog
Hallo, ich habe OH3.2 auf einem raspi und bekomme für mehrere (wenige) items solche log-Einträge. Kann mir hier jemand helfen?

Code: Alles auswählen

2024-04-05 14:23:07.067 [WARN ] [org.openhab.core.items.GenericItem  ] - failed notifying listener 'org.openhab.core.persistence.internal.PersistenceManagerImpl@15237b9' about state update of item KU_Motion: 6621
java.lang.IndexOutOfBoundsException: 6621
	at java.nio.HeapByteBuffer.get(HeapByteBuffer.java:169) ~[?:?]
	at org.mapdb.DataInput2.readUnsignedByte(DataInput2.java:74) ~[?:?]
	at org.mapdb.DataInput2.unpackInt(DataInput2.java:184) ~[?:?]
	at org.mapdb.SerializerBase.deserializeString(SerializerBase.java:858) ~[?:?]
	at org.mapdb.SerializerBase.deserialize(SerializerBase.java:1094) ~[?:?]
	at org.mapdb.SerializerBase.deserialize(SerializerBase.java:867) ~[?:?]
	at org.mapdb.SerializerPojo.deserialize(SerializerPojo.java:705) ~[?:?]
	at org.mapdb.BTreeMap$NodeSerializer.deserialize(BTreeMap.java:449) ~[?:?]
	at org.mapdb.BTreeMap$NodeSerializer.deserialize(BTreeMap.java:288) ~[?:?]
	at org.mapdb.Store.deserialize(Store.java:297) ~[?:?]
	at org.mapdb.StoreDirect.get2(StoreDirect.java:486) ~[?:?]
	at org.mapdb.StoreWAL.get2(StoreWAL.java:336) ~[?:?]
	at org.mapdb.StoreWAL.get(StoreWAL.java:320) ~[?:?]
	at org.mapdb.Caches$HashTable.get(Caches.java:246) ~[?:?]
	at org.mapdb.EngineWrapper.get(EngineWrapper.java:58) ~[?:?]
	at org.mapdb.BTreeMap.put2(BTreeMap.java:677) ~[?:?]
	at org.mapdb.BTreeMap.put(BTreeMap.java:643) ~[?:?]
	at org.openhab.persistence.mapdb.internal.MapDbPersistenceService.store(MapDbPersistenceService.java:186) ~[?:?]
	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) [?:?]

Re: Warnmeldung im log - persistence?

Verfasst: 5. Apr 2024 16:27
von udo1toni
Das ist etwas unspezifisch, aber: das Problem wird durch das Item KU_Motion ausgelöst.
Das Problem besteht mit dem Persistence Service, und zwar genauer mit MapDB.
Ein Index liegt außerhalb des gültigen Bereichs.
Vermutlich ist der Index einer, der intern im Addon verwendet wird, dazu müsste man wissen, wie das Addon funktioniert.
Du kannst aber mal schauen, welche Status das Item so hält, vielleicht gibt es da Auffälligkeiten.

Re: Warnmeldung im log - persistence?

Verfasst: 5. Apr 2024 16:51
von DHog
Vielen Dank für die schnelle Rückmeldung. Das item ist ein switch und nimmt die Werte "on" und "off" an. Da ist nichts auffällig.
Ich habe für andere Räume gleiche items (z.B. WZ_Motion). Da ist alles in Ordnung.
Die gleiche Warnmeldung im log bekomme ich auch für das numerische item KU_HumIndex.
Meine Vermutung ist, dass die Datenbank vielleicht einen Fehler hat. Was meinst Du?

Re: Warnmeldung im log - persistence?

Verfasst: 5. Apr 2024 19:26
von udo1toni
Ausschließen kann ich das nicht, es gibt aber eine Möglichkeit, das zu bestätigen oder eben nicht.
Stoppe openHAB und benenne die entsprechende Dateien um (zu finden in $OPENHAB_USERDATA/persistence/mapdb/) alle Dateien außer der Readme.txt benennst Du z.B. um, indem Du im Namen ein .old ergänzt. Anschließend startest Du openHAB wieder, woraufhin es neue Dateien anlegen sollte.
Natürlich fliegen dabei die Werte weg, die gewöhnlich beim Neustart wiederhergestellt werden, denn das ist ja der Daseinszweck von mapdb. Du solltest also danach alle betreffenden Schalter und Werte prüfen und gegebenenfalls korrigieren. Funktioniert nach der Aktion alles wieder so wie es soll, dann war tatsächlich mindestens eine der beteiligten Dateien defekt. Tritt der Fehler weiterhin auf, war das nicht die Ursache und Du kannst Dir überlegen, ob Du alles wieder rückgängig machst (openHAB anhalten, neue Dateien löschen, alte Dateien wieder umbenennen, openHAB starten) oder alles so lässt, wie es ist...