[ 
https://issues.apache.org/jira/browse/JCR-3873?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Alexander Klimetschek updated JCR-3873:
---------------------------------------
    Description: 
An NPE in OAK-2811 lead to the data store not being closed normally on 
shutdown, in turn leaving the {{async-pending-uploads.ser}} file corrupted (on 
this system, binaries were constantly uploaded, so likely the queue to upload 
it to S3 in this case was still full) and then on the next startup, the 
CachingDataStore failed to start up, preventing the repository and the system 
from starting:

{noformat}
24.04.2015 13:21:28.602 *ERROR* [FelixStartLevel] 
org.apache.jackrabbit.oak-core 
[org.apache.jackrabbit.oak.plugins.blob.datastore.S3DataStore(79)] The activate 
method has thrown an exception (javax.jcr.RepositoryException: 
java.io.EOFException)
javax.jcr.RepositoryException: java.io.EOFException
        at 
org.apache.jackrabbit.core.data.CachingDataStore.init(CachingDataStore.java:337)
        at 
org.apache.jackrabbit.oak.plugins.blob.datastore.AbstractDataStoreService.activate(AbstractDataStoreService.java:61)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:606)
        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)
Caused by: java.io.EOFException: null
        at 
java.io.ObjectInputStream$PeekInputStream.readFully(ObjectInputStream.java:2325)
        at 
java.io.ObjectInputStream$BlockDataInputStream.readShort(ObjectInputStream.java:2794)
        at 
java.io.ObjectInputStream.readStreamHeader(ObjectInputStream.java:801)
        at java.io.ObjectInputStream.<init>(ObjectInputStream.java:299)
        at 
org.apache.jackrabbit.core.data.AsyncUploadCache.deserializeAsyncUploadMap(AsyncUploadCache.java:311)
        at 
org.apache.jackrabbit.core.data.AsyncUploadCache.init(AsyncUploadCache.java:243)
        at 
org.apache.jackrabbit.core.data.CachingDataStore.init(CachingDataStore.java:264)
        ... 35 common frames omitted
{noformat}


  was:
An NPE in OAK-2811 lead to the data store not being closed normally on 
shutdown, in turn leaving the {{async-pending-uploads.ser}} file corrupted and 
then on the next startup, the CachingDataStore failed to start up, preventing 
the repository and the system from starting:

{noformat}
24.04.2015 13:21:28.602 *ERROR* [FelixStartLevel] 
org.apache.jackrabbit.oak-core 
[org.apache.jackrabbit.oak.plugins.blob.datastore.S3DataStore(79)] The activate 
method has thrown an exception (javax.jcr.RepositoryException: 
java.io.EOFException)
javax.jcr.RepositoryException: java.io.EOFException
        at 
org.apache.jackrabbit.core.data.CachingDataStore.init(CachingDataStore.java:337)
        at 
org.apache.jackrabbit.oak.plugins.blob.datastore.AbstractDataStoreService.activate(AbstractDataStoreService.java:61)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:606)
        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)
Caused by: java.io.EOFException: null
        at 
java.io.ObjectInputStream$PeekInputStream.readFully(ObjectInputStream.java:2325)
        at 
java.io.ObjectInputStream$BlockDataInputStream.readShort(ObjectInputStream.java:2794)
        at 
java.io.ObjectInputStream.readStreamHeader(ObjectInputStream.java:801)
        at java.io.ObjectInputStream.<init>(ObjectInputStream.java:299)
        at 
org.apache.jackrabbit.core.data.AsyncUploadCache.deserializeAsyncUploadMap(AsyncUploadCache.java:311)
        at 
org.apache.jackrabbit.core.data.AsyncUploadCache.init(AsyncUploadCache.java:243)
        at 
org.apache.jackrabbit.core.data.CachingDataStore.init(CachingDataStore.java:264)
        ... 35 common frames omitted
{noformat}



> CachingDataStore not safe against crashes, corrupted uploads file will 
> prevent system startup
> ---------------------------------------------------------------------------------------------
>
>                 Key: JCR-3873
>                 URL: https://issues.apache.org/jira/browse/JCR-3873
>             Project: Jackrabbit Content Repository
>          Issue Type: Bug
>          Components: jackrabbit-data
>    Affects Versions: 2.9.1
>            Reporter: Alexander Klimetschek
>
> An NPE in OAK-2811 lead to the data store not being closed normally on 
> shutdown, in turn leaving the {{async-pending-uploads.ser}} file corrupted 
> (on this system, binaries were constantly uploaded, so likely the queue to 
> upload it to S3 in this case was still full) and then on the next startup, 
> the CachingDataStore failed to start up, preventing the repository and the 
> system from starting:
> {noformat}
> 24.04.2015 13:21:28.602 *ERROR* [FelixStartLevel] 
> org.apache.jackrabbit.oak-core 
> [org.apache.jackrabbit.oak.plugins.blob.datastore.S3DataStore(79)] The 
> activate method has thrown an exception (javax.jcr.RepositoryException: 
> java.io.EOFException)
> javax.jcr.RepositoryException: java.io.EOFException
>       at 
> org.apache.jackrabbit.core.data.CachingDataStore.init(CachingDataStore.java:337)
>       at 
> org.apache.jackrabbit.oak.plugins.blob.datastore.AbstractDataStoreService.activate(AbstractDataStoreService.java:61)
>       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>       at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
>       at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>       at java.lang.reflect.Method.invoke(Method.java:606)
>       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)
> Caused by: java.io.EOFException: null
>       at 
> java.io.ObjectInputStream$PeekInputStream.readFully(ObjectInputStream.java:2325)
>       at 
> java.io.ObjectInputStream$BlockDataInputStream.readShort(ObjectInputStream.java:2794)
>       at 
> java.io.ObjectInputStream.readStreamHeader(ObjectInputStream.java:801)
>       at java.io.ObjectInputStream.<init>(ObjectInputStream.java:299)
>       at 
> org.apache.jackrabbit.core.data.AsyncUploadCache.deserializeAsyncUploadMap(AsyncUploadCache.java:311)
>       at 
> org.apache.jackrabbit.core.data.AsyncUploadCache.init(AsyncUploadCache.java:243)
>       at 
> org.apache.jackrabbit.core.data.CachingDataStore.init(CachingDataStore.java:264)
>       ... 35 common frames omitted
> {noformat}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to