Problem

Beim Start von AEM wird der folgende Fehler beobachtet und AEM startet nicht:

*ERROR* [FelixStartLevel] org.apache.jackrabbit.oak-core [org.apache.jackrabbit.oak.plugins.segment.SegmentNodeStoreService(87)] The activate method has thrown an exception (java.lang.IllegalStateException: RefId '7' doesn't exist in data segment 754dbe96-ad7f-4e58-a504-df1103bae4df. Creation date delta is 21 ms.)
java.lang.IllegalStateException: RefId '7' doesn't exist in data segment 754dbe96-ad7f-4e58-a504-df1103bae4df. Creation date delta is 21 ms.
    at org.apache.jackrabbit.oak.plugins.segment.Segment.getRefId(Segment.java:230)
    at org.apache.jackrabbit.oak.plugins.segment.Segment.internalReadRecordId(Segment.java:342)
    at org.apache.jackrabbit.oak.plugins.segment.Segment.readRecordId(Segment.java:338)
    at org.apache.jackrabbit.oak.plugins.segment.SegmentNodeState.getTemplateId(SegmentNodeState.java:70)
    at org.apache.jackrabbit.oak.plugins.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:79)
    at org.apache.jackrabbit.oak.plugins.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:381)
    at org.apache.jackrabbit.oak.plugins.segment.SegmentNodeStore.getRoot(SegmentNodeStore.java:146)
    at org.apache.jackrabbit.oak.plugins.segment.SegmentNodeStore.<init>(SegmentNodeStore.java:98)
    at org.apache.jackrabbit.oak.plugins.segment.SegmentNodeStoreService.registerSegmentStore(SegmentNodeStoreService.java:333)
    at org.apache.jackrabbit.oak.plugins.segment.SegmentNodeStoreService.registerNodeStore(SegmentNodeStoreService.java:236)
    at org.apache.jackrabbit.oak.plugins.segment.SegmentNodeStoreService.activate(SegmentNodeStoreService.java:231)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.apache.felix.scr.impl.helper.BaseMethod.invokeMethod(BaseMethod.java:222)
    at org.apache.felix.scr.impl.helper.BaseMethod.access$500(BaseMethod.java:37)
    at org.apache.felix.scr.impl.helper.BaseMethod$Resolved.invoke(BaseMethod.java:615)
    at org.apache.felix.scr.impl.helper.BaseMethod.invoke(BaseMethod.java:499)
    at org.apache.felix.scr.impl.helper.ActivateMethod.invoke(ActivateMethod.java:295)
    at org.apache.felix.scr.impl.manager.SingleComponentManager.createImplementationObject(SingleComponentManager.java:302)
    at org.apache.felix.scr.impl.manager.SingleComponentManager.createComponent(SingleComponentManager.java:113)
    at org.apache.felix.scr.impl.manager.SingleComponentManager.getService(SingleComponentManager.java:832)
    at org.apache.felix.scr.impl.manager.SingleComponentManager.getServiceInternal(SingleComponentManager.java:799)
    at org.apache.felix.scr.impl.manager.AbstractComponentManager.activateInternal(AbstractComponentManager.java:724)
    at org.apache.felix.scr.impl.manager.AbstractComponentManager.enable(AbstractComponentManager.java:399)
    at org.apache.felix.scr.impl.config.ConfigurableComponentHolder.enableComponents(ConfigurableComponentHolder.java:669)
    at org.apache.felix.scr.impl.BundleComponentActivator.initialEnable(BundleComponentActivator.java:184)
    at org.apache.felix.scr.impl.Activator.loadComponents(Activator.java:332)
    at org.apache.felix.scr.impl.Activator.access$000(Activator.java:49)
    at org.apache.felix.scr.impl.Activator$ScrExtension.start(Activator.java:257)
    at org.apache.felix.utils.extender.AbstractExtender.createExtension(AbstractExtender.java:259)
    at org.apache.felix.utils.extender.AbstractExtender.modifiedBundle(AbstractExtender.java:232)
    at org.osgi.util.tracker.BundleTracker$Tracked.customizerModified(BundleTracker.java:482)
    at org.osgi.util.tracker.BundleTracker$Tracked.customizerModified(BundleTracker.java:415)
    at org.osgi.util.tracker.AbstractTracked.track(AbstractTracked.java:232)
    at org.osgi.util.tracker.BundleTracker$Tracked.bundleChanged(BundleTracker.java:444)
    at org.apache.felix.framework.util.EventDispatcher.invokeBundleListenerCallback(EventDispatcher.java:913)
    at org.apache.felix.framework.util.EventDispatcher.fireEventImmediately(EventDispatcher.java:834)
    at org.apache.felix.framework.util.EventDispatcher.fireBundleEvent(EventDispatcher.java:516)
    at org.apache.felix.framework.Felix.fireBundleEvent(Felix.java:4531)
    at org.apache.felix.framework.Felix.startBundle(Felix.java:2169)
    at org.apache.felix.framework.Felix.setActiveStartLevel(Felix.java:1368)
    at org.apache.felix.framework.FrameworkStartLevelImpl.run(FrameworkStartLevelImpl.java:308)
    at java.lang.Thread.run(Thread.java:745)

