Hi,

We have a large repository containing lots of uploaded files (about 20 GB and 
33K files). We recently started noticing following statements in logs


2012-08-21 10:59:56,285 ERROR [pool-2-thread-30] 
BundleDbPersistenceManager.loadBundle(1033) | failed to read bundle: 
aa00a98b-ab04-40f0-b7c4-05f1af033f9c: java.sql.SQLException: Failed to parse 
bundle aa00a98b-ab04-40f0-b7c4-05f1af033f9c
2012-08-21 11:14:19,107 ERROR [pool-2-thread-21] 
BundleDbPersistenceManager.loadBundle(1033) | failed to read bundle: 
4146fc44-52c6-45a0-9b6a-6b6778bd85da: java.sql.SQLException: Failed to parse 
bundle 4146fc44-52c6-45a0-9b6a-6b6778bd85da

With higher log level, Following stack trace is printed. I enabled consistency 
check, but that also doesn't run because code fails to load the node. I can 
retrive the main node fine but when I try to access "jcr:content", error is 
thrown. We have a large number of nodes sitting in this state.
1. Is this state repairable. 
2. All these nodes were versioned, is it possible to retrieve the file content 
from versioned node?

JackRabbit Version:2.2.4
Persistance 
Manager:org.apache.jackrabbit.core.persistence.bundle.MySqlPersistenceManager 
(we also tried 
with org.apache.jackrabbit.core.persistence.pool.MySqlPersistenceManager)
It precisely fails at 
BundleDbPersistenceManager.DbBlobStore(1311)
rs = conHelper.exec(blobSelectSQL, new Object[]{blobId}, false, 0);
                if (!rs.next()) {
                   throw new Exception("no such BLOB: " + blobId);
                }

ERROR 22-08 09:31:52,909 - Unable to parse bundle 
0001be06-f6b5-40ca-be5e-0e88d8c327a3
java.sql.SQLException: Failed to parse bundle 
0001be06-f6b5-40ca-be5e-0e88d8c327a3
at 
org.apache.jackrabbit.core.persistence.pool.BundleDbPersistenceManager.readBundle(BundleDbPersistenceManager.java:1064)
at 
org.apache.jackrabbit.core.persistence.pool.BundleDbPersistenceManager.checkConsistency(BundleDbPersistenceManager.java:805)
at 
org.apache.jackrabbit.core.persistence.pool.BundleDbPersistenceManager.init(BundleDbPersistenceManager.java:546)
at 
org.apache.jackrabbit.core.persistence.pool.MySqlPersistenceManager.init(MySqlPersistenceManager.java:51)
at 
org.apache.jackrabbit.core.RepositoryImpl.createPersistenceManager(RepositoryImpl.java:1353)
at org.apache.jackrabbit.core.RepositoryImpl.access$300(RepositoryImpl.java:124)
at 
org.apache.jackrabbit.core.RepositoryImpl$WorkspaceInfo.doInitialize(RepositoryImpl.java:2015)
at 
org.apache.jackrabbit.core.RepositoryImpl$WorkspaceInfo.initialize(RepositoryImpl.java:1998)
at 
org.apache.jackrabbit.core.RepositoryImpl.initStartupWorkspaces(RepositoryImpl.java:533)
at org.apache.jackrabbit.core.RepositoryImpl.<init>(RepositoryImpl.java:342)
at org.apache.jackrabbit.core.RepositoryImpl.create(RepositoryImpl.java:605)
at 
org.apache.jackrabbit.core.TransientRepository$1.getRepository(TransientRepository.java:180)
at 
org.apache.jackrabbit.core.TransientRepository.startRepository(TransientRepository.java:280)
at 
org.apache.jackrabbit.core.TransientRepository.login(TransientRepository.java:376)
at 
org.apache.jackrabbit.commons.AbstractRepository.login(AbstractRepository.java:123)
at com.thed.util.RepositoryPlugin.getSession(RepositoryPlugin.java:78)
at com.thed.util.RepositoryPlugin.makeObject(RepositoryPlugin.java:100)
at 
org.apache.commons.pool.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:1147)
at 
com.thed.repository.JcrSessionInterceptor.invoke(JcrSessionInterceptor.java:21)
at 
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
at 
org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)
at $Proxy14.getCurrentRepositoryObject(Unknown Source)
at 
com.thed.installer.jdbc.impl.AttachmentMigrationManagerImpl.copyAttachment(AttachmentMigrationManagerImpl.java:192)
at 
com.thed.installer.jdbc.impl.AttachmentMigrationManagerImpl.access$0(AttachmentMigrationManagerImpl.java:185)
at 
com.thed.installer.jdbc.impl.AttachmentMigrationManagerImpl$1.call(AttachmentMigrationManagerImpl.java:260)
at 
com.thed.installer.jdbc.impl.AttachmentMigrationManagerImpl$1.call(AttachmentMigrationManagerImpl.java:1)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at 
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:680)
Caused by: java.io.IOException: Unable to create property value: 
java.lang.Exception: no such BLOB: 
0001be06-f6b5-40ca-be5e-0e88d8c327a3.1570322.1.0
at 
org.apache.jackrabbit.core.persistence.util.BundleReader.readPropertyEntry(BundleReader.java:358)
at 
org.apache.jackrabbit.core.persistence.util.BundleReader.readBundleNew(BundleReader.java:183)
at 
org.apache.jackrabbit.core.persistence.util.BundleReader.readBundle(BundleReader.java:140)
at 
org.apache.jackrabbit.core.persistence.util.BundleBinding.readBundle(BundleBinding.java:152)
at 
org.apache.jackrabbit.core.persistence.pool.BundleDbPersistenceManager.readBundle(BundleDbPersistenceManager.java:1059)
... 30 more

-shailesh

Reply via email to