Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Gerrit outage shouldn't affect whether you can view issues in Jira UI #84

Open
sselberg opened this issue Sep 6, 2021 · 1 comment
Open

Comments

@sselberg
Copy link

sselberg commented Sep 6, 2021

After a infrastructure collapse connection between Jira and Gerrit was cut-off, the result was that you couldn't view issues in Jira.

/secure/AjaxIssueAction!default.jspa [c.m.p.j.gerrit.webpanel.ShowReviewsWebPanelCondition] An ssh error occurred while querying for reviews.
com.sonyericsson.hudson.plugins.gerrit.gerritevents.GerritQueryException: An ssh error occurred while querying for reviews.
        at com.meetme.plugins.jira.gerrit.data.IssueReviewsImpl.getReviewsFromGerrit(IssueReviewsImpl.java:95)
        at com.meetme.plugins.jira.gerrit.data.IssueReviewsImpl.getReviewsForIssue(IssueReviewsImpl.java:70)
        at com.meetme.plugins.jira.gerrit.webpanel.ShowReviewsWebPanelCondition.shouldDisplay(ShowReviewsWebPanelCondition.java:58)
        at com.atlassian.plugin.web.DefaultWebInterfaceManager.filterFragmentsByCondition(DefaultWebInterfaceManager.java:160)
        at com.atlassian.plugin.web.DefaultWebInterfaceManager.getDisplayableWebPanelDescriptors(DefaultWebInterfaceManager.java:123)
        ... 2 filtered
        at java.lang.reflect.Method.invoke(Method.java:498)
        at com.atlassian.plugin.util.ContextClassLoaderSettingInvocationHandler.invoke(ContextClassLoaderSettingInvocationHandler.java:26)
        at com.sun.proxy.$Proxy195.getDisplayableWebPanelDescriptors(Unknown Source)
        ... 2 filtered
        at java.lang.reflect.Method.invoke(Method.java:498)
        at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:343)
        at org.eclipse.gemini.blueprint.service.importer.support.internal.aop.ServiceInvoker.doInvoke(ServiceInvoker.java:56)
        at org.eclipse.gemini.blueprint.service.importer.support.internal.aop.ServiceInvoker.invoke(ServiceInvoker.java:60)
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
        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:186)
        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:186)
        at org.eclipse.gemini.blueprint.service.importer.support.LocalBundleContextAdvice.invoke(LocalBundleContextAdvice.java:57)
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
        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:186)
        at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:212)
        at com.sun.proxy.$Proxy3524.getDisplayableWebPanelDescriptors(Unknown Source)
        at com.atlassian.jira.issue.util.IssueWebPanelRenderUtil.getWebPanels(IssueWebPanelRenderUtil.java:66)
        at com.atlassian.jira.issue.util.IssueWebPanelRenderUtil.getLeftWebPanels(IssueWebPanelRenderUtil.java:58)
        at com.atlassian.jira.components.issueviewer.viewissue.webpanel.WebPanelMapperUtilImpl.create(WebPanelMapperUtilImpl.java:64)
        at com.atlassian.jira.components.issueviewer.action.AjaxIssueAction.populateIssueFields(AjaxIssueAction.java:161)
        at com.atlassian.jira.components.issueviewer.action.AjaxIssueAction.doDefault(AjaxIssueAction.java:134)
        ... 2 filtered
        at java.lang.reflect.Method.invoke(Method.java:498)
        at webwork.util.InjectionUtils$DefaultInjectionImpl.invoke(InjectionUtils.java:70)
        at webwork.util.InjectionUtils.invoke(InjectionUtils.java:56)
        ... 2 filtered
        at com.atlassian.jira.action.JiraActionSupport.execute(JiraActionSupport.java:63)
        ... 7 filtered
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:733)
        ... 48 filtered
        at com.atlassian.greenhopper.jira.filters.ClassicBoardRouter.doFilter(ClassicBoardRouter.java:56)
        ... 7 filtered
        at com.atlassian.jira.plugin.mobile.web.filter.MobileAppRequestFilter.doFilter(MobileAppRequestFilter.java:59)
        ... 4 filtered
        at com.atlassian.jira.plugin.mobile.login.MobileLoginSuccessFilter.doFilter(MobileLoginSuccessFilter.java:54)
        ... 3 filtered
        at com.atlassian.diagnostics.internal.platform.monitor.http.HttpRequestMonitoringFilter.doFilter(HttpRequestMonitoringFilter.java:55)
        ... 8 filtered
        at com.atlassian.web.servlet.plugin.request.RedirectInterceptingFilter.doFilter(RedirectInterceptingFilter.java:21)
        ... 46 filtered
        at com.resolution.atlasplugins.samlsso.servlet.RedirectToSsoFilter.doFilter(RedirectToSsoFilter.java:60)
        ... 3 filtered
        at com.atlassian.troubleshooting.thready.filter.AbstractThreadNamingFilter.doFilter(AbstractThreadNamingFilter.java:46)
        ... 17 filtered
        at com.atlassian.jira.security.JiraSecurityFilter.lambda$doFilter$0(JiraSecurityFilter.java:66)
        ... 1 filtered
        at com.atlassian.jira.security.JiraSecurityFilter.doFilter(JiraSecurityFilter.java:64)
        ... 39 filtered
        at com.atlassian.jira.servermetrics.CorrelationIdPopulatorFilter.doFilter(CorrelationIdPopulatorFilter.java:30)
        ... 5 filtered
        at com.resolution.atlasplugins.samlsso.servlet.SetSameSiteCookieAttributeToNoneAttributeFilter.doFilter(SetSameSiteCookieAttributeToNoneAttributeFilter.java:51)
        ... 8 filtered
        at com.atlassian.web.servlet.plugin.request.RedirectInterceptingFilter.doFilter(RedirectInterceptingFilter.java:21)
        ... 4 filtered
        at com.atlassian.troubleshooting.thready.filter.AbstractThreadNamingFilter.doFilter(AbstractThreadNamingFilter.java:46)
        ... 3 filtered
        at com.atlassian.web.servlet.plugin.LocationCleanerFilter.doFilter(LocationCleanerFilter.java:36)
        ... 29 filtered
        at com.atlassian.jira.servermetrics.MetricsCollectorFilter.doFilter(MetricsCollectorFilter.java:25)
        ... 25 filtered
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
        at java.lang.Thread.run(Thread.java:748)
Caused by: com.sonyericsson.hudson.plugins.gerrit.gerritevents.ssh.SshException: com.jcraft.jsch.JSchException: java.net.ConnectException: Connection refused (Connection refused)
        at com.sonyericsson.hudson.plugins.gerrit.gerritevents.ssh.SshConnectionImpl.<init>(SshConnectionImpl.java:126)
        at com.sonyericsson.hudson.plugins.gerrit.gerritevents.ssh.SshConnectionFactory.getConnection(SshConnectionFactory.java:76)
        at com.sonyericsson.hudson.plugins.gerrit.gerritevents.GerritQueryHandler.runQuery(GerritQueryHandler.java:302)
        at com.sonyericsson.hudson.plugins.gerrit.gerritevents.GerritQueryHandler.queryJava(GerritQueryHandler.java:160)
        at com.sonyericsson.hudson.plugins.gerrit.gerritevents.GerritQueryHandler.queryJava(GerritQueryHandler.java:132)
        ... 319 more
Caused by: com.jcraft.jsch.JSchException: java.net.ConnectException: Connection refused (Connection refused)
        at com.jcraft.jsch.Util.createSocket(Util.java:349)
        at com.jcraft.jsch.Session.connect(Session.java:215)
        at com.jcraft.jsch.Session.connect(Session.java:183)
        at com.sonyericsson.hudson.plugins.gerrit.gerritevents.ssh.SshConnectionImpl.<init>(SshConnectionImpl.java:122)
        ... 324 more
        at java.net.PlainSocketImpl.socketConnect(Native Method)
        at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
        at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
        at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
        at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
        at java.net.Socket.connect(Socket.java:607)
        at java.net.Socket.connect(Socket.java:556)
        at java.net.Socket.<init>(Socket.java:452)
        at java.net.Socket.<init>(Socket.java:229)
        at com.jcraft.jsch.Util.createSocket(Util.java:343)
        ... 327 more

@ediosyncratic
Copy link

The Qt project's Jira gets stuck when its Gerrit is being rebooted or down for maintenance, due to the plugin blocking. Likewise, high load on the Gerrit server can slow down loading of Jira pages.

It would be better if the plugin supplied Jira with a [loading...] placeholder as content while it's trying to find its data (e.g. via an XMLHttpRequest), so that the Jira page can load even if the plugin is blocked waiting. For the various features of the plugin that influence the Jira workflow, the placeholder can surely report "not ready" and those workflow actions can be blocked, while still leaving the Jira ticket viewable and open to comments.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants