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

Unable to load Favorite Filter if filter shared with user who doesn't have unique key mapping

    XMLWordPrintable

Details

    • Bug
    • Resolution: Timed out
    • Low
    • None
    • 7.2.6
    • Navigation - Filters

    Description

      Summary

      If favourite filter is shared with a user that by some case have different user_key and lower_user_name in app_user SQL table, after opening the filter, the Failed to retrieve favorite filters from server is displayed and JQL search menu is missing from the page.

      Steps to Reproduce

      1. Create a filter
      2. Shared it with some person (eg. with user "testuser")
      3. Change lower_user_name in database for this user:
        UPDATE app_user SET lower_user_name = 'testuser1' WHERE user_key = 'testuser';

        and restart JIRA

      4. Try open this shared filter

      Expected Results

      Filter is opened without any errors and JQL query is shown.

      Actual Results

      • Failed to retrieve favorite filters from server is displayed:
      • JQL search bar is not displayed:

      The following is logged while trying to open the filter:

      [c.a.j.rest.exception.ExceptionInterceptor] Returning internal server error in response
      java.lang.reflect.InvocationTargetException
              at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
              at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
              at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
              at java.lang.reflect.Method.invoke(Method.java:498)
              at com.atlassian.plugins.rest.common.interceptor.impl.DispatchProviderHelper$ResponseOutInvoker$1.invoke(DispatchProviderHelper.java:192)
              ... 4 filtered
              at com.atlassian.jira.rest.exception.ExceptionInterceptor.intercept(ExceptionInterceptor.java:55)
              ... 1 filtered
              at com.atlassian.jira.rest.v2.issue.scope.RequestScopeInterceptor.intercept(RequestScopeInterceptor.java:39)
              ... 15 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)
              ... 36 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)
              ... 10 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: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.atlassian.util.concurrent.LazyReference$InitializationException: java.lang.IllegalStateException: User 'testuser' has no unique key mapping.
              at com.atlassian.util.concurrent.LazyReference.getInterruptibly(LazyReference.java:149)
              at com.atlassian.util.concurrent.LazyReference.get(LazyReference.java:112)
              at com.atlassian.jira.rest.v2.search.UserListResolver.getShareUsers(UserListResolver.java:114)
              at com.atlassian.jira.rest.v2.search.UserListResolver.getShareCount(UserListResolver.java:128)
              at com.atlassian.jira.rest.v2.search.UserBeanListWrapper.<init>(UserBeanListWrapper.java:31)
              at com.atlassian.jira.rest.v2.search.FilterResource$SearchRequestToFilterBean.apply(FilterResource.java:682)
              at com.atlassian.jira.rest.v2.search.FilterResource.getFilter(FilterResource.java:159)
              ... 238 more
      Caused by: java.lang.IllegalStateException: User 'testuser' has no unique key mapping.
       at com.atlassian.jira.user.ApplicationUsers.from(ApplicationUsers.java:46)
              at com.atlassian.jira.user.ApplicationUsers.from(ApplicationUsers.java:120)
              at com.atlassian.jira.security.groups.DefaultGroupManager.getUsersInGroup(DefaultGroupManager.java:163)
              at com.atlassian.jira.security.groups.DefaultGroupManager.getUsersInGroup(DefaultGroupManager.java:192)
              at com.atlassian.jira.security.groups.RequestCachingGroupManager.getUsersInGroup(RequestCachingGroupManager.java:133)
              ... 2 filtered
      

      Workaround

      Update the app_user database table and ensure that user_key and lower_user_name values are the same for the problematic user:

      UPDATE app_user SET lower_user_name = user_key WHERE user_key = 'testuser';

      And restart JIRA afterwards.

      Attachments

        1. screenshot-1.png
          screenshot-1.png
          113 kB
        2. screenshot-2.png
          screenshot-2.png
          27 kB
        3. screenshot-3.png
          screenshot-3.png
          12 kB

        Activity

          People

            Unassigned Unassigned
            mfilipan Marko Filipan
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: