[jira] [Commented] (OAK-5920) Checkpoint migration will fail if the MissingBlobStore is used

2017-04-26 Thread JIRA

[ 
https://issues.apache.org/jira/browse/OAK-5920?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15984590#comment-15984590
 ] 

Tomek Rękawek commented on OAK-5920:


Backported to 1.4 in [r1792726|https://svn.apache.org/r1792726].

> Checkpoint migration will fail if the MissingBlobStore is used
> --
>
> Key: OAK-5920
> URL: https://issues.apache.org/jira/browse/OAK-5920
> Project: Jackrabbit Oak
>  Issue Type: Bug
>  Components: upgrade
>Affects Versions: 1.6.1
>Reporter: Tomek Rękawek
>Assignee: Tomek Rękawek
> Fix For: 1.7.0, 1.6.2, 1.4.16
>
> Attachments: OAK-5920.patch
>
>
> It seems that the checkpoint migration doesn't work with the missing blob 
> store:
> {noformat}
> 09.03.2017 07:44:22.777 INFO   o.a.j.o.u.RepositorySidegrade: Copying node 
> #2638: 
> /libs/fd/af/components/panel/cq:styleConfig/items/wizardPanel/items/wizardPanelScrollers
> 09.03.2017 07:44:22.813 INFO   o.a.j.o.u.RepositorySidegrade: Copying node 
> #2639: 
> /apps/acs-commons/components/content/sharethis-buttons/dialog/items/items
> 09.03.2017 07:44:31.805 INFO   o.a.j.o.s.f.FileStore: TarMK closed: 
> /mnt/crx/publish/crx-quickstart/repository-segment-tar-20170309-072655/segmentstore
> 09.03.2017 07:44:32.051 INFO   o.a.j.o.p.s.f.FileStore: TarMK closed: 
> /mnt/crx/publish/crx-quickstart/repository/segmentstore
> Caused by: 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:66)
>   at 
> com.adobe.granite.crx2oak.engine.MigrationEngine.process(MigrationEngine.java:91)
>   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)
>   ... 6 more
> Caused by: javax.jcr.RepositoryException: Failed to copy content
>   at 
> org.apache.jackrabbit.oak.upgrade.RepositorySidegrade.copy(RepositorySidegrade.java:286)
>   at 
> org.apache.jackrabbit.oak.upgrade.RepositorySidegrade.copy(RepositorySidegrade.java:242)
>   at 
> org.apache.jackrabbit.oak.upgrade.cli.OakUpgrade.sidegrade(OakUpgrade.java:92)
>   at 
> org.apache.jackrabbit.oak.upgrade.cli.OakUpgrade.migrate(OakUpgrade.java:78)
>   ... 11 more
> Caused by: java.lang.UnsupportedOperationException
>   at 
> org.apache.jackrabbit.oak.upgrade.cli.blob.MissingBlobStore.getInputStream(MissingBlobStore.java:62)
>   at 
> org.apache.jackrabbit.oak.plugins.blob.BlobStoreBlob.getNewStream(BlobStoreBlob.java:47)
>   at 
> org.apache.jackrabbit.oak.plugins.segment.SegmentBlob.getNewStream(SegmentBlob.java:276)
>   at 
> org.apache.jackrabbit.oak.plugins.segment.SegmentBlob.getNewStream(SegmentBlob.java:86)
>   at 
> org.apache.jackrabbit.oak.plugins.memory.AbstractBlob$1.openStream(AbstractBlob.java:44)
>   at com.google.common.io.ByteSource.contentEquals(ByteSource.java:344)
>   at 
> org.apache.jackrabbit.oak.plugins.memory.AbstractBlob.equal(AbstractBlob.java:67)
>   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:53)
>   at 
> org.apache.jackrabbit.oak.plugins.segment.SegmentPropertyState.equals(SegmentPropertyState.java:242)
>   at 
> org.apache.jackrabbit.oak.plugins.segment.SegmentNodeState.compareProperties(SegmentNodeState.java:617)
>   at 
> org.apache.jackrabbit.oak.plugins.segment.SegmentNodeState.compareAgainstBaseState(SegmentNodeState.java:511)
>   at 
> org.apache.jackrabbit.oak.spi.state.ApplyDiff.childNodeChanged(ApplyDiff.java:87)
>   at 
> org.apache.jackrabbit.oak.plugins.segment.SegmentNodeState.compareAgainstBaseState(SegmentNodeState.java:551)
>   at 
> org.apache.jackrabbit.oak.spi.state.ApplyDiff.childNodeChanged(ApplyDiff.java:87)
>   at 
> org.apache.jackrabbit.oak.plugins.segment.SegmentNodeState.compareAgainstBaseState(SegmentNodeState.java:551)
>   at 
> org.apache.jackrabbit.oak.spi.state.ApplyDiff.childNodeChanged(ApplyDiff.java:87)
>   at 
> org.apache.jackrabbit.oak.plugins.segment.MapRecord.compare(MapRecord.java:456)
>   at 
> org.apache.jackrabbit.oak.plugins.segment.SegmentNodeState.compareAgainstBaseState(SegmentNodeState.java:604)
>   at 
> org.apache.jackrabbit.oak.spi.state.ApplyDiff.childNodeChanged(ApplyDiff.java:87)
>   at 
> org.apache.jackrab

