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

After workflow scheme migration, issue moved to a newly added status are not readable

    XMLWordPrintable

Details

    • Bug
    • Resolution: Fixed
    • High
    • 4.2.2
    • 3.13.4
    • None
    • Java 6.07, Tomcat 5.5, MySQL 5.0.32, Debian Etch

    Description

      Here is the scenario:

      1. add new a status in JIRA (in my case "Validated")
      2. copy the current workflow ("WFwithvalidation") and add the "Validated" status and add transitions to/from this new status
      3. create a new workflow scheme, all issue types are associated to the new "WFwithvalidation"
      4. migrate an existing project to the new workflow scheme: no status association necessary
      5. create a new issue and apply transitions until the "Validated" status

      Then, the issue supposed to be in "Validated" cannot be opened - I got the "Oops System Error":

      java.lang.RuntimeException: Could not find workflow status for issue VUGIS-634.
      	at com.atlassian.jira.permission.PermissionContextImpl.getStatusGV(PermissionContextImpl.java:106)
      	at com.atlassian.jira.permission.PermissionContextImpl.getRelevantStepDescriptor(PermissionContextImpl.java:83)
      	at com.atlassian.jira.permission.WorkflowPermissionFactory.getWorkflowPermissions(WorkflowPermissionFactory.java:26)
      	at com.atlassian.jira.security.WorkflowBasedPermissionManager.hasPermission(WorkflowBasedPermissionManager.java:73)
      	at com.atlassian.jira.security.AbstractPermissionManager.hasPermission(AbstractPermissionManager.java:121)
      	at sun.reflect.GeneratedMethodAccessor57.invoke(Unknown Source)
      	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
      	at java.lang.reflect.Method.invoke(Method.java:597)
      	at com.atlassian.util.profiling.object.ObjectProfiler.profiledInvoke(ObjectProfiler.java:71)
      	at com.atlassian.jira.config.component.SwitchingInvocationHandler.invoke(SwitchingInvocationHandler.java:28)
      	at $Proxy1.hasPermission(Unknown Source)
      	at com.atlassian.jira.web.action.issue.AbstractIssueSelectAction.getIssue(AbstractIssueSelectAction.java:74)
      	at com.atlassian.jira.web.action.issue.ViewIssue.doExecute(ViewIssue.java:156)
      	at webwork.action.ActionSupport.execute(ActionSupport.java:153)
      	at com.atlassian.jira.action.JiraActionSupport.execute(JiraActionSupport.java:54)
      	at webwork.dispatcher.GenericDispatcher.executeAction(GenericDispatcher.java:132)
      	at com.atlassian.jira.web.dispatcher.JiraServletDispatcher.service(JiraServletDispatcher.java:178)
      	at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
      	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
      	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
      	at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:672)
      	at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:463)
      	at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:398)
      	at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:301)
      	at com.atlassian.jira.servlet.QuickLinkServlet.service(QuickLinkServlet.java:58)
      	at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
      	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
      	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
      	at com.atlassian.core.filters.HeaderSanitisingFilter.doFilter(HeaderSanitisingFilter.java:44)
      	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
      	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
      	at com.atlassian.jira.web.filters.AccessLogFilter.doFilter(AccessLogFilter.java:73)
      	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
      	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
      	at com.opensymphony.module.sitemesh.filter.PageFilter.parsePage(PageFilter.java:119)
      	at com.opensymphony.module.sitemesh.filter.PageFilter.doFilter(PageFilter.java:55)
      	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
      	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
      	at com.atlassian.seraph.filter.SecurityFilter.doFilter(SecurityFilter.java:204)
      	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
      	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
      	at com.atlassian.seraph.filter.TrustedApplicationsFilter.doFilter(TrustedApplicationsFilter.java:120)
      	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
      	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
      	at com.atlassian.seraph.filter.BaseLoginFilter.doFilter(BaseLoginFilter.java:138)
      	at ro.softwin.elearning.jiratools.NTLMLoginFilter.doFilter(NTLMLoginFilter.java:127)
      	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
      	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
      	at com.atlassian.util.profiling.filters.ProfilingFilter.doFilter(ProfilingFilter.java:132)
      	at com.atlassian.jira.web.filters.JIRAProfilingFilter.doFilter(JIRAProfilingFilter.java:16)
      	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
      	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
      	at com.atlassian.jira.web.filters.ActionCleanupDelayFilter.doFilter(ActionCleanupDelayFilter.java:43)
      	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
      	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
      	at com.atlassian.jira.web.filters.RequestCleanupFilter.doFilter(RequestCleanupFilter.java:50)
      	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
      	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
      	at com.atlassian.johnson.filters.AbstractJohnsonFilter.doFilter(AbstractJohnsonFilter.java:72)
      	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
      	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
      	at org.tuckey.web.filters.urlrewrite.UrlRewriteFilter.doFilter(UrlRewriteFilter.java:350)
      	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
      	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
      	at com.atlassian.gzipfilter.GzipFilter.doFilterInternal(GzipFilter.java:75)
      	at com.atlassian.gzipfilter.GzipFilter.doFilter(GzipFilter.java:51)
      	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
      	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
      	at com.atlassian.core.filters.AbstractEncodingFilter.doFilter(AbstractEncodingFilter.java:33)
      	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
      	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
      	at com.atlassian.jira.appconsistency.db.DatabaseCompatibilityEnforcerFilter.doFilter(DatabaseCompatibilityEnforcerFilter.java:39)
      	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
      	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
      	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
      	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
      	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
      	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
      	at org.apache.catalina.valves.FastCommonAccessLogValve.invoke(FastCommonAccessLogValve.java:495)
      	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
      	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
      	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
      	at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
      	at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
      	at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
      	at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
      	at java.lang.Thread.run(Thread.java:619)
      

      The atlassian-jira.log file only contains the stack trace ([500ErrorPage.jsp] Exception caught in 500 page Could not find workflow status for issu
      e VUGIS-634) and stack traces from IssueMailQueueItem.send failure with the same cause.

      Moreover, if I use new transitions to move an pre-existing issue (before workflow scheme migration) to "Validated", that issue has the same trouble too.

      I got the same trouble on my test system and then on my productive system, I have applied exactly the same process, except I have imported the workflow from XML into productive system.

      As the issue navigator does not display the new status (see Selection_019.png), I have tested a basic "re-index" on issues without success.

      Integrity Checker does not detect any trouble, see Selection_020.png.

      Database content seems perfectly correct, my issuestatus "Validated" has id 10008;
      I have used queries from http://confluence.atlassian.com/display/JIRA/Issue+status+and+workflow :

      mysql> select issuestatus from jiraissue where pkey='VUGIS-634';
      +-------------+
      | issuestatus |
      +-------------+
      | 10008       | 
      +-------------+
      1 row in set (0.00 sec)
      
      mysql> select pname from issuestatus, jiraissue where issuestatus.id=jiraissue.issuestatus and pkey='VUGIS-634';
      +-----------+
      | pname     |
      +-----------+
      | Validated | 
      +-----------+
      1 row in set (0.00 sec)
      
      mysql> select * from OS_WFENTRY where ID=(select workflow_id from jiraissue where pkey='VUGIS-634');
      +-------+--------------------------------------+-------------+-------+
      | ID    | NAME                                 | INITIALIZED | STATE |
      +-------+--------------------------------------+-------------+-------+
      | 50392 | Standard 3 with validation v1.1      |        NULL |     1 | 
      +-------+--------------------------------------+-------------+-------+
      1 row in set (0.00 sec)
      
      mysql> select * from OS_CURRENTSTEP where ENTRY_ID=(select workflow_id from jiraissue where pkey='VUGIS-634');
      +--------+----------+---------+-----------+-------+---------------------+----------+-------------+-----------+--------+
      | ID     | ENTRY_ID | STEP_ID | ACTION_ID | OWNER | START_DATE          | DUE_DATE | FINISH_DATE | STATUS    | CALLER |
      +--------+----------+---------+-----------+-------+---------------------+----------+-------------+-----------+--------+
      | 158276 |    50392 |      10 |         0 |       | 2011-03-22 18:50:44 | NULL     | NULL        | Validated | NULL   | 
      +--------+----------+---------+-----------+-------+---------------------+----------+-------------+-----------+--------+
      1 row in set (0.00 sec)
      

      I have found the following workaround:

      1. Shutdown JIRA
      2. Startup JIRA, now the issue is displayed properly (no longer Oops System Error) but Issue Navigator still reports an empty status
      3. re-index to fix the Issue Navigator display

      My guess: the "workflow permission" cache has not been invalidated after the workflow scheme migration and this trouble raised when a new status is added.

      Attachments

        1. Selection_019.png
          Selection_019.png
          16 kB
        2. Selection_020.png
          Selection_020.png
          54 kB

        Issue Links

          Activity

            People

              Unassigned Unassigned
              1fa35ec69d7e Yves Martin
              Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: