[
https://issues.apache.org/jira/browse/OAK-5651?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15867476#comment-15867476
]
Chetan Mehrotra commented on OAK-5651:
--------------------------------------
bq. if we disable the observation support on the destination DocumentMK
repository, won't this break something?
The BundlingConfigHandler just does a simple diff and I believe any other
observer would also be doing that and would thus break. So unless we make that
work we can disable the observation support.
bq. If so, maybe we can disable the bundling support for the time of migration?
I would like to have bundling enabled for migration. If disabling observation
support comepletely is not possible we can modify the bundling logic to disable
observer part but still have bundling enabled
> java.lang.IllegalStateException logged when migrating Segment to Document
> -------------------------------------------------------------------------
>
> Key: OAK-5651
> URL: https://issues.apache.org/jira/browse/OAK-5651
> Project: Jackrabbit Oak
> Issue Type: Bug
> Components: upgrade
> Affects Versions: 1.5.13
> Reporter: Tomek Rękawek
> Assignee: Tomek Rękawek
> Fix For: 1.7.0, 1.8
>
>
> After migrating the SegmentMK to DocumentMK following exception is logged:
> {noformat}
> 12:38:58.816 INFO [main] RepositorySidegrade.java:310 Copying
> checkpoints is not supported for this combination of node stores
> 12:38:58.835 ERROR [main] BackgroundObserver.java:176 Uncaught
> exception in
> org.apache.jackrabbit.oak.plugins.document.bundlor.BundlingConfigHandler@3c782d8e
> com.google.common.util.concurrent.UncheckedExecutionException:
> java.lang.IllegalStateException: Missing external change for branch revision:
> at
> com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2199)
> ~[guava-15.0.jar:na]
> at com.google.common.cache.LocalCache.get(LocalCache.java:3932)
> ~[guava-15.0.jar:na]
> at
> com.google.common.cache.LocalCache$LocalManualCache.get(LocalCache.java:4721)
> ~[guava-15.0.jar:na]
> at
> org.apache.jackrabbit.oak.plugins.document.MemoryDiffCache.getChanges(MemoryDiffCache.java:83)
> ~[oak-core-1.8-SNAPSHOT.jar:1.8-SNAPSHOT]
> at
> org.apache.jackrabbit.oak.plugins.document.TieredDiffCache.getChanges(TieredDiffCache.java:50)
> ~[oak-core-1.8-SNAPSHOT.jar:1.8-SNAPSHOT]
> at
> org.apache.jackrabbit.oak.plugins.document.DocumentNodeStore.compare(DocumentNodeStore.java:1616)
> [oak-core-1.8-SNAPSHOT.jar:1.8-SNAPSHOT]
> at
> org.apache.jackrabbit.oak.plugins.document.AbstractDocumentNodeState.compareAgainstBaseState(AbstractDocumentNodeState.java:114)
> ~[oak-core-1.8-SNAPSHOT.jar:1.8-SNAPSHOT]
> at
> org.apache.jackrabbit.oak.spi.commit.EditorDiff.process(EditorDiff.java:52)
> ~[oak-core-1.8-SNAPSHOT.jar:1.8-SNAPSHOT]
> at
> org.apache.jackrabbit.oak.plugins.document.bundlor.BundlingConfigHandler.contentChanged(BundlingConfigHandler.java:70)
> ~[oak-core-1.8-SNAPSHOT.jar:1.8-SNAPSHOT]
> at
> org.apache.jackrabbit.oak.spi.commit.BackgroundObserver$1$1.call(BackgroundObserver.java:134)
> [oak-core-1.8-SNAPSHOT.jar:1.8-SNAPSHOT]
> at
> org.apache.jackrabbit.oak.spi.commit.BackgroundObserver$1$1.call(BackgroundObserver.java:128)
> [oak-core-1.8-SNAPSHOT.jar:1.8-SNAPSHOT]
> at java.util.concurrent.FutureTask.run(FutureTask.java:266)
> [na:1.8.0_73]
> at
> com.google.common.util.concurrent.MoreExecutors$SameThreadExecutorService.execute(MoreExecutors.java:297)
> [guava-15.0.jar:na]
> at
> org.apache.jackrabbit.oak.spi.commit.BackgroundObserver$1.run(BackgroundObserver.java:148)
> [oak-core-1.8-SNAPSHOT.jar:1.8-SNAPSHOT]
> at
> org.apache.jackrabbit.oak.commons.concurrent.NotifyingFutureTask.run(NotifyingFutureTask.java:73)
> [oak-commons-1.8-SNAPSHOT.jar:1.8-SNAPSHOT]
> at
> org.apache.jackrabbit.oak.commons.concurrent.NotifyingFutureTask.onComplete(NotifyingFutureTask.java:62)
> [oak-commons-1.8-SNAPSHOT.jar:1.8-SNAPSHOT]
> at
> org.apache.jackrabbit.oak.spi.commit.BackgroundObserver.contentChanged(BackgroundObserver.java:312)
> [oak-core-1.8-SNAPSHOT.jar:1.8-SNAPSHOT]
> at
> org.apache.jackrabbit.oak.spi.commit.CompositeObserver.contentChanged(CompositeObserver.java:52)
> [oak-core-1.8-SNAPSHOT.jar:1.8-SNAPSHOT]
> at
> org.apache.jackrabbit.oak.spi.commit.ChangeDispatcher.contentChanged(ChangeDispatcher.java:80)
> [oak-core-1.8-SNAPSHOT.jar:1.8-SNAPSHOT]
> at
> org.apache.jackrabbit.oak.plugins.document.DocumentNodeStore$4.headOfQueue(DocumentNodeStore.java:837)
> [oak-core-1.8-SNAPSHOT.jar:1.8-SNAPSHOT]
> at
> org.apache.jackrabbit.oak.plugins.document.CommitQueue.waitUntilHeadOfQueue(CommitQueue.java:237)
> [oak-core-1.8-SNAPSHOT.jar:1.8-SNAPSHOT]
> at
> org.apache.jackrabbit.oak.plugins.document.CommitQueue.done(CommitQueue.java:92)
> [oak-core-1.8-SNAPSHOT.jar:1.8-SNAPSHOT]
> at
> org.apache.jackrabbit.oak.plugins.document.DocumentNodeStore.done(DocumentNodeStore.java:816)
> [oak-core-1.8-SNAPSHOT.jar:1.8-SNAPSHOT]
> at
> org.apache.jackrabbit.oak.plugins.document.DocumentNodeStore.merge(DocumentNodeStore.java:1585)
> [oak-core-1.8-SNAPSHOT.jar:1.8-SNAPSHOT]
> at
> org.apache.jackrabbit.oak.plugins.document.DocumentNodeStoreBranch$Persisted$1.call(DocumentNodeStoreBranch.java:606)
> [oak-core-1.8-SNAPSHOT.jar:1.8-SNAPSHOT]
> at
> org.apache.jackrabbit.oak.plugins.document.DocumentNodeStoreBranch$Persisted$1.call(DocumentNodeStoreBranch.java:600)
> [oak-core-1.8-SNAPSHOT.jar:1.8-SNAPSHOT]
> at
> org.apache.jackrabbit.oak.plugins.document.DocumentNodeStoreBranch.withCurrentBranch(DocumentNodeStoreBranch.java:313)
> [oak-core-1.8-SNAPSHOT.jar:1.8-SNAPSHOT]
> at
> org.apache.jackrabbit.oak.plugins.document.DocumentNodeStoreBranch.access$600(DocumentNodeStoreBranch.java:58)
> [oak-core-1.8-SNAPSHOT.jar:1.8-SNAPSHOT]
> at
> org.apache.jackrabbit.oak.plugins.document.DocumentNodeStoreBranch$Persisted.merge(DocumentNodeStoreBranch.java:600)
> [oak-core-1.8-SNAPSHOT.jar:1.8-SNAPSHOT]
> at
> org.apache.jackrabbit.oak.plugins.document.DocumentNodeStoreBranch.merge0(DocumentNodeStoreBranch.java:185)
> [oak-core-1.8-SNAPSHOT.jar:1.8-SNAPSHOT]
> at
> org.apache.jackrabbit.oak.plugins.document.DocumentNodeStoreBranch.merge(DocumentNodeStoreBranch.java:119)
> [oak-core-1.8-SNAPSHOT.jar:1.8-SNAPSHOT]
> at
> org.apache.jackrabbit.oak.plugins.document.DocumentRootBuilder.merge(DocumentRootBuilder.java:167)
> [oak-core-1.8-SNAPSHOT.jar:1.8-SNAPSHOT]
> at
> org.apache.jackrabbit.oak.plugins.document.DocumentNodeStore.merge(DocumentNodeStore.java:1694)
> [oak-core-1.8-SNAPSHOT.jar:1.8-SNAPSHOT]
> at
> org.apache.jackrabbit.oak.upgrade.RepositorySidegrade.copyState(RepositorySidegrade.java:344)
> [classes/:na]
> at
> org.apache.jackrabbit.oak.upgrade.RepositorySidegrade.copy(RepositorySidegrade.java:279)
> [classes/:na]
> at
> org.apache.jackrabbit.oak.upgrade.RepositorySidegrade.copy(RepositorySidegrade.java:242)
> [classes/:na]
> at
> org.apache.jackrabbit.oak.upgrade.cli.OakUpgrade.sidegrade(OakUpgrade.java:92)
> [classes/:na]
> at
> org.apache.jackrabbit.oak.upgrade.cli.OakUpgrade.migrate(OakUpgrade.java:78)
> [classes/:na]
> at
> org.apache.jackrabbit.oak.upgrade.cli.OakUpgrade.migrate(OakUpgrade.java:67)
> [classes/:na]
> at
> org.apache.jackrabbit.oak.upgrade.cli.OakUpgrade.main(OakUpgrade.java:48)
> [classes/:na]
> at
> org.apache.jackrabbit.oak.upgrade.cli.AbstractOak2OakTest.prepare(AbstractOak2OakTest.java:109)
> [test-classes/:na]
> ...
> Caused by: java.lang.IllegalStateException: Missing external change for
> branch revision:
> at
> org.apache.jackrabbit.oak.plugins.document.JournalEntry$3$1.computeNext(JournalEntry.java:490)
> ~[oak-core-1.8-SNAPSHOT.jar:1.8-SNAPSHOT]
> at
> org.apache.jackrabbit.oak.plugins.document.JournalEntry$3$1.computeNext(JournalEntry.java:478)
> ~[oak-core-1.8-SNAPSHOT.jar:1.8-SNAPSHOT]
> at
> com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:143)
> ~[guava-15.0.jar:na]
> at
> com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:138)
> ~[guava-15.0.jar:na]
> at
> org.apache.jackrabbit.oak.plugins.document.JournalEntry.addTo(JournalEntry.java:453)
> ~[oak-core-1.8-SNAPSHOT.jar:1.8-SNAPSHOT]
> at
> org.apache.jackrabbit.oak.plugins.document.JournalDiffLoader.readTrunkChanges(JournalDiffLoader.java:168)
> ~[oak-core-1.8-SNAPSHOT.jar:1.8-SNAPSHOT]
> at
> org.apache.jackrabbit.oak.plugins.document.JournalDiffLoader.call(JournalDiffLoader.java:88)
> ~[oak-core-1.8-SNAPSHOT.jar:1.8-SNAPSHOT]
> at
> org.apache.jackrabbit.oak.plugins.document.DocumentNodeStore.diffImpl(DocumentNodeStore.java:2427)
> [oak-core-1.8-SNAPSHOT.jar:1.8-SNAPSHOT]
> at
> org.apache.jackrabbit.oak.plugins.document.DocumentNodeStore.access$700(DocumentNodeStore.java:136)
> [oak-core-1.8-SNAPSHOT.jar:1.8-SNAPSHOT]
> at
> org.apache.jackrabbit.oak.plugins.document.DocumentNodeStore$8.call(DocumentNodeStore.java:1621)
> ~[oak-core-1.8-SNAPSHOT.jar:1.8-SNAPSHOT]
> at
> org.apache.jackrabbit.oak.plugins.document.MemoryDiffCache$1.call(MemoryDiffCache.java:89)
> ~[oak-core-1.8-SNAPSHOT.jar:1.8-SNAPSHOT]
> at
> org.apache.jackrabbit.oak.plugins.document.MemoryDiffCache$1.call(MemoryDiffCache.java:83)
> ~[oak-core-1.8-SNAPSHOT.jar:1.8-SNAPSHOT]
> at
> com.google.common.cache.LocalCache$LocalManualCache$1.load(LocalCache.java:4724)
> ~[guava-15.0.jar:na]
> at
> com.google.common.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3522)
> ~[guava-15.0.jar:na]
> at
> com.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2315)
> ~[guava-15.0.jar:na]
> at
> com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2278)
> ~[guava-15.0.jar:na]
> at
> com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2193)
> ~[guava-15.0.jar:na]
> ... 71 common frames omitted
> 12:38:58.836 INFO [main] DocumentNodeStore.java:663 Starting disposal
> of DocumentNodeStore with clusterNodeId: 1 (id: 1, startTime: 1487072336420,
> machineId: mac:38c98646844e, instanceId:
> /Users/rekawek/granite/jackrabbit-oak/oak-upgrade, pid: 76780, uuid:
> 4089c6f3-c563-4734-8816-4ee7fb712ce5, readWriteMode: null, state: NONE,
> revLock: NONE, oakVersion: 1.8-SNAPSHOT)
> {noformat}
> It can be reproduced with the oak-upgrade test:
> {noformat}
> mvn -f oak-upgrade/pom.xml clean test -Dtest=SegmentToMongoTest && cat
> oak-upgrade/target/unit-tests.log
> {noformat}
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)