[jira] [Commented] (OAK-5920) Checkpoint migration will fail if the MissingBlobStore is used

2017-03-14 Thread JIRA

[ 
https://issues.apache.org/jira/browse/OAK-5920?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15923883#comment-15923883
 ] 

Tomek Rękawek commented on OAK-5920:


Backported to 1.6 in [r1786864|https://svn.apache.org/r1786864].

> Checkpoint migration will fail if the MissingBlobStore is used
> --
>
> Key: OAK-5920
> URL: https://issues.apache.org/jira/browse/OAK-5920
> Project: Jackrabbit Oak
>  Issue Type: Bug
>  Components: upgrade
>Affects Versions: 1.6.1
>Reporter: Tomek Rękawek
>Assignee: Tomek Rękawek
> Fix For: 1.7.0, 1.6.2
>
> Attachments: OAK-5920.patch
>
>
> It seems that the checkpoint migration doesn't work with the missing blob 
> store:
> {noformat}
> 09.03.2017 07:44:22.777 INFO   o.a.j.o.u.RepositorySidegrade: Copying node 
> #2638: 
> /libs/fd/af/components/panel/cq:styleConfig/items/wizardPanel/items/wizardPanelScrollers
> 09.03.2017 07:44:22.813 INFO   o.a.j.o.u.RepositorySidegrade: Copying node 
> #2639: 
> /apps/acs-commons/components/content/sharethis-buttons/dialog/items/items
> 09.03.2017 07:44:31.805 INFO   o.a.j.o.s.f.FileStore: TarMK closed: 
> /mnt/crx/publish/crx-quickstart/repository-segment-tar-20170309-072655/segmentstore
> 09.03.2017 07:44:32.051 INFO   o.a.j.o.p.s.f.FileStore: TarMK closed: 
> /mnt/crx/publish/crx-quickstart/repository/segmentstore
> Caused by: 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:66)
>   at 
> com.adobe.granite.crx2oak.engine.MigrationEngine.process(MigrationEngine.java:91)
>   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)
>   ... 6 more
> Caused by: javax.jcr.RepositoryException: Failed to copy content
>   at 
> org.apache.jackrabbit.oak.upgrade.RepositorySidegrade.copy(RepositorySidegrade.java:286)
>   at 
> org.apache.jackrabbit.oak.upgrade.RepositorySidegrade.copy(RepositorySidegrade.java:242)
>   at 
> org.apache.jackrabbit.oak.upgrade.cli.OakUpgrade.sidegrade(OakUpgrade.java:92)
>   at 
> org.apache.jackrabbit.oak.upgrade.cli.OakUpgrade.migrate(OakUpgrade.java:78)
>   ... 11 more
> Caused by: java.lang.UnsupportedOperationException
>   at 
> org.apache.jackrabbit.oak.upgrade.cli.blob.MissingBlobStore.getInputStream(MissingBlobStore.java:62)
>   at 
> org.apache.jackrabbit.oak.plugins.blob.BlobStoreBlob.getNewStream(BlobStoreBlob.java:47)
>   at 
> org.apache.jackrabbit.oak.plugins.segment.SegmentBlob.getNewStream(SegmentBlob.java:276)
>   at 
> org.apache.jackrabbit.oak.plugins.segment.SegmentBlob.getNewStream(SegmentBlob.java:86)
>   at 
> org.apache.jackrabbit.oak.plugins.memory.AbstractBlob$1.openStream(AbstractBlob.java:44)
>   at com.google.common.io.ByteSource.contentEquals(ByteSource.java:344)
>   at 
> org.apache.jackrabbit.oak.plugins.memory.AbstractBlob.equal(AbstractBlob.java:67)
>   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:53)
>   at 
> org.apache.jackrabbit.oak.plugins.segment.SegmentPropertyState.equals(SegmentPropertyState.java:242)
>   at 
> org.apache.jackrabbit.oak.plugins.segment.SegmentNodeState.compareProperties(SegmentNodeState.java:617)
>   at 
> org.apache.jackrabbit.oak.plugins.segment.SegmentNodeState.compareAgainstBaseState(SegmentNodeState.java:511)
>   at 
> org.apache.jackrabbit.oak.spi.state.ApplyDiff.childNodeChanged(ApplyDiff.java:87)
>   at 
> org.apache.jackrabbit.oak.plugins.segment.SegmentNodeState.compareAgainstBaseState(SegmentNodeState.java:551)
>   at 
> org.apache.jackrabbit.oak.spi.state.ApplyDiff.childNodeChanged(ApplyDiff.java:87)
>   at 
> org.apache.jackrabbit.oak.plugins.segment.SegmentNodeState.compareAgainstBaseState(SegmentNodeState.java:551)
>   at 
> org.apache.jackrabbit.oak.spi.state.ApplyDiff.childNodeChanged(ApplyDiff.java:87)
>   at 
> org.apache.jackrabbit.oak.plugins.segment.MapRecord.compare(MapRecord.java:456)
>   at 
> org.apache.jackrabbit.oak.plugins.segment.SegmentNodeState.compareAgainstBaseState(SegmentNodeState.java:604)
>   at 
> org.apache.jackrabbit.oak.spi.state.ApplyDiff.childNodeChanged(ApplyDiff.java:87)
>   at 
> org.apache.jackrabbit.oak.

