"Service proxy has been destroyed" exceptions in log

Problem

Errors/failures in the Git Integration for Jira application are seen sporadically.

Diagnosis

Jira admins will see a message similar to the one below in the Jira log: /application-logs/atlassian-jira.log:

Error

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 2019-07-07 07:07:072,777 bigbrassband-gitplugin-RevisionIndexerImpl:thread - 0 ERROR [c.b.j.g.s.indexer.revisions.RevisionIndexerImpl] Unable to index repository 'my-repository-example-name' (repoId: 777) org.eclipse.gemini.blueprint.service.importer.ServiceProxyDestroyedException: service proxy has been destroyed at org.eclipse.gemini.blueprint.service.importer.support.internal.aop.ServiceDynamicInterceptor$ServiceLookUpCallback.doWithRetry(ServiceDynamicInterceptor.java:101) at org.eclipse.gemini.blueprint.service.importer.support.internal.support.RetryTemplate.execute(RetryTemplate.java:81) at org.eclipse.gemini.blueprint.service.importer.support.internal.aop.ServiceDynamicInterceptor.lookupService(ServiceDynamicInterceptor.java:427) at org.eclipse.gemini.blueprint.service.importer.support.internal.aop.ServiceDynamicInterceptor.getTarget(ServiceDynamicInterceptor.java:400) at org.eclipse.gemini.blueprint.service.importer.support.internal.aop.ServiceInvoker.invoke(ServiceInvoker.java:60) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185) at org.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:136) at org.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:124) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185) at org.eclipse.gemini.blueprint.service.util.internal.aop.ServiceTCCLInterceptor.invokeUnprivileged(ServiceTCCLInterceptor.java:70) at org.eclipse.gemini.blueprint.service.util.internal.aop.ServiceTCCLInterceptor.invoke(ServiceTCCLInterceptor.java:53) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185) at org.eclipse.gemini.blueprint.service.importer.support.LocalBundleContextAdvice.invoke(LocalBundleContextAdvice.java:57) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185) at org.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:136) at org.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:124) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185) at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:212) at com.sun.proxy.$Proxy2505.getAllTranslationsForPrefix(Unknown Source) at com.bigbrassband.jira.git.utils.I18nManager.getForPrefix(I18nManager.java:54) at com.bigbrassband.jira.git.utils.I18nManager.getText(I18nManager.java:62) at com.bigbrassband.jira.git.services.indexer.revisions.GitPluginIndexManagerImpl.handleUpdateError(GitPluginIndexManagerImpl.java:303) at com.bigbrassband.jira.git.services.indexer.revisions.GitPluginIndexManagerImpl.fetchImpl(GitPluginIndexManagerImpl.java:523) at com.bigbrassband.jira.git.services.indexer.revisions.GitPluginIndexManagerImpl.callFetch(GitPluginIndexManagerImpl.java:502) at com.bigbrassband.jira.git.services.indexer.revisions.GitPluginIndexManagerImpl.updateIndex(GitPluginIndexManagerImpl.java:339) at com.bigbrassband.jira.git.services.indexer.revisions.RevisionIndexerImpl$1.doRun(RevisionIndexerImpl.java:151) at com.bigbrassband.jira.git.services.indexer.revisions.QueueEntry.run(QueueEntry.java:82) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at java.lang.Thread.run(Thread.java:748)

Cause

On occasion - the Atlassian Universal Plugin Manager (UPM) will not stop threads from previous versions of the Git Integration for Jira plugin.

Solution

No configuration or source code data is lost when uninstalling, disabling or cleaning up plugin folders. However - if you wish to export your settings prior to these change - use the Bulk Change export.

Update the Atlassian Universal Plugin Manager ("UPM") to the latest version prior to using the following solutions:

Step 1: Re-enable app.

  1. Disable the Git Integration for Jira app in Manage apps.

  2. Re-enable Git Integration for Jira app.

  3. Optional: Restart Jira.

  4. Reindex repositories.

  5. If symptoms persist, proceed to next step.

Step 2: Reinstall app.

  1. Update the Universal Plugin Manager (UPM) to the latest version offered by Atlassian.

  2. Uninstall the Git Integration for Jira app in Manage apps.

  3. Re-install Git Integration for Jira app.

  4. Optional: Restart Jira.

  5. Reindex repositories.

  6. If symptoms persist, proceed to next step.

Step 3: Clean up plugin folders.

  1. Stop Jira.

  2. Clean up plugin temp folders fully or remove these files:

    1. JIRA_INSTALL_FOLDER/temp/*_git_plugin-*.jar

    2. JIRA_HOME_FOLDER/plugins/.osgi-plugins/transformed-plugins/*_git_plugin-*.jar

  3. Remove all versions of the Git Integration for Jira app from the installed-plugins folder except the latest version (JIRA_HOME_FOLDER/plugins/installed-plugins/*jira_git_plugin-x.x.x.jar).

    1. JIRA_HOME_FOLDER/plugins/installed-plugins/*_git_plugin-*.jar

  4. Start Jira.

  5. Reindex repositories.

  6. If symptoms persist, contact BigBrassBand Support.

Contact Us
If you still have a question - reach out to our Support Desk or email us at support@bigbrassband.com.