Thanks Denis for finding that one :) For the records, I still didn't finish my test migration (availability disappeared ...), I still have to solve some corrupted statistics before retrying migration, as you told me.
2012/9/5 Denis Gervalle <d...@softec.lu>: > Just a followup on this one, so anyone falling here knows the outcome. > > The related JIRA issues are: > XWIKI-8126: Better error reporting when proper hibernate mapping is not > found during R40000XWIKI6990. > XWIKI-8130: copyDocument should not copy the custom mapping of the > document xClass > > The NPE exception will be replace by an DataMigrationException with a > message similar to the following in our next releases (4.1.4 and 4.2M3): > > Could not migrate IDs for class [XWiki.CopyOfXWikiPreferences] : no >> hibernate mapping found. For example, this error commonly happens if you >> have copied a document defining an internally mapped class (like >> XWiki.XWikiPreferences) and never used the newly created class OR if >> you have forgotten to customize the hibernate mapping while using your own >> internally custom mapped class. In the first and most common case, to fix >> this issue and migrate your wiki, you should delete the offending and >> useless class definition or the whole document defining that class from >> your original wiki before the migration. > > > The problem encountered by Jeremie is that he have made a copy of > XWiki.XWikiPreferences into a new document XWiki.CopyOfXWikiPreferences. > That new document will contains the preferences in an object of class > XWiki.XWikiPreferences, but it will also define a new class named > XWiki.CopyOfXWikiPreferences which is the copy of the class > XWiki.XWikiPreference. That new class received the same internal mapping > than its original source. However, the hibernate mapping needed is not > available in the hibernate mapping configuration, and that new class is > unusable and cannot be migrated properly. So to fix the issue, you need to > delete that new class definition or remove the document containing that > definition. > > In the next release, the copyDocument operation will also not copy the > custom mapping, so that any copied class will not be custom mapped anymore. > > Thanks Jeremie for your help. > > On Thu, Aug 9, 2012 at 10:11 PM, Denis Gervalle <d...@softec.lu> wrote: > >> Dear Jeremie, >> >> I am currently looking at your issue. From my current hypothesis, your >> issue is related to dynamically custom mapped classes, a feature that is >> not much know or used. I would be happy to help you more on this issue, but >> I will need more information, that you may not which to provide in public. >> So I invite you to contact me in private, and it would be great to have a >> more interactive communication mean than email. >> >> Regards, >> >> >> On Thu, Aug 9, 2012 at 1:47 PM, jerem <jeremie.bousq...@gmail.com> wrote: >> >>> Hello, >>> >>> Really no idea about this ? :) >>> >>> Br, >>> Jeremie >>> >>> >>> jerem wrote >>> > >>> > Having found this : >>> > >>> https://github.com/xwiki/xwiki-platform/commit/662163a5bd7f5d21085e41aa9b530df86f87870e >>> , >>> > ... I tried as indicated to use "safe mode" for this particular >>> migration, >>> > so I added the following to my xwiki.cfg and restarted: >>> > xwiki.store.migration.R40000XWIKI6990.safemode=1 >>> > >>> > It still fails, though exception stacktrace is slightly different >>> (breaks >>> > on line 1127 instead of 777) : >>> > >>> > Caused by: java.lang.NullPointerException: null >>> > at >>> > >>> com.xpn.xwiki.store.migration.hibernate.R40000XWIKI6990DataMigration.hibernateMigrate(R40000XWIKI6990DataMigration.java:1127) >>> > ~[xwiki-platform-legacy-oldcore-4.1.3.jar:na] >>> > at >>> > >>> com.xpn.xwiki.store.migration.hibernate.AbstractHibernateDataMigration.migrate(AbstractHibernateDataMigration.java:109) >>> > ~[xwiki-platform-legacy-oldcore-4.1.3.jar:na] >>> > ... 57 common frames omitted >>> > >>> > (I omitted the rest of the logs that are almost identical) >>> > >>> > In fact it breaks on an identical line but in alternate condition (for >>> > safe mode): >>> > >>> > // Skip classes that will be updated by cascaded updates >>> > if (!this.fkTables.contains(klass.getTable())) { >>> > ... >>> > >>> > Thanks, >>> > Jeremie >>> > >>> > >>> > jerem wrote >>> >> >>> >> Hi guys, >>> >> >>> >> Tried migrating from 3.5 to 4.1.3 on my test instance, and it seems >>> >> I'm stuck ... >>> >> My test wiki is setup as a multi-wiki environment (for workspaces), >>> >> the main db "xwiki" fails to be migrated, though other ones succeed. >>> >> >>> >> I checked other posts about migration issues, and it seems there >>> >> usually are some indicative logs about what sql fails, in my case I >>> >> only get a not nice NPE ... >>> >> I saw other things about custom annotation class, but I do not >>> >> remember having customized this in any way ... Some residue of >>> >> previous migrations maybe ? >>> >> >>> >> The error in logs at startup is : >>> >> >>> >> 2012-08-06 14:06:58,920 >>> >> [http://hostname:8080/xwikitest/bin/view/Main/] INFO >>> >> .HibernateDataMigrationManager - Running storage schema updates and >>> >> migrations >>> >> 2012-08-06 14:06:59,110 >>> >> [http://hostname:8080/xwikitest/bin/view/Main/] INFO >>> >> .HibernateDataMigrationManager - Starting migration for database >>> >> [xwiki]... >>> >> 2012-08-06 14:06:59,527 >>> >> [http://hostname:8080/xwikitest/bin/view/Main/] WARN >>> >> h.R40001XWIKI7540DataMigration - Skipping database [xwiki] because it >>> >> uses a custom annotation class. Comments and anotations will remain >>> >> separated >>> >> 2012-08-06 14:06:59,527 >>> >> [http://hostname:8080/xwikitest/bin/view/Main/] INFO >>> >> .HibernateDataMigrationManager - Current storage version = [15429] >>> >> 2012-08-06 14:06:59,527 >>> >> [http://hostname:8080/xwikitest/bin/view/Main/] INFO >>> >> .HibernateDataMigrationManager - List of migrations that will be >>> >> executed: >>> >> 2012-08-06 14:06:59,527 >>> >> [http://hostname:8080/xwikitest/bin/view/Main/] INFO >>> >> .HibernateDataMigrationManager - R40000XWIKI6990 - Convert document >>> >> IDs to use the new improved hash algorithm. >>> >> 2012-08-06 14:07:00,626 >>> >> [http://hostname:8080/xwikitest/bin/view/Main/] INFO >>> >> h.R40000XWIKI6990DataMigration - [R40000XWIKI6990] - 21 schema updates >>> >> required. >>> >> 2012-08-06 14:07:01,959 >>> >> [http://hostname:8080/xwikitest/bin/view/Main/] INFO >>> >> c.x.x.s.m.liquibase - Successfully acquired change log lock >>> >> 2012-08-06 14:07:02,128 >>> >> [http://hostname:8080/xwikitest/bin/view/Main/] INFO >>> >> c.x.x.s.m.liquibase - Reading from `DATABASECHANGELOG` >>> >> 2012-08-06 14:07:02,136 >>> >> [http://hostname:8080/xwikitest/bin/view/Main/] INFO >>> >> c.x.x.s.m.liquibase - Reading from `DATABASECHANGELOG` >>> >> 2012-08-06 14:07:02,231 >>> >> [http://hostname:8080/xwikitest/bin/view/Main/] INFO >>> >> c.x.x.s.m.liquibase - Successfully released change log lock >>> >> 2012-08-06 14:07:02,232 >>> >> [http://hostname:8080/xwikitest/bin/view/Main/] INFO >>> >> .HibernateDataMigrationManager - Running migration [R40000XWIKI6990] >>> >> with version [40000] >>> >> 2012-08-06 14:07:02,893 >>> >> [http://hostname:8080/xwikitest/bin/view/Main/] INFO >>> >> h.R40000XWIKI6990DataMigration - [R40000XWIKI6990] - Retrieved 0 >>> >> document IDs to be converted. >>> >> 2012-08-06 14:07:03,421 >>> >> [http://hostname:8080/xwikitest/bin/view/Main/] INFO >>> >> h.R40000XWIKI6990DataMigration - [R40000XWIKI6990] - Retrieved 6297 >>> >> object IDs to be converted. >>> >> 2012-08-06 14:07:03,489 >>> >> [http://hostname:8080/xwikitest/bin/view/Main/] INFO >>> >> h.R40000XWIKI6990DataMigration - [R40000XWIKI6990] - Retrieved 6 >>> >> custom mapped classes to be processed. >>> >> 2012-08-06 14:07:17,970 >>> >> [http://hostname:8080/xwikitest/bin/view/Main/] INFO >>> >> h.R40000XWIKI6990DataMigration - [R40000XWIKI6990] - Retrieved 793746 >>> >> document statistics IDs to be converted. >>> >> 2012-08-06 14:07:22,231 >>> >> [http://hostname:8080/xwikitest/bin/view/Main/] INFO >>> >> h.R40000XWIKI6990DataMigration - [R40000XWIKI6990] - Retrieved 223856 >>> >> referer statistics IDs to be converted. >>> >> 2012-08-06 14:08:20,614 >>> >> [http://hostname:8080/xwikitest/bin/view/Main/] INFO >>> >> h.R40000XWIKI6990DataMigration - [R40000XWIKI6990] - Retrieved 1177489 >>> >> visit statistics IDs to be converted. >>> >> 2012-08-06 14:08:20,635 >>> >> [http://hostname:8080/xwikitest/bin/view/Main/] INFO >>> >> h.R40000XWIKI6990DataMigration - [R40000XWIKI6990] - No document IDs >>> >> to convert, skipping. >>> >> 2012-08-06 14:08:20,681 >>> >> [http://hostname:8080/xwikitest/bin/view/Main/] INFO >>> >> .HibernateDataMigrationManager - Failed to migrate database [xwiki]... >>> >> com.xpn.xwiki.store.migration.DataMigrationException: Data migration >>> >> R40000XWIKI6990 failed >>> >> at >>> >> >>> com.xpn.xwiki.store.migration.hibernate.AbstractHibernateDataMigration.migrate(AbstractHibernateDataMigration.java:111) >>> >> ~[xwiki-platform-legacy-oldcore-4.1.3.jar:na] >>> >> at >>> >> >>> com.xpn.xwiki.store.migration.AbstractDataMigrationManager.startMigrations(AbstractDataMigrationManager.java:621) >>> >> [xwiki-platform-legacy-oldcore-4.1.3.jar:na] >>> >> at >>> >> >>> com.xpn.xwiki.store.migration.AbstractDataMigrationManager.startMigrationsForDatabase(AbstractDataMigrationManager.java:546) >>> >> [xwiki-platform-legacy-oldcore-4.1.3.jar:na] >>> >> at >>> >> >>> com.xpn.xwiki.store.migration.AbstractDataMigrationManager.startMigrations(AbstractDataMigrationManager.java:475) >>> >> [xwiki-platform-legacy-oldcore-4.1.3.jar:na] >>> >> at >>> >> >>> com.xpn.xwiki.store.migration.hibernate.HibernateDataMigrationManager.startMigrations(HibernateDataMigrationManager.java:296) >>> >> [xwiki-platform-legacy-oldcore-4.1.3.jar:na] >>> >> at >>> >> >>> com.xpn.xwiki.store.migration.AbstractDataMigrationManager.checkDatabase(AbstractDataMigrationManager.java:421) >>> >> [xwiki-platform-legacy-oldcore-4.1.3.jar:na] >>> >> at >>> >> >>> com.xpn.xwiki.store.XWikiHibernateBaseStore.setDatabase(XWikiHibernateBaseStore.java:666) >>> >> [xwiki-platform-legacy-oldcore-4.1.3.jar:na] >>> >> at >>> >> >>> com.xpn.xwiki.store.XWikiHibernateBaseStore.beginTransaction(XWikiHibernateBaseStore.java:813) >>> >> [xwiki-platform-legacy-oldcore-4.1.3.jar:na] >>> >> at >>> >> >>> com.xpn.xwiki.store.XWikiHibernateBaseStore.beginTransaction(XWikiHibernateBaseStore.java:746) >>> >> [xwiki-platform-legacy-oldcore-4.1.3.jar:na] >>> >> at >>> >> >>> com.xpn.xwiki.store.XWikiHibernateStore.loadXWikiDoc(XWikiHibernateStore.java:736) >>> >> [xwiki-platform-legacy-oldcore-4.1.3.jar:na] >>> >> at >>> >> >>> com.xpn.xwiki.store.XWikiCacheStore.loadXWikiDoc(XWikiCacheStore.java:290) >>> >> [xwiki-platform-legacy-oldcore-4.1.3.jar:na] >>> >> at com.xpn.xwiki.XWiki.getDocument(XWiki.java:1438) >>> >> [xwiki-platform-legacy-oldcore-4.1.3.jar:na] >>> >> at com.xpn.xwiki.XWiki.getDocument(XWiki.java:1481) >>> >> [xwiki-platform-legacy-oldcore-4.1.3.jar:na] >>> >> at com.xpn.xwiki.XWiki.getXWikiPreference(XWiki.java:2215) >>> >> [xwiki-platform-legacy-oldcore-4.1.3.jar:na] >>> >> at com.xpn.xwiki.XWiki.getXWikiPreference(XWiki.java:2247) >>> >> [xwiki-platform-legacy-oldcore-4.1.3.jar:na] >>> >> at >>> >> >>> com.xpn.xwiki.render.XWikiMacrosMappingRenderer.loadPreferences(XWikiMacrosMappingRenderer.java:107) >>> >> [xwiki-platform-legacy-oldcore-4.1.3.jar:na] >>> >> at >>> >> >>> com.xpn.xwiki.render.XWikiMacrosMappingRenderer.<init>(XWikiMacrosMappingRenderer.java:83) >>> >> [xwiki-platform-legacy-oldcore-4.1.3.jar:na] >>> >> at >>> >> >>> com.xpn.xwiki.render.DefaultXWikiRenderingEngine.<init>(DefaultXWikiRenderingEngine.java:72) >>> >> [xwiki-platform-legacy-oldcore-4.1.3.jar:na] >>> >> at com.xpn.xwiki.XWiki.resetRenderingEngine(XWiki.java:1114) >>> >> [xwiki-platform-legacy-oldcore-4.1.3.jar:na] >>> >> at com.xpn.xwiki.XWiki.initXWiki(XWiki.java:790) >>> >> [xwiki-platform-legacy-oldcore-4.1.3.jar:na] >>> >> [ ... some lines excluded ... ] >>> >> Caused by: java.lang.NullPointerException: null >>> >> at >>> >> >>> com.xpn.xwiki.store.migration.hibernate.R40000XWIKI6990DataMigration.getAllTableToProcess(R40000XWIKI6990DataMigration.java:777) >>> >> ~[xwiki-platform-legacy-oldcore-4.1.3.jar:na] >>> >> at >>> >> >>> com.xpn.xwiki.store.migration.hibernate.R40000XWIKI6990DataMigration.getAllTableToProcess(R40000XWIKI6990DataMigration.java:761) >>> >> ~[xwiki-platform-legacy-oldcore-4.1.3.jar:na] >>> >> at >>> >> >>> com.xpn.xwiki.store.migration.hibernate.R40000XWIKI6990DataMigration.hibernateMigrate(R40000XWIKI6990DataMigration.java:1066) >>> >> ~[xwiki-platform-legacy-oldcore-4.1.3.jar:na] >>> >> at >>> >> >>> com.xpn.xwiki.store.migration.hibernate.AbstractHibernateDataMigration.migrate(AbstractHibernateDataMigration.java:109) >>> >> ~[xwiki-platform-legacy-oldcore-4.1.3.jar:na] >>> >> ... 57 common frames omitted >>> >> >>> >> >>> >> Thanks for help ! >>> >> >>> >> Jeremie >>> >> _______________________________________________ >>> >> users mailing list >>> >> users@ >>> >> http://lists.xwiki.org/mailman/listinfo/users >>> >> >>> > >>> >>> >>> >>> >>> -- >>> View this message in context: >>> http://xwiki.475771.n2.nabble.com/Another-migration-problem-3-5-to-4-1-3-tp7580726p7580809.html >>> Sent from the XWiki- Users mailing list archive at Nabble.com. >>> _______________________________________________ >>> users mailing list >>> users@xwiki.org >>> http://lists.xwiki.org/mailman/listinfo/users >>> >> >> -- >> Denis Gervalle >> SOFTEC sa - CEO >> eGuilde sarl - CTO >> > > > -- > Denis Gervalle > SOFTEC sa - CEO > eGuilde sarl - CTO > _______________________________________________ > users mailing list > users@xwiki.org > http://lists.xwiki.org/mailman/listinfo/users _______________________________________________ users mailing list users@xwiki.org http://lists.xwiki.org/mailman/listinfo/users