[jira] [Commented] (OAK-5920) Checkpoint migration will fail if the MissingBlobStore is used

2017-03-13 Thread JIRA

[ 
https://issues.apache.org/jira/browse/OAK-5920?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15907650#comment-15907650
 ] 

Tomek Rękawek commented on OAK-5920:


Attached patch breaks the migration if the checkpoints can't be copied. This 
behaviour can be overridden with the new {{\-\-skip\-checkpoints}} option.

> Checkpoint migration will fail if the MissingBlobStore is used
> --
>
> Key: OAK-5920
> URL: https://issues.apache.org/jira/browse/OAK-5920
> Project: Jackrabbit Oak
>  Issue Type: Bug
>  Components: upgrade
>Affects Versions: 1.6.1
>Reporter: Tomek Rękawek
>Assignee: Tomek Rękawek
> Fix For: 1.7.0
>
> Attachments: OAK-5920.patch
>
>
> It seems that the checkpoint migration doesn't work with the missing blob 
> store:
> {noformat}
> 09.03.2017 07:44:22.777 INFO   o.a.j.o.u.RepositorySidegrade: Copying node 
> #2638: 
> /libs/fd/af/components/panel/cq:styleConfig/items/wizardPanel/items/wizardPanelScrollers
> 09.03.2017 07:44:22.813 INFO   o.a.j.o.u.RepositorySidegrade: Copying node 
> #2639: 
> /apps/acs-commons/components/content/sharethis-buttons/dialog/items/items
> 09.03.2017 07:44:31.805 INFO   o.a.j.o.s.f.FileStore: TarMK closed: 
> /mnt/crx/publish/crx-quickstart/repository-segment-tar-20170309-072655/segmentstore
> 09.03.2017 07:44:32.051 INFO   o.a.j.o.p.s.f.FileStore: TarMK closed: 
> /mnt/crx/publish/crx-quickstart/repository/segmentstore
> Caused by: 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:66)
>   at 
> com.adobe.granite.crx2oak.engine.MigrationEngine.process(MigrationEngine.java:91)
>   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)
>   ... 6 more
> Caused by: javax.jcr.RepositoryException: Failed to copy content
>   at 
> org.apache.jackrabbit.oak.upgrade.RepositorySidegrade.copy(RepositorySidegrade.java:286)
>   at 
> org.apache.jackrabbit.oak.upgrade.RepositorySidegrade.copy(RepositorySidegrade.java:242)
>   at 
> org.apache.jackrabbit.oak.upgrade.cli.OakUpgrade.sidegrade(OakUpgrade.java:92)
>   at 
> org.apache.jackrabbit.oak.upgrade.cli.OakUpgrade.migrate(OakUpgrade.java:78)
>   ... 11 more
> Caused by: java.lang.UnsupportedOperationException
>   at 
> org.apache.jackrabbit.oak.upgrade.cli.blob.MissingBlobStore.getInputStream(MissingBlobStore.java:62)
>   at 
> org.apache.jackrabbit.oak.plugins.blob.BlobStoreBlob.getNewStream(BlobStoreBlob.java:47)
>   at 
> org.apache.jackrabbit.oak.plugins.segment.SegmentBlob.getNewStream(SegmentBlob.java:276)
>   at 
> org.apache.jackrabbit.oak.plugins.segment.SegmentBlob.getNewStream(SegmentBlob.java:86)
>   at 
> org.apache.jackrabbit.oak.plugins.memory.AbstractBlob$1.openStream(AbstractBlob.java:44)
>   at com.google.common.io.ByteSource.contentEquals(ByteSource.java:344)
>   at 
> org.apache.jackrabbit.oak.plugins.memory.AbstractBlob.equal(AbstractBlob.java:67)
>   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:53)
>   at 
> org.apache.jackrabbit.oak.plugins.segment.SegmentPropertyState.equals(SegmentPropertyState.java:242)
>   at 
> org.apache.jackrabbit.oak.plugins.segment.SegmentNodeState.compareProperties(SegmentNodeState.java:617)
>   at 
> org.apache.jackrabbit.oak.plugins.segment.SegmentNodeState.compareAgainstBaseState(SegmentNodeState.java:511)
>   at 
> org.apache.jackrabbit.oak.spi.state.ApplyDiff.childNodeChanged(ApplyDiff.java:87)
>   at 
> org.apache.jackrabbit.oak.plugins.segment.SegmentNodeState.compareAgainstBaseState(SegmentNodeState.java:551)
>   at 
> org.apache.jackrabbit.oak.spi.state.ApplyDiff.childNodeChanged(ApplyDiff.java:87)
>   at 
> org.apache.jackrabbit.oak.plugins.segment.SegmentNodeState.compareAgainstBaseState(SegmentNodeState.java:551)
>   at 
> org.apache.jackrabbit.oak.spi.state.ApplyDiff.childNodeChanged(ApplyDiff.java:87)
>   at 
> org.apache.jackrabbit.oak.plugins.segment.MapRecord.compare(MapRecord.java:456)
>   at 
> org.apache.jackrabbit.oak.plugins.segment.SegmentNodeState.compareAgainstBaseState(SegmentNodeState.java:604)
>   at 
> org.apache.jackrabbit.oak.spi.state.Apply

