[jira] [Commented] (OAK-6066) Migration of binaries relies on implementation details of the TarMK
[ https://issues.apache.org/jira/browse/OAK-6066?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16259113#comment-16259113 ] Tomek Rękawek commented on OAK-6066: Fixed for trunk in [r1815789|https://svn.apache.org/r1815789]. > Migration of binaries relies on implementation details of the TarMK > --- > > Key: OAK-6066 > URL: https://issues.apache.org/jira/browse/OAK-6066 > Project: Jackrabbit Oak > Issue Type: Bug > Components: upgrade >Reporter: Michael Dürig >Assignee: Tomek Rękawek > Labels: migration, tooling > Fix For: 1.8, 1.7.12 > > Attachments: OAK_6066.patch > > > This was uncovered with the work on OAK-6051. > On {{NodeStore.merge()}} the TarMK uses {{SegmentNodeState#fastEquals}} to > efficiently determine whether there is something to commit and whether the > base state changed since the builder about to commit was acquired. For > efficiency reasons {{fastEquals}} can return "false negatives". AFAIU > migration of binaries depends on this implementation detail because without > this optimisation migration fails. ({{SegmentToExternalMigrationTest}} and > {{ExternalToExternalMigrationTest}} fail). -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[jira] [Commented] (OAK-6066) Migration of binaries relies on implementation details of the TarMK
[ https://issues.apache.org/jira/browse/OAK-6066?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16255267#comment-16255267 ] Michael Dürig commented on OAK-6066: [~tomek.rekawek], could you help triaging this one? Is this something that needs to be addressed for 1.8? What is the risk of not doing anything? > Migration of binaries relies on implementation details of the TarMK > --- > > Key: OAK-6066 > URL: https://issues.apache.org/jira/browse/OAK-6066 > Project: Jackrabbit Oak > Issue Type: Bug > Components: upgrade >Reporter: Michael Dürig > Labels: migration, tooling > Fix For: 1.8 > > Attachments: OAK_6066.patch > > > This was uncovered with the work on OAK-6051. > On {{NodeStore.merge()}} the TarMK uses {{SegmentNodeState#fastEquals}} to > efficiently determine whether there is something to commit and whether the > base state changed since the builder about to commit was acquired. For > efficiency reasons {{fastEquals}} can return "false negatives". AFAIU > migration of binaries depends on this implementation detail because without > this optimisation migration fails. ({{SegmentToExternalMigrationTest}} and > {{ExternalToExternalMigrationTest}} fail). -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[jira] [Commented] (OAK-6066) Migration of binaries relies on implementation details of the TarMK
[ https://issues.apache.org/jira/browse/OAK-6066?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15964230#comment-15964230 ] Michael Dürig commented on OAK-6066: [^OAK_6066.patch] exemplifies the problem: with these seemingly harmless (though useless) changes {{AbstractMigratorTest.blobsExistsOnTheNewBlobStore()}} fails. The reason for this is that with the patch the commit is not a simple fast forward but needs to go through rebasing (if vs. else branch in {{Commit.apply()}}). When rebasing full structural equality is employed, which doesn't see the "false negatives" from {{fastEquals()}}. > Migration of binaries relies on implementation details of the TarMK > --- > > Key: OAK-6066 > URL: https://issues.apache.org/jira/browse/OAK-6066 > Project: Jackrabbit Oak > Issue Type: Bug > Components: upgrade >Reporter: Michael Dürig > Labels: migration > Fix For: 1.8 > > Attachments: OAK_6066.patch > > > This was uncovered with the work on OAK-6051. > On {{NodeStore.merge()}} the TarMK uses {{SegmentNodeState#fastEquals}} to > efficiently determine whether there is something to commit and whether the > base state changed since the builder about to commit was acquired. For > efficiency reasons {{fastEquals}} can return "false negatives". AFAIU > migration of binaries depends on this implementation detail because without > this optimisation migration fails. ({{SegmentToExternalMigrationTest}} and > {{ExternalToExternalMigrationTest}} fail). -- This message was sent by Atlassian JIRA (v6.3.15#6346)