Expand my Community achievements bar.

Don’t miss the AEM Skill Exchange in SF on Nov 14—hear from industry leaders, learn best practices, and enhance your AEM strategy with practical tips.
SOLVED

How to cleanup unavailable blob id?

Avatar

Level 9

Hi All,

Right now , i am encountering a problem that there is one dummy blob id which is trying to be migrated but throwing an exception.I think, this BLOB id is of DummyBlobStore.

Is there a way to exclude these blob store while doing the migration?

26.04.2018 18:08:05.557 ERROR  c.a.g.c.e.MigrationEngine: The internal error occurred during migration. The migration process has been aborted and it is not complete!

java.lang.RuntimeException: javax.jcr.RepositoryException: Failed to copy content

        at com.google.common.io.Closer.rethrow(Closer.java:149)

        at org.apache.jackrabbit.oak.upgrade.cli.OakUpgrade.migrate(OakUpgrade.java:81)

        at com.adobe.granite.crx2oak.engine.MigrationEngine$2.doMigration(MigrationEngine.java:67)

        at com.adobe.granite.crx2oak.engine.MigrationEngine.process(MigrationEngine.java:92)

        at com.adobe.granite.crx2oak.pipeline.Pipeline.run(Pipeline.java:103)

        at com.adobe.granite.crx2oak.CRX2Oak.run(CRX2Oak.java:66)

        at com.adobe.granite.crx2oak.CRX2Oak.main(CRX2Oak.java:51)

Caused by: javax.jcr.RepositoryException: Failed to copy content

        at org.apache.jackrabbit.oak.upgrade.RepositorySidegrade.copy(RepositorySidegrade.java:285)

        at org.apache.jackrabbit.oak.upgrade.cli.OakUpgrade.sidegrade(OakUpgrade.java:92)

        at org.apache.jackrabbit.oak.upgrade.cli.OakUpgrade.migrate(OakUpgrade.java:78)

        ... 5 common frames omitted