[jira] [Commented] (OAK-5920) Checkpoint migration will fail if the MissingBlobStore is used

2017-03-13 Thread JIRA

[ 
https://issues.apache.org/jira/browse/OAK-5920?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15907395#comment-15907395
 ] 

Tomek Rękawek commented on OAK-5920:


Updated the warning message and the documentation in 
[r1786673|https://svn.apache.org/r1786673].

> Checkpoint migration will fail if the MissingBlobStore is used
> --
>
> Key: OAK-5920
> URL: https://issues.apache.org/jira/browse/OAK-5920
> Project: Jackrabbit Oak
>  Issue Type: Bug
>  Components: upgrade
>Affects Versions: 1.6.1
>Reporter: Tomek Rękawek
>Assignee: Tomek Rękawek
> Fix For: 1.7.0
>
>
> It seems that the checkpoint migration doesn't work with the missing blob 
> store:
> {noformat}
> 09.03.2017 07:44:22.777 INFO   o.a.j.o.u.RepositorySidegrade: Copying node 
> #2638: 
> /libs/fd/af/components/panel/cq:styleConfig/items/wizardPanel/items/wizardPanelScrollers
> 09.03.2017 07:44:22.813 INFO   o.a.j.o.u.RepositorySidegrade: Copying node 
> #2639: 
> /apps/acs-commons/components/content/sharethis-buttons/dialog/items/items
> 09.03.2017 07:44:31.805 INFO   o.a.j.o.s.f.FileStore: TarMK closed: 
> /mnt/crx/publish/crx-quickstart/repository-segment-tar-20170309-072655/segmentstore
> 09.03.2017 07:44:32.051 INFO   o.a.j.o.p.s.f.FileStore: TarMK closed: 
> /mnt/crx/publish/crx-quickstart/repository/segmentstore
> Caused by: 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:66)
>   at 
> com.adobe.granite.crx2oak.engine.MigrationEngine.process(MigrationEngine.java:91)
>   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)
>   ... 6 more
> Caused by: javax.jcr.RepositoryException: Failed to copy content
>   at 
> org.apache.jackrabbit.oak.upgrade.RepositorySidegrade.copy(RepositorySidegrade.java:286)
>   at 
> org.apache.jackrabbit.oak.upgrade.RepositorySidegrade.copy(RepositorySidegrade.java:242)
>   at 
> org.apache.jackrabbit.oak.upgrade.cli.OakUpgrade.sidegrade(OakUpgrade.java:92)
>   at 
> org.apache.jackrabbit.oak.upgrade.cli.OakUpgrade.migrate(OakUpgrade.java:78)
>   ... 11 more
> Caused by: java.lang.UnsupportedOperationException
>   at 
> org.apache.jackrabbit.oak.upgrade.cli.blob.MissingBlobStore.getInputStream(MissingBlobStore.java:62)
>   at 
> org.apache.jackrabbit.oak.plugins.blob.BlobStoreBlob.getNewStream(BlobStoreBlob.java:47)
>   at 
> org.apache.jackrabbit.oak.plugins.segment.SegmentBlob.getNewStream(SegmentBlob.java:276)
>   at 
> org.apache.jackrabbit.oak.plugins.segment.SegmentBlob.getNewStream(SegmentBlob.java:86)
>   at 
> org.apache.jackrabbit.oak.plugins.memory.AbstractBlob$1.openStream(AbstractBlob.java:44)
>   at com.google.common.io.ByteSource.contentEquals(ByteSource.java:344)
>   at 
> org.apache.jackrabbit.oak.plugins.memory.AbstractBlob.equal(AbstractBlob.java:67)
>   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:53)
>   at 
> org.apache.jackrabbit.oak.plugins.segment.SegmentPropertyState.equals(SegmentPropertyState.java:242)
>   at 
> org.apache.jackrabbit.oak.plugins.segment.SegmentNodeState.compareProperties(SegmentNodeState.java:617)
>   at 
> org.apache.jackrabbit.oak.plugins.segment.SegmentNodeState.compareAgainstBaseState(SegmentNodeState.java:511)
>   at 
> org.apache.jackrabbit.oak.spi.state.ApplyDiff.childNodeChanged(ApplyDiff.java:87)
>   at 
> org.apache.jackrabbit.oak.plugins.segment.SegmentNodeState.compareAgainstBaseState(SegmentNodeState.java:551)
>   at 
> org.apache.jackrabbit.oak.spi.state.ApplyDiff.childNodeChanged(ApplyDiff.java:87)
>   at 
> org.apache.jackrabbit.oak.plugins.segment.SegmentNodeState.compareAgainstBaseState(SegmentNodeState.java:551)
>   at 
> org.apache.jackrabbit.oak.spi.state.ApplyDiff.childNodeChanged(ApplyDiff.java:87)
>   at 
> org.apache.jackrabbit.oak.plugins.segment.MapRecord.compare(MapRecord.java:456)
>   at 
> org.apache.jackrabbit.oak.plugins.segment.SegmentNodeState.compareAgainstBaseState(SegmentNodeState.java:604)
>   at 
> org.apache.jackrabbit.oak.spi.state.ApplyDiff.childNodeChanged(ApplyDiff.java:87)
>   at 
> org.apache.jackrabbit.oak.plugins.segmen