Umgebung

AEM 6.1

Lösung

  1. Gehen Sie zu http://hostname:port/system/console/bundles und melden Sie sich als Administrator an (beachten Sie, dass Sie sich möglicherweise mit admin / admin anstelle Ihres üblichen Passworts anmelden müssen, da das Oak-Repository nicht verfügbar ist).

  2. Suchen Sie nach dem Bundle "oak-core" und beachten Sie die Version des Bundles.

  3. Downloaden Sie die Version von oak-run jar Datei, die zu Ihrer Version von Oak [1] passt (z.B.: wenn Ihr oak-core-Bundle 1.2.18 ist, benötigen Sie oak-run-1.2.18.jar).

  4. Legen Sie die oak-run jar-Datei auf dem AEM-Server in das gleiche Verzeichnis wie die AEM jar-Datei und den crx-quickstart-Ordner.

  5. AEM stoppen.

  6. Sichern Sie alle Dateien in den Ordner /crx-quickstart/repository/segmentstore/.

Führen Sie den Reparaturvorgang aus:

  1. Beginnen Sie mit der Konsistenzprüfung.  Es wird rückwärts durch die Revisionen des Projektarchivs gesucht, bis es eine Konsistenz findet:

    $> java -jar oak-run-*.jar check -d1 --bin=-1 -p crx-quickstart/repository/segmentstore/
    14:00:30.783 [main] INFO o.a.j.o.p.s.f.t.ConsistencyChecker - Found latest good revision afdb922d-ba53-4a1b-aa1b-1cb044b535cf:234880

  2. Setzen Sie das Repository auf die gute Revision durch Bearbeitung zurück./crx-quickstart/repository/segmentstore/journal.log bearbeiten und alle Zeilen nach der Zeile löschen, die die letzte fehlerfreie Revision enthält.

    WARNUNG: Wenn die letzte gute Revision eine alte ist, dann kann dieser Prozess Ihre Daten auf ein viel älteres Datum und eine ältere Uhrzeit zurücksetzen.

  3. Entfernen Sie alle/crx-quickstart/repository/segmentstore/*.bak-Dateien.

  4. Führen Sie ein Clean-up für Checkpoints aus, um verwaiste Checkpoints zu entfernen: 

    java -jar oak-run-*.jar checkpoints ./crx-quickstart/repository/segmentstore rm-unreferenced

  5. Offline-Verdichtung auf dem Repository durchführen.

    java -jar oak-run-*.jar compact ./crx-quickstart/repository/segmentstore/

Dieses Werk unterliegt den Bedingungen der Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License.  Twitter™- und Facebook-Beiträge fallen nicht unter die Bedingungen der Creative Commons-Lizenz.

Rechtliche Hinweise   |   Online-Datenschutzrichtlinie