Caused by: java.lang.IllegalStateException: Attempt to read external blob with blobId [66f1d39a64998bf2e641765057509c086f2474202d9fd24fa654dabc01aba988#95174] without specifying BlobStore

        at org.apache.jackrabbit.oak.segment.SegmentBlob.getBlob(SegmentBlob.java:243)

        at org.apache.jackrabbit.oak.segment.SegmentBlob.getLength(SegmentBlob.java:252)

        at org.apache.jackrabbit.oak.segment.SegmentBlob.length(SegmentBlob.java:110)

        at org.apache.jackrabbit.oak.plugins.memory.AbstractBlob.equal(AbstractBlob.java:52)

        at org.apache.jackrabbit.oak.plugins.segment.SegmentBlob.equals(SegmentBlob.java:227)

        at com.google.common.base.Objects.equal(Objects.java:60)

        at org.apache.jackrabbit.oak.plugins.memory.AbstractPropertyState.equal(AbstractPropertyState.java:59)

        at org.apache.jackrabbit.oak.plugins.segment.SegmentPropertyState.equals(SegmentPropertyState.java:242)

        at org.apache.jackrabbit.oak.plugins.migration.NodeStateCopier.copyProperties(NodeStateCopier.java:144)

        at org.apache.jackrabbit.oak.plugins.migration.NodeStateCopier.copyNodeState(NodeStateCopier.java:212)

        at org.apache.jackrabbit.oak.plugins.migration.NodeStateCopier.copyNodeState(NodeStateCopier.java:208)

        at org.apache.jackrabbit.oak.plugins.migration.NodeStateCopier.copyNodeState(NodeStateCopier.java:208)

        at org.apache.jackrabbit.oak.plugins.migration.NodeStateCopier.copyNodeState(NodeStateCopier.java:208)

        at org.apache.jackrabbit.oak.plugins.migration.NodeStateCopier.copyNodeState(NodeStateCopier.java:208)

        at org.apache.jackrabbit.oak.plugins.migration.NodeStateCopier.copyNodeState(NodeStateCopier.java:208)

        at org.apache.jackrabbit.oak.plugins.migration.NodeStateCopier.copyNodeState(NodeStateCopier.java:160)

        at org.apache.jackrabbit.oak.plugins.migration.NodeStateCopier.access$200(NodeStateCopier.java:75)

        at org.apache.jackrabbit.oak.plugins.migration.NodeStateCopier$Builder.copy(NodeStateCopier.java:465)

        at org.apache.jackrabbit.oak.upgrade.RepositorySidegrade.copyWorkspace(RepositorySidegrade.java:468)

        at org.apache.jackrabbit.oak.upgrade.RepositorySidegrade.migrateWithoutCheckpoints(RepositorySidegrade.java:417)

        at org.apache.jackrabbit.oak.upgrade.RepositorySidegrade.copyState(RepositorySidegrade.java:317)

        at org.apache.jackrabbit.oak.upgrade.RepositorySidegrade.copy(RepositorySidegrade.java:278)

        ... 7 common frames omitted

Thanks,

Kishore.

1 Accepted Solution

Avatar

Correct answer by
Level 9

I am able to successfully migrate the content by running below command.

java -jar crx2oak-1.8.4-all-in-one.jar segment-old:C:/Users/xxxx/Documents/xxxx/Softwares/AEM/Chris/AEM_Author_60/crx-quickstart/repository C:/Users/xxxxxx/Documents/xxxx/Softwares/AEM/6.4/crx-quickstart/repository --datastore C:/Users/xxxx/Documents/xxxx/Softwares/AEM/6.4/crx-quickstart/repository/datastore --include-path=/content --exclude-path=/tmp --copy-versions=false --copy-orphaned-versions=false > migration_new.txt

Thank you all for your support.

Thanks,

Kishore

View solution in original post

18 Replies

Avatar

Level 10

I have asked others to look here as well.

In mean time - have you gone through all the AEM migrations Docs?

Upgrading to AEM 6.4

Avatar

Employee Advisor

Hi Kishore,

Looks like you are doing a repository migration. What is the source version and what is the target version? What command line are you using for this call?

regards,

Jörg

Avatar

Level 9

Thank you.

Right now,i  am migrating 6.2 repository to 6.4.Below is the command i am using for migrating.

java -jar crx2oak-1.8.4-all-in-one.jar segment-old:C:/Users/xxx/Documents/xxx/AEM-Others/OOTB/crx-quickstart/repository C:/Users/xxx/Documents/xxx/Softwares/AEM/6.4/crx-quickstart/repository --include-path=/content --exclude-path=/tmp --copy-versions=false --copy-orphaned-versions=false --merge-paths=/content

Avatar

Level 10

Did you go through all the information in the docs i pointed you to?

Avatar

Employee Advisor

Hi Kishore,

For me it looks like you used an blobstore on your AEM 6.2 instance; can you experiment with the parameters "src-fileblobstore" and "fileblobstore"?

Avatar

Level 9

Yes.Right now,i am following that doc and that's my reference for this migration.

Avatar

Level 10

THat provides a bit of background. Can you follow Joerg's suggestion here.

Avatar

Level 9

i don't see any blobstore folder in my source repository(6.2).Not sure, how to use parameters "src-fileblobstore" and "fileblobstore" in this case?

Is there any chance to have implicit blobstore, comes up with the AEM installation?

Avatar

Level 9

i see below message in the logs.

I doubt it ,implicit blobstore comes up with the when installing AEM.

" 26.04.2018 18:18:29.818 INFO   o.a.j.o.u.c.p.DatastoreArguments: Destination blob store: DummyBlobStore ".

Right now,i have only two folders inside /crx-quickstart/repository

1474112_pastedImage_4.png

Avatar

Level 10

Did you run the Datastore GC on the source AEM ? Was it completed with no issues?

Avatar

Employee Advisor

Ok, then you have a plain 6.2 installation, which did not have a datastore or blobstore by default (has change with 6.3)... So now you have the chance to reduce the size of your segmentstore and create a fileblobstore :-)

If your instance isn't that large and it's just testing, can you start with this set of parameters

java -jar crx2oak-1.8.4-all-in-one.jar segment-old:C:/Users/xxx/Documents/xxx/AEM-Others/OOTB/crx-quickstart/repository C:/Users/xxx/Documents/xxx/Softwares/AEM/6.4/crx-quickstart/repository

just to eliminate the chance that one of them is causing this issue?

(When you want to have AEM 6.4 with a segmentstore you can add the parameter --fileblobstore C:/Users/xxx/Documents/xxx/Softwares/AEM/6.4/crx-quickstart/repository/blobstore

Jörg

Avatar

Level 10

Support stated: "I believe that they have an issue on a source AEM. Datastore GC should help to fix"

Avatar

Level 9

I have tried with both commands but ended up with the same error

Avatar

Level 9

i have already tried that approach but getting error.

Avatar

Level 10

Have you looked here -- Data Store Garbage Collection

Does this report inform you of missing data?

Avatar

Correct answer by
Level 9

I am able to successfully migrate the content by running below command.

java -jar crx2oak-1.8.4-all-in-one.jar segment-old:C:/Users/xxxx/Documents/xxxx/Softwares/AEM/Chris/AEM_Author_60/crx-quickstart/repository C:/Users/xxxxxx/Documents/xxxx/Softwares/AEM/6.4/crx-quickstart/repository --datastore C:/Users/xxxx/Documents/xxxx/Softwares/AEM/6.4/crx-quickstart/repository/datastore --include-path=/content --exclude-path=/tmp --copy-versions=false --copy-orphaned-versions=false > migration_new.txt

Thank you all for your support.

Thanks,

Kishore

Avatar

Level 10

I am glad that you got it working!