Uploaded image for project: 'Jira Data Center'
  1. Jira Data Center
  2. JRASERVER-28379

OnDemand Importer may fail after data import but before "post-import Studify", resulting in a corrupt instance.

    XMLWordPrintable

Details

    Description

      NOTE: This bug report is for JIRA Server. Using JIRA Cloud? See the corresponding bug report.

      The OnDemand Importer has logic in StudioImporterFacade#postImportStudify() to massage freshly imported config data into the shape required by OnDemand environment.

      If the import process fails after the data import but before this "post-import Studify" step, the instance configuration is corrupt, in such a way that customers cannot log in.

      The workaround to re-enable access to customer admins is to correct the base URL, and manually ensure the Global Permissions refer to groups that exist on OnDemand (for example, replace jira-administrators with administrators). The customer admin may then re-run an import, and the instance should be OK if this second import completes successfully.

      This seems to be rare, but the impact is severe. Failures I have seen that have caused this are:

      • A badly timed PermGen exhaustion.
      • The following exception (not sure what the underlying cause is):
        2012-05-23 18:19:25,932 JiraImportTaskExecutionThread-1 ERROR rfernandes 1098x7022x1 970isl 59.167.133.3,59.167.133.70 /secure/admin/StudioImport!import.jspa [jira.bc.dataimport.DefaultDataImportService] Error importing data: java.lang.IllegalStateException: It is illegal to call the ServiceManager before all components are loaded. Please use interface com.atlassian.jira.extension.Startable to get notified when JIRA has started.
        java.lang.IllegalStateException: It is illegal to call the ServiceManager before all components are loaded. Please use interface com.atlassian.jira.extension.Startable to get notified when JIRA has started.
              at com.atlassian.jira.service.DefaultServiceManager.ensureServicesLoaded(DefaultServiceManager.java:301)
              at com.atlassian.jira.service.DefaultServiceManager.getServices(DefaultServiceManager.java:81)
              at com.atlassian.jira.upgrade.ConsistencyCheckImpl.getServices(ConsistencyCheckImpl.java:170)
              at com.atlassian.jira.upgrade.ConsistencyCheckImpl.ensureSingleService(ConsistencyCheckImpl.java:524)
              at com.atlassian.jira.upgrade.ConsistencyCheckImpl.checkMailListenerAndService(ConsistencyCheckImpl.java:385)
              at com.atlassian.jira.upgrade.ConsistencyCheckImpl.checkDataConsistency(ConsistencyCheckImpl.java:224)
              at com.atlassian.jira.bc.dataimport.DefaultDataImportService.checkConsistency(DefaultDataImportService.java:653)
              at com.atlassian.jira.bc.dataimport.DefaultDataImportService.performImport(DefaultDataImportService.java:564)
              at com.atlassian.jira.bc.dataimport.DefaultDataImportService.doImport(DefaultDataImportService.java:222)
              at com.atlassian.jira.studio.importer.StudioDataImportAsyncCommand.call(StudioDataImportAsyncCommand.java:97)
              at com.atlassian.jira.studio.importer.StudioDataImportAsyncCommand.call(StudioDataImportAsyncCommand.java:1)
              at com.atlassian.jira.task.ImportTaskManagerImpl$TaskCallableDecorator.call(ImportTaskManagerImpl.java:147)
              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 com.atlassian.multitenant.impl.DefaultMultiTenantManager.runForTenant(DefaultMultiTenantManager.java:61)
              at com.atlassian.multitenant.juc.MultiTenantExecutors$WrappedRunnable.run(MultiTenantExecutors.java:160)
              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)
        

      Attachments

        Issue Links

          Activity

            People

              Unassigned Unassigned
              rfernandes Robin Fernandes (go/robinleave) (Inactive)
              Votes:
              0 Vote for this issue
              Watchers:
              9 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: