Details
-
Bug
-
Resolution: Fixed
-
Low
-
None
Description
JIRA import can fail in OD during re-indexing with a message like the one below in the logs.
The problem is that 2 re-indexes are kicked off in parallel when the upgrade tasks run during the import. One is triggered by UT055UseDefaultPaths in a new thread, and the other is triggered by UT066StripCustomSearchFieldDescriptions in the import thread, which leads to a race condition.
Both re-index jobs identify a message from a prior re-index to be deleted, but the first wins the race to delete of the message, such that when the second attempts to do so, it fails with the NPE here.
I suspect the parallel triggered by UT055UseDefaultPaths is unnecessary.
2013-01-21 18:17:30,427 JiraImportTaskExecutionThread-1 ERROR sysadmin 1090x540x1 gzijnl 59.167.133.100,59.167.29.201 /secure/admin/StudioImport!import.jspa [jira.util.index.CompositeIndexLifecycleManager] Reindex All FAILED. Indexer: DefaultIndexManager: paths: [/data/jirastudio/jira/home/caches/indexes/comments, /data/jirastudio/jira/home/caches/indexes/issues, /data/jirastudio/jira/home/caches/indexes/changes] java.lang.NullPointerException at java.util.Date.getMillisOf(Date.java:939) at java.util.Date.before(Date.java:898) at com.atlassian.jira.config.DefaultReindexMessageManager.clearMessageForTimestamp(DefaultReindexMessageManager.java:212) at com.atlassian.jira.issue.index.DefaultIndexManager.reIndexAll(DefaultIndexManager.java:349) at com.atlassian.jira.issue.index.DefaultIndexManager.reIndexAll(DefaultIndexManager.java:301) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at com.atlassian.util.profiling.object.ObjectProfiler.profiledInvoke(ObjectProfiler.java:81) at com.atlassian.jira.config.component.SwitchingInvocationHandler.invoke(SwitchingInvocationHandler.java:28) at $Proxy157.reIndexAll(Unknown Source) at com.atlassian.jira.util.index.CompositeIndexLifecycleManager.reIndexAll(CompositeIndexLifecycleManager.java:54) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at com.atlassian.plugin.osgi.hostcomponents.impl.DefaultComponentRegistrar$ContextClassLoaderSettingInvocationHandler.invoke(DefaultComponentRegistrar.java:129) at $Proxy388.reIndexAll(Unknown Source) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at com.atlassian.plugin.osgi.bridge.external.HostComponentFactoryBean$DynamicServiceInvocationHandler.invoke(HostComponentFactoryBean.java:154) at $Proxy388.reIndexAll(Unknown Source) at com.atlassian.studio.jira.importer.impl.LegacyStudioImportManager.postImportStudify(LegacyStudioImportManager.java:134) at com.atlassian.studio.jira.importer.impl.StudioImporterFacade.postImportStudify(StudioImporterFacade.java:99) at com.atlassian.jira.studio.importer.StudioDataImportAsyncCommand.doStudioImportTasks(StudioDataImportAsyncCommand.java:264) at com.atlassian.jira.studio.importer.StudioDataImportAsyncCommand.call(StudioDataImportAsyncCommand.java:146) at com.atlassian.jira.studio.importer.StudioDataImportAsyncCommand.call(StudioDataImportAsyncCommand.java:48) at com.atlassian.jira.task.ImportTaskManagerImpl$TaskCallableDecorator.call(ImportTaskManagerImpl.java:146) at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303) at java.util.concurrent.FutureTask.run(FutureTask.java:138) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441) at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303) at java.util.concurrent.FutureTask.run(FutureTask.java:138) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) at java.lang.Thread.run(Thread.java:662) 2013-01-21 18:17:30,430 JiraImportTaskExecutionThread-1 ERROR sysadmin 1090x540x1 gzijnl 59.167.133.100,59.167.29.201 /secure/admin/StudioImport!import.jspa [jira.studio.importer.StudioImport] Unexpected error while restoring data: com.atlassian.studio.host.common.DataSetupException: Error reindexing com.atlassian.studio.host.common.DataSetupException: Error reindexing at com.atlassian.studio.jira.importer.impl.LegacyStudioImportManager.postImportStudify(LegacyStudioImportManager.java:139) at com.atlassian.studio.jira.importer.impl.StudioImporterFacade.postImportStudify(StudioImporterFacade.java:99) at com.atlassian.jira.studio.importer.StudioDataImportAsyncCommand.doStudioImportTasks(StudioDataImportAsyncCommand.java:264) at com.atlassian.jira.studio.importer.StudioDataImportAsyncCommand.call(StudioDataImportAsyncCommand.java:146) at com.atlassian.jira.studio.importer.StudioDataImportAsyncCommand.call(StudioDataImportAsyncCommand.java:48) at com.atlassian.jira.task.ImportTaskManagerImpl$TaskCallableDecorator.call(ImportTaskManagerImpl.java:146) at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303) at java.util.concurrent.FutureTask.run(FutureTask.java:138) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441) at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303) at java.util.concurrent.FutureTask.run(FutureTask.java:138) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) at java.lang.Thread.run(Thread.java:662) Caused by: java.lang.NullPointerException at java.util.Date.getMillisOf(Date.java:939) at java.util.Date.before(Date.java:898) at com.atlassian.jira.config.DefaultReindexMessageManager.clearMessageForTimestamp(DefaultReindexMessageManager.java:212) at com.atlassian.jira.issue.index.DefaultIndexManager.reIndexAll(DefaultIndexManager.java:349) at com.atlassian.jira.issue.index.DefaultIndexManager.reIndexAll(DefaultIndexManager.java:301) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at com.atlassian.util.profiling.object.ObjectProfiler.profiledInvoke(ObjectProfiler.java:81) at com.atlassian.jira.config.component.SwitchingInvocationHandler.invoke(SwitchingInvocationHandler.java:28) at $Proxy157.reIndexAll(Unknown Source) at com.atlassian.jira.util.index.CompositeIndexLifecycleManager.reIndexAll(CompositeIndexLifecycleManager.java:54) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at com.atlassian.plugin.osgi.hostcomponents.impl.DefaultComponentRegistrar$ContextClassLoaderSettingInvocationHandler.invoke(DefaultComponentRegistrar.java:129) at $Proxy388.reIndexAll(Unknown Source) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at com.atlassian.plugin.osgi.bridge.external.HostComponentFactoryBean$DynamicServiceInvocationHandler.invoke(HostComponentFactoryBean.java:154) at $Proxy388.reIndexAll(Unknown Source) at com.atlassian.studio.jira.importer.impl.LegacyStudioImportManager.postImportStudify(LegacyStudioImportManager.java:134) ... 13 more
This was originally identified in support case JST-54019.