[jira] [Commented] (OAK-5920) Checkpoint migration will fail if the MissingBlobStore is used

2017-03-12 Thread JIRA

[ 
https://issues.apache.org/jira/browse/OAK-5920?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15906596#comment-15906596
 ] 

Tomek Rękawek commented on OAK-5920:


Extended AbstractOak2OakTest / CopyBinariesTest to cover this case. Fix 
committed to trunk at [r1786602|https://svn.apache.org/r1786602].

> Checkpoint migration will fail if the MissingBlobStore is used
> --
>
> Key: OAK-5920
> URL: https://issues.apache.org/jira/browse/OAK-5920
> Project: Jackrabbit Oak
>  Issue Type: Bug
>  Components: upgrade
>Affects Versions: 1.6.1
>Reporter: Tomek Rękawek
>Assignee: Tomek Rękawek
> Fix For: 1.7.0
>
>
> It seems that the checkpoint migration doesn't work with the missing blob 
> store:
> {noformat}
> 09.03.2017 07:44:22.777 INFO   o.a.j.o.u.RepositorySidegrade: Copying node 
> #2638: 
> /libs/fd/af/components/panel/cq:styleConfig/items/wizardPanel/items/wizardPanelScrollers
> 09.03.2017 07:44:22.813 INFO   o.a.j.o.u.RepositorySidegrade: Copying node 
> #2639: 
> /apps/acs-commons/components/content/sharethis-buttons/dialog/items/items
> 09.03.2017 07:44:31.805 INFO   o.a.j.o.s.f.FileStore: TarMK closed: 
> /mnt/crx/publish/crx-quickstart/repository-segment-tar-20170309-072655/segmentstore
> 09.03.2017 07:44:32.051 INFO   o.a.j.o.p.s.f.FileStore: TarMK closed: 
> /mnt/crx/publish/crx-quickstart/repository/segmentstore
> java.lang.reflect.InvocationTargetException
>   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:497)
>   at com.adobe.granite.quickstart.base.impl.Main.(Main.java:881)
>   at com.adobe.granite.quickstart.base.impl.Main.main(Main.java:959)
> Caused by: 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:66)
>   at 
> com.adobe.granite.crx2oak.engine.MigrationEngine.process(MigrationEngine.java:91)
>   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)
>   ... 6 more
> Caused by: javax.jcr.RepositoryException: Failed to copy content
>   at 
> org.apache.jackrabbit.oak.upgrade.RepositorySidegrade.copy(RepositorySidegrade.java:286)
>   at 
> org.apache.jackrabbit.oak.upgrade.RepositorySidegrade.copy(RepositorySidegrade.java:242)
>   at 
> org.apache.jackrabbit.oak.upgrade.cli.OakUpgrade.sidegrade(OakUpgrade.java:92)
>   at 
> org.apache.jackrabbit.oak.upgrade.cli.OakUpgrade.migrate(OakUpgrade.java:78)
>   ... 11 more
> Caused by: java.lang.UnsupportedOperationException
>   at 
> org.apache.jackrabbit.oak.upgrade.cli.blob.MissingBlobStore.getInputStream(MissingBlobStore.java:62)
>   at 
> org.apache.jackrabbit.oak.plugins.blob.BlobStoreBlob.getNewStream(BlobStoreBlob.java:47)
>   at 
> org.apache.jackrabbit.oak.plugins.segment.SegmentBlob.getNewStream(SegmentBlob.java:276)
>   at 
> org.apache.jackrabbit.oak.plugins.segment.SegmentBlob.getNewStream(SegmentBlob.java:86)
>   at 
> org.apache.jackrabbit.oak.plugins.memory.AbstractBlob$1.openStream(AbstractBlob.java:44)
>   at com.google.common.io.ByteSource.contentEquals(ByteSource.java:344)
>   at 
> org.apache.jackrabbit.oak.plugins.memory.AbstractBlob.equal(AbstractBlob.java:67)
>   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:53)
>   at 
> org.apache.jackrabbit.oak.plugins.segment.SegmentPropertyState.equals(SegmentPropertyState.java:242)
>   at 
> org.apache.jackrabbit.oak.plugins.segment.SegmentNodeState.compareProperties(SegmentNodeState.java:617)
>   at 
> org.apache.jackrabbit.oak.plugins.segment.SegmentNodeState.compareAgainstBaseState(SegmentNodeState.java:511)
>   at 
> org.apache.jackrabbit.oak.spi.state.ApplyDiff.childNodeChanged(ApplyDiff.java:87)
>   at 
> org.apache.jackrabbit.oak.plugins.segment.SegmentNodeState.compareAgainstBaseState(SegmentNodeState.java:551)
>   at 
> org.apache.jackrabbit.oak.spi.state.ApplyDiff.childNodeChanged(ApplyDiff.java:87)
>   at 
> org.apache.jackrab

