-
Bug
-
Resolution: Fixed
-
Low
-
3.1.2, 3.2.3
-
6
-
Severity 3 - Minor
-
0
-
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
- relates to
-
JSDSERVER-3733 Request Participants not addable, failing with empty error message due to other field validations
-
- Closed
-
-
JSDSERVER-5498 Empty required field causes portal share error "Failed to update request participants field"
-
- Closed
-
- mentioned in
-
Page Failed to load
I have the same issue, my customers in Jira Service Desk Cloud can not share tickets time to time. When i log in into their accounts i can share.
This is what they experience :
1. I am able to create a ticket but unable to share with anyone in the first attempt.
2. After receiving first response from the service desk, after logging in to the ticket, I am able to share with any one contact but randomly. But unable to share with multiple contacts at the same time.
3. After sharing with this one contact, unable to share with additional contacts, even if I try to add one by one.
Please let me know how to fix this. Is this permission related?
Br,
Toros.