Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Not A Problem
-
None
-
None
-
None
-
Patch
Description
When using jackrabbit standalone with --backup mode for backup-ing a large repository (850gig) it fail after one hour with the following exception (see below)
the problem is that after a while, the utility in TransientFileFactory that is supposed to delete the temp files once the respective objects are reclaimed by the garbade collector; is not working properly and the tmp folder is running out of space (4gig temps folder)
I have created a patch to get around the problem but I am not sure the solution is correct as I don't know much of jackrabbit source code.
another workaround is to specify a larger tmp folder but the time to create the backup in increased significantly
Exception in thread "main" javax.jcr.RepositoryException: Failed to copy content
at org.apache.jackrabbit.core.RepositoryCopier.copy(RepositoryCopier.java:210)
at org.apache.jackrabbit.core.RepositoryCopier.copy(RepositoryCopier.java:150)
at org.apache.jackrabbit.core.RepositoryCopier.copy(RepositoryCopier.java:112)
at org.apache.jackrabbit.standalone.Main.backup(Main.java:248)
at org.apache.jackrabbit.standalone.Main.run(Main.java:172)
at org.apache.jackrabbit.standalone.Main.main(Main.java:59)
Caused by: javax.jcr.RepositoryException: Unable to copy 3d7e0354-60a2-4988-a82e-c6eaf96a9728
at org.apache.jackrabbit.core.persistence.PersistenceCopier.copy(PersistenceCopier.java:116)
at org.apache.jackrabbit.core.persistence.PersistenceCopier.copy(PersistenceCopier.java:110)
at org.apache.jackrabbit.core.persistence.PersistenceCopier.copy(PersistenceCopier.java:110)
at org.apache.jackrabbit.core.persistence.PersistenceCopier.copy(PersistenceCopier.java:110)
at org.apache.jackrabbit.core.persistence.PersistenceCopier.copy(PersistenceCopier.java:110)
at org.apache.jackrabbit.core.persistence.PersistenceCopier.copy(PersistenceCopier.java:110)
at org.apache.jackrabbit.core.RepositoryCopier.copyWorkspaces(RepositoryCopier.java:276)
at org.apache.jackrabbit.core.RepositoryCopier.copy(RepositoryCopier.java:208)
... 5 more
Caused by: org.apache.jackrabbit.core.state.ItemStateException: failed to read bundle (stacktrace on DEBUG log level): 3d7e0354-60a2-4988-a82e-c6eaf96a9728: java.sql.SQLException: Failed to parse bundle 3d7e0354-60a2-4988-a82e-c6eaf96a9728
at org.apache.jackrabbit.core.persistence.pool.BundleDbPersistenceManager.loadBundle(BundleDbPersistenceManager.java:902)
at org.apache.jackrabbit.core.persistence.bundle.AbstractBundlePersistenceManager.getBundleCacheMiss(AbstractBundlePersistenceManager.java:766)
at org.apache.jackrabbit.core.persistence.bundle.AbstractBundlePersistenceManager.getBundle(AbstractBundlePersistenceManager.java:750)
at org.apache.jackrabbit.core.persistence.bundle.AbstractBundlePersistenceManager.load(AbstractBundlePersistenceManager.java:490)
at org.apache.jackrabbit.core.persistence.PersistenceCopier.copy(PersistenceCopier.java:107)
... 12 more
Caused by: java.sql.SQLException: Failed to parse bundle 3d7e0354-60a2-4988-a82e-c6eaf96a9728
at org.apache.jackrabbit.core.persistence.pool.BundleDbPersistenceManager.readBundle(BundleDbPersistenceManager.java:932)
at org.apache.jackrabbit.core.persistence.pool.BundleDbPersistenceManager.loadBundle(BundleDbPersistenceManager.java:889)
... 16 more
Caused by: org.apache.commons.io.IOExceptionWithCause: Unable to create property value: javax.jcr.RepositoryException: Error creating temporary file
at org.apache.jackrabbit.core.persistence.util.BundleReader.readPropertyEntry(BundleReader.java:365)
at org.apache.jackrabbit.core.persistence.util.BundleReader.readBundleOld(BundleReader.java:249)
at org.apache.jackrabbit.core.persistence.util.BundleReader.readBundle(BundleReader.java:149)
at org.apache.jackrabbit.core.persistence.util.BundleBinding.readBundle(BundleBinding.java:152)
at org.apache.jackrabbit.core.persistence.pool.BundleDbPersistenceManager.readBundle(BundleDbPersistenceManager.java:927)
... 17 more
Caused by: javax.jcr.RepositoryException: Error creating temporary file
at org.apache.jackrabbit.core.value.BLOBInTempFile.<init>(BLOBInTempFile.java:64)
at org.apache.jackrabbit.core.value.BLOBInTempFile.getInstance(BLOBInTempFile.java:99)
at org.apache.jackrabbit.core.value.InternalValue.getBLOBFileValue(InternalValue.java:625)
at org.apache.jackrabbit.core.value.InternalValue.create(InternalValue.java:379)
at org.apache.jackrabbit.core.value.InternalValue.create(InternalValue.java:388)
at org.apache.jackrabbit.core.persistence.util.BundleReader.readPropertyEntry(BundleReader.java:355)
... 21 more
Caused by: java.io.IOException: No space left on device
at java.io.FileOutputStream.writeBytes(Native Method)
at java.io.FileOutputStream.write(FileOutputStream.java:326)
at org.apache.commons.io.IOUtils.copyLarge(IOUtils.java:1310)
at org.apache.commons.io.IOUtils.copy(IOUtils.java:978)
at org.apache.commons.io.IOUtils.copyLarge(IOUtils.java:1282)
at org.apache.jackrabbit.core.value.BLOBInTempFile.<init>(BLOBInTempFile.java:62)
... 26 more