[jira] [Commented] (OAK-5920) Checkpoint migration will fail if the MissingBlobStore is used

2017-03-12 Thread JIRA

[ 
https://issues.apache.org/jira/browse/OAK-5920?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15906594#comment-15906594
 ] 

Tomek Rękawek commented on OAK-5920:


Exception will be thrown under following conditions:

* old/new segment to old/new segment migration so the checkpoints are migrated,
* repositories use external datastore,
* the datastore is not specified for the migration ("references-only 
migration") so the MissingBlobStore is used,
* two checkpoints contain different versions of binary under the same path.

The checkpoint migration is a best-effort mechanism anyway, so if it fails we 
should log a warning, remove incomplete checkpoints and carry on.

> Checkpoint migration will fail if the MissingBlobStore is used
> --
>
> Key: OAK-5920
> URL: https://issues.apache.org/jira/browse/OAK-5920
> Project: Jackrabbit Oak
>  Issue Type: Bug
>  Components: upgrade
>Affects Versions: 1.6.1
>Reporter: Tomek Rękawek
>Assignee: Tomek Rękawek
> Fix For: 1.6.2
>
>
> It seems that the checkpoint migration doesn't work with the missing blob 
> store:
> {noformat}
> 09.03.2017 07:44:22.777 INFO   o.a.j.o.u.RepositorySidegrade: Copying node 
> #2638: 
> /libs/fd/af/components/panel/cq:styleConfig/items/wizardPanel/items/wizardPanelScrollers
> 09.03.2017 07:44:22.813 INFO   o.a.j.o.u.RepositorySidegrade: Copying node 
> #2639: 
> /apps/acs-commons/components/content/sharethis-buttons/dialog/items/items
> 09.03.2017 07:44:31.805 INFO   o.a.j.o.s.f.FileStore: TarMK closed: 
> /mnt/crx/publish/crx-quickstart/repository-segment-tar-20170309-072655/segmentstore
> 09.03.2017 07:44:32.051 INFO   o.a.j.o.p.s.f.FileStore: TarMK closed: 
> /mnt/crx/publish/crx-quickstart/repository/segmentstore
> java.lang.reflect.InvocationTargetException
>   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:497)
>   at com.adobe.granite.quickstart.base.impl.Main.(Main.java:881)
>   at com.adobe.granite.quickstart.base.impl.Main.main(Main.java:959)
> Caused by: 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:66)
>   at 
> com.adobe.granite.crx2oak.engine.MigrationEngine.process(MigrationEngine.java:91)
>   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)
>   ... 6 more
> Caused by: javax.jcr.RepositoryException: Failed to copy content
>   at 
> org.apache.jackrabbit.oak.upgrade.RepositorySidegrade.copy(RepositorySidegrade.java:286)
>   at 
> org.apache.jackrabbit.oak.upgrade.RepositorySidegrade.copy(RepositorySidegrade.java:242)
>   at 
> org.apache.jackrabbit.oak.upgrade.cli.OakUpgrade.sidegrade(OakUpgrade.java:92)
>   at 
> org.apache.jackrabbit.oak.upgrade.cli.OakUpgrade.migrate(OakUpgrade.java:78)
>   ... 11 more
> Caused by: java.lang.UnsupportedOperationException
>   at 
> org.apache.jackrabbit.oak.upgrade.cli.blob.MissingBlobStore.getInputStream(MissingBlobStore.java:62)
>   at 
> org.apache.jackrabbit.oak.plugins.blob.BlobStoreBlob.getNewStream(BlobStoreBlob.java:47)
>   at 
> org.apache.jackrabbit.oak.plugins.segment.SegmentBlob.getNewStream(SegmentBlob.java:276)
>   at 
> org.apache.jackrabbit.oak.plugins.segment.SegmentBlob.getNewStream(SegmentBlob.java:86)
>   at 
> org.apache.jackrabbit.oak.plugins.memory.AbstractBlob$1.openStream(AbstractBlob.java:44)
>   at com.google.common.io.ByteSource.contentEquals(ByteSource.java:344)
>   at 
> org.apache.jackrabbit.oak.plugins.memory.AbstractBlob.equal(AbstractBlob.java:67)
>   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:53)
>   at 
> org.apache.jackrabbit.oak.plugins.segment.SegmentPropertyState.equals(SegmentPropertyState.java:242)
>   at 
> org.apache.jackrabbit.oak.plugins.segment.SegmentNodeState.compareProperties(SegmentNodeState.java:617)
>   at 
> org.apache.jackrabbit.oak.plugins.segment.SegmentNodeState.compareAgainstBaseState(Segm