Datensatz markedTimeStamp-Fehler ist während DataStore GC nicht vorhanden

Problem

Beim Ausführen der DataStore-Abfallsammlung (Blob GC in einem FileDataStore), sehen wir den folgenden markedTimestamp Fehler:

05.06.2017 21:50:22.425 *WARN* [pool-6-thread-19] org.apache.jackrabbit.oak.plugins.blob.datastore.DataStoreBlobStore Error occurred while fetching DataRecord for identifier markedTimestamp-f38d7f8c-1371-4080-a59c-4bf532526500
org.apache.jackrabbit.core.data.DataStoreException: Record markedTimestamp-f38d7f8c-1371-4080-a59c-4bf532526500 does not exist
at org.apache.jackrabbit.core.data.AbstractDataStore.getRecord(AbstractDataStore.java:47)
at org.apache.jackrabbit.oak.plugins.blob.datastore.DataStoreBlobStore$3.apply(DataStoreBlobStore.java:354)
at org.apache.jackrabbit.oak.plugins.blob.datastore.DataStoreBlobStore$3.apply(DataStoreBlobStore.java:349)
at com.google.common.collect.Iterators$8.transform(Iterators.java:794)
at com.google.common.collect.TransformedIterator.next(TransformedIterator.java:48)
at com.google.common.collect.Iterators$7.computeNext(Iterators.java:646)
at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:143)
at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:138)
at com.google.common.collect.TransformedIterator.hasNext(TransformedIterator.java:43)
at org.apache.jackrabbit.oak.plugins.blob.MarkSweepGarbageCollector$BlobIdRetriever.call(MarkSweepGarbageCollector.java:543)
at org.apache.jackrabbit.oak.plugins.blob.MarkSweepGarbageCollector.sweep(MarkSweepGarbageCollector.java:360)
at org.apache.jackrabbit.oak.plugins.blob.MarkSweepGarbageCollector.markAndSweep(MarkSweepGarbageCollector.java:241)
at org.apache.jackrabbit.oak.plugins.blob.MarkSweepGarbageCollector.collectGarbage(MarkSweepGarbageCollector.java:158)
at org.apache.jackrabbit.oak.plugins.blob.BlobGC$1.call(BlobGC.java:83)
at org.apache.jackrabbit.oak.plugins.blob.BlobGC$1.call(BlobGC.java:79)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)

Umgebung

AEM 6.1 + Oak 1.2.20 oder früher.

Ursache

Dieser Fehler wurde in 1.2.21 (OAK-5078) korregiert. Dies liegt daran, dass die Pfade in der FileDataStore-Konfiguration relativ sind.

Lösung

Es gibt zwei mögliche Lösungen:

Setzen Sie den Datastore-Pfad auf einen absoluten Pfad.

  1. Melden Sie sich bei dem Server an, auf dem AEM installiert ist.
  2. Öffnen Sie das Verzeichnis crx-quickstart/install.
  3. Öffnen Sie die Datei org.apache.jackrabbit.oak.plugins.blob.datastore.FileDataStore.cfg oder org.apache.jackrabbit.oak.plugins.blob.datastore.FileDataStore.config unter crx-quickstart/install.
  4. Bearbeiten Sie die Pfadvariable und legen Sie den Pfad auf einen absoluten Pfad zum Datastore fest, anstatt auf einen relativen Pfad.

Beispiel:

Zuvor: path=./crx-quickstart/repository/datastore

Danach: path=/opt/aem/author/crx-quickstart/repository/datastore.

B. Aktualisieren Sie AEM oder aktualisieren Sie Oak auf Version 1.2.21 oder eine spätere Version.

Aktualisieren Sie entweder auf AEM6.2 oder höher oder installieren Sie den neuesten Oak-Hotfix von hier:
https://helpx.adobe.com/de/experience-manager/kb/aem61-available-hotfixes.html.

 Adobe

Schneller und einfacher Hilfe erhalten

Neuer Benutzer?

Adobe MAX 2024

Adobe MAX
Die Konferenz für Kreative

14. bis 16. Oktober in Miami Beach und online

Adobe MAX

Die Konferenz für Kreative

14. bis 16. Oktober in Miami Beach und online

Adobe MAX 2024

Adobe MAX
Die Konferenz für Kreative

14. bis 16. Oktober in Miami Beach und online

Adobe MAX

Die Konferenz für Kreative

14. bis 16. Oktober in Miami Beach und online