Uploaded image for project: 'Jira Service Management Data Center'
  1. Jira Service Management Data Center
  2. JSDSERVER-4388

Unable to share request through portal due to lexorank error

    XMLWordPrintable

Details

    Description

      Experienced Behavior:

      • An error is encountered when trying to share a request through the customer portal.
      • User is unable to add any participants due to error
      • Adding a participant does work when done through the normal JIRA interface

      The error message in the portal is caused by a JIRA Software Lexorank error that appears in the atlassian-jira.log file. There are multiple Lexorank errors that may be encountered. Below is one example:

      2016-10-13 15:09:32,403 http-nio-8080-exec-14 ERROR tim 909x1538x1 1juu1mp 192.168.56.1 /rest/servicedesk/1/servicedesk/customer/participant/addparticipants/DESK-3 [c.a.p.r.c.error.jersey.ThrowableExceptionMapper] Uncaught exception thrown by REST service: Expected the first rank row to be of type MAXIMUM_MARKER_ROW. Found row[LexoRankRow{id=10, fieldId=10005, issueId=10001, lockHash='null', lockTime=null, bucket=0, rank='0|i00007:', type=ISSUE_RANK_ROW}]
      com.atlassian.greenhopper.manager.lexorank.LexoRankIntegrityException: Expected the first rank row to be of type MAXIMUM_MARKER_ROW. Found row[LexoRankRow{id=10, fieldId=10005, issueId=10001, lockHash='null', lockTime=null, bucket=0, rank='0|i00007:', type=ISSUE_RANK_ROW}]
              at com.atlassian.greenhopper.manager.lexorank.LexoRankDaoImpl.getMaximumMarkerRowAndPreviousRow(LexoRankDaoImpl.java:374)
              at com.atlassian.greenhopper.service.lexorank.LexoRankOperation.rankInitially(LexoRankOperation.java:173)
              at com.atlassian.greenhopper.service.lexorank.LexoRankOperation.execute(LexoRankOperation.java:112)
              at com.atlassian.greenhopper.manager.lexorank.LexoRankManagerImpl.performRankOperation(LexoRankManagerImpl.java:286)
              at com.atlassian.greenhopper.manager.lexorank.LexoRankManagerImpl.getRankOrRankInitially(LexoRankManagerImpl.java:86)
              at com.atlassian.greenhopper.customfield.lexorank.LexoRankCFType.getValueFromIssue(LexoRankCFType.java:121)
              at com.atlassian.greenhopper.customfield.lexorank.LexoRankCFType.getValueFromIssue(LexoRankCFType.java:29)
              at com.atlassian.jira.issue.fields.ImmutableCustomField.getCustomFieldParamsFromIssue(ImmutableCustomField.java:1231)
              at com.atlassian.jira.issue.fields.ImmutableCustomField.populateFromIssue(ImmutableCustomField.java:594)
              at com.atlassian.jira.bc.issue.DefaultIssueService.validateAndPopulateParamsWithoutScreenCheck(DefaultIssueService.java:967)
              at com.atlassian.jira.bc.issue.DefaultIssueService.validateAndPopulateParams(DefaultIssueService.java:886)
              at com.atlassian.jira.bc.issue.DefaultIssueService.validateAndUpdateIssueFromFields(DefaultIssueService.java:680)
              at com.atlassian.jira.bc.issue.DefaultIssueService.validateUpdate(DefaultIssueService.java:286)
              ... 3 filtered
              at java.lang.reflect.Method.invoke(Method.java:498)
              at com.atlassian.plugin.util.ContextClassLoaderSettingInvocationHandler.invoke(ContextClassLoaderSettingInvocationHandler.java:26)
              at com.sun.proxy.$Proxy282.validateUpdate(Unknown Source)
              ... 3 filtered
              at java.lang.reflect.Method.invoke(Method.java:498)
              at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:317)
              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:179)
              at org.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:133)
              at org.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:121)
              at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
              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:179)
              at org.eclipse.gemini.blueprint.service.importer.support.LocalBundleContextAdvice.invoke(LocalBundleContextAdvice.java:57)
              at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
              at org.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:133)
              at org.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:121)
              at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
              at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:207)
              at com.sun.proxy.$Proxy4867.validateUpdate(Unknown Source)
              at com.atlassian.servicedesk.internal.customfields.participants.ParticipantsCustomFieldManagerImpl.updateUserParticipants(ParticipantsCustomFieldManagerImpl.java:110)
              at com.atlassian.servicedesk.internal.feature.reqparticipants.field.RequestParticipantsInternalManagerImpl.updateParticipantsField(RequestParticipantsInternalManagerImpl.java:110)
              at com.atlassian.servicedesk.internal.feature.reqparticipants.field.RequestParticipantsInternalManagerImpl.lambda$addParticipants$5(RequestParticipantsInternalManagerImpl.java:71)
              at com.atlassian.pocketknife.EitherStep2.lambda$null$62(EitherStep2.java:23)
              at com.atlassian.fugue.Either$RightProjection.flatMap(Either.java:839)
              at com.atlassian.fugue.Either.flatMap(Either.java:294)
              at com.atlassian.pocketknife.EitherStep2.lambda$then$63(EitherStep2.java:23)
              at com.atlassian.fugue.Either$RightProjection.flatMap(Either.java:839)
              at com.atlassian.fugue.Either.flatMap(Either.java:294)
              at com.atlassian.pocketknife.EitherStep2.then(EitherStep2.java:23)
              at com.atlassian.servicedesk.internal.feature.reqparticipants.field.RequestParticipantsInternalManagerImpl.addParticipants(RequestParticipantsInternalManagerImpl.java:67)
              at com.atlassian.servicedesk.internal.feature.reqparticipants.field.RequestParticipantsInternalServiceImpl.lambda$addParticipants$3(RequestParticipantsInternalServiceImpl.java:89)
              at com.atlassian.fugue.Either$RightProjection.flatMap(Either.java:839)
              at com.atlassian.fugue.Either.flatMap(Either.java:294)
              at com.atlassian.pocketknife.EitherStep1.then(EitherStep1.java:21)
              at com.atlassian.servicedesk.internal.feature.reqparticipants.field.RequestParticipantsInternalServiceImpl.addParticipants(RequestParticipantsInternalServiceImpl.java:89)
              at com.atlassian.servicedesk.internal.rest.PortalParticipantResource$$anonfu$$$$212135bc1d26e9f51fd57b9757afff$$$$nonfun$apply$11$$anonfun$apply$12.apply(PortalParticipantResource.scala:124)
              at com.atlassian.servicedesk.internal.rest.PortalParticipantResource$$anonfu$$$$212135bc1d26e9f51fd57b9757afff$$$$nonfun$apply$11$$anonfun$apply$12.apply(PortalParticipantResource.scala:123)
              at scalaz.$bslash$div.flatMap(Either.scala:134)
              at com.atlassian.servicedesk.internal.rest.PortalParticipantResource$$anonfun$2$$anonfun$apply$6$$anonfun$apply$7$$anonfun$apply$8$$anonfun$apply$9$$anonfun$apply$11.apply(PortalParticipantResource.scala:123)
              at com.atlassian.servicedesk.internal.rest.PortalParticipantResource$$anonfun$2$$anonfun$apply$6$$anonfun$apply$7$$anonfun$apply$8$$anonfun$apply$9$$anonfun$apply$11.apply(PortalParticipantResource.scala:122)
              at scalaz.$bslash$div.flatMap(Either.scala:134)
              at com.atlassian.servicedesk.internal.rest.PortalParticipantResource$$anonfun$2$$anonfun$apply$6$$anonfun$apply$7$$anonfun$apply$8$$anonfun$apply$9.apply(PortalParticipantResource.scala:122)
              at com.atlassian.servicedesk.internal.rest.PortalParticipantResource$$anonfun$2$$anonfun$apply$6$$anonfun$apply$7$$anonfun$apply$8$$anonfun$apply$9.apply(PortalParticipantResource.scala:121)
              at scalaz.$bslash$div.flatMap(Either.scala:134)
              at com.atlassian.servicedesk.internal.rest.PortalParticipantResource$$anonfun$2$$anonfun$apply$6$$anonfun$apply$7$$anonfun$apply$8.apply(PortalParticipantResource.scala:121)
              at com.atlassian.servicedesk.internal.rest.PortalParticipantResource$$anonfun$2$$anonfun$apply$6$$anonfun$apply$7$$anonfun$apply$8.apply(PortalParticipantResource.scala:120)
              at scalaz.$bslash$div.flatMap(Either.scala:134)
              at com.atlassian.servicedesk.internal.rest.PortalParticipantResource$$anonfun$2$$anonfun$apply$6$$anonfun$apply$7.apply(PortalParticipantResource.scala:120)
              at com.atlassian.servicedesk.internal.rest.PortalParticipantResource$$anonfun$2$$anonfun$apply$6$$anonfun$apply$7.apply(PortalParticipantResource.scala:119)
              at scalaz.$bslash$div.flatMap(Either.scala:134)
              at com.atlassian.servicedesk.internal.rest.PortalParticipantResource$$anonfun$2$$anonfun$apply$6.apply(PortalParticipantResource.scala:119)
              at com.atlassian.servicedesk.internal.rest.PortalParticipantResource$$anonfun$2$$anonfun$apply$6.apply(PortalParticipantResource.scala:118)
              at scalaz.$bslash$div.flatMap(Either.scala:134)
              at com.atlassian.servicedesk.internal.rest.PortalParticipantResource$$anonfun$2.apply(PortalParticipantResource.scala:118)
              at com.atlassian.servicedesk.internal.rest.PortalParticipantResource$$anonfun$2.apply(PortalParticipantResource.scala:117)
              at scalaz.$bslash$div.flatMap(Either.scala:134)
              at com.atlassian.servicedesk.internal.rest.PortalParticipantResource.addParticipants(PortalParticipantResource.scala:117)
              ... 3 filtered
              at java.lang.reflect.Method.invoke(Method.java:498)
              ... 19 filtered
              at com.atlassian.plugins.rest.module.RestDelegatingServletFilter$JerseyOsgiServletContainer.doFilter(RestDelegatingServletFilter.java:154)
              ... 1 filtered
              at com.atlassian.plugins.rest.module.RestDelegatingServletFilter.doFilter(RestDelegatingServletFilter.java:68)
              ... 33 filtered
              at com.atlassian.servicedesk.internal.web.OperationalStatusAwareHttpFilter.doFilter(OperationalStatusAwareHttpFilter.java:31)
              ... 4 filtered
              at com.atlassian.servicedesk.internal.web.UrlOperationalStatusCheckFilter.doFilterWhenLicensed(UrlOperationalStatusCheckFilter.java:38)
              at com.atlassian.servicedesk.internal.web.OperationalStatusAwareHttpFilter.doFilter(OperationalStatusAwareHttpFilter.java:31)
              ... 4 filtered
              at com.atlassian.servicedesk.internal.web.PopulateEyeballForRestFilter.doFilterWhenLicensed(PopulateEyeballForRestFilter.java:33)
              at com.atlassian.servicedesk.internal.web.OperationalStatusAwareHttpFilter.doFilter(OperationalStatusAwareHttpFilter.java:31)
              ... 8 filtered
              at com.atlassian.web.servlet.plugin.request.RedirectInterceptingFilter.doFilter(RedirectInterceptingFilter.java:21)
              ... 53 filtered
              at com.atlassian.jira.security.JiraSecurityFilter.lambda$doFilter$0(JiraSecurityFilter.java:76)
              ... 1 filtered
              at com.atlassian.jira.security.JiraSecurityFilter.doFilter(JiraSecurityFilter.java:74)
              ... 16 filtered
              at com.atlassian.plugins.rest.module.servlet.RestSeraphFilter.doFilter(RestSeraphFilter.java:37)
              ... 20 filtered
              at com.atlassian.jira.servermetrics.CorrelationIdPopulatorFilter.doFilter(CorrelationIdPopulatorFilter.java:30)
              ... 5 filtered
              at com.atlassian.servicedesk.internal.web.CustomerContextSettingFilter.lambda$invokeFilterChain$0(CustomerContextSettingFilter.java:181)
              at com.atlassian.servicedesk.internal.utils.context.ReentrantThreadLocalBasedCodeContext.rteInvoke(ReentrantThreadLocalBasedCodeContext.java:142)
              at com.atlassian.servicedesk.internal.utils.context.ReentrantThreadLocalBasedCodeContext.runInContext(ReentrantThreadLocalBasedCodeContext.java:57)
              at com.atlassian.servicedesk.internal.utils.context.CustomerContextServiceImpl.runInCustomerContext(CustomerContextServiceImpl.java:38)
              at com.atlassian.servicedesk.internal.web.CustomerContextSettingFilter.inCustomerContext(CustomerContextSettingFilter.java:169)
              at com.atlassian.servicedesk.internal.web.CustomerContextSettingFilter.doFilterImpl(CustomerContextSettingFilter.java:128)
              at com.atlassian.servicedesk.internal.web.CustomerContextSettingFilter.doFilter(CustomerContextSettingFilter.java:121)
              ... 4 filtered
              at com.atlassian.jwt.internal.servlet.JwtAuthFilter.doFilter(JwtAuthFilter.java:32)
              ... 8 filtered
              at com.atlassian.web.servlet.plugin.request.RedirectInterceptingFilter.doFilter(RedirectInterceptingFilter.java:21)
              ... 4 filtered
              at com.atlassian.web.servlet.plugin.LocationCleanerFilter.doFilter(LocationCleanerFilter.java:36)
              ... 29 filtered
              at com.atlassian.jira.servermetrics.MetricsCollectorFilter.doFilter(MetricsCollectorFilter.java:25)
              ... 27 filtered
              at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
              at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
              at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
              at java.lang.Thread.run(Thread.java:745)
      
      
      

      Steps to Reproduce

      • Install and license JIRA Core, JIRA Service Desk, and JIRA Software
      • Create JIRA Service Desk project, allow customers to add participants through portal
      • Create Scrum board based off of existing JSD project.
      • Create 2nd user
      • Reproduce Lexorank error by running below SQL:
        • DELETE FROM "AO_60DB71_LEXORANK" WHERE "TYPE" IN (0,2);
      • Create issue in portal
      • Attempt to add 2nd user to request using the "Share" button in the portal.

      Expected Behavior

      • Able to add participants despite lexorank error

      Workaround

      • Resolve the Lexorank error then try to add participants

      Attachments

        Issue Links

          Activity

            People

              lgoodhewcook Lachlan G (Inactive)
              tevans Tim Evans (Inactive)
              Votes:
              1 Vote for this issue
              Watchers:
              5 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Backbone Issue Sync