Uploaded image for project: 'Jira Software Data Center'
  1. Jira Software Data Center
  2. JSWSERVER-25296

As a Jira user I would like to fix corrupted ARJ Plan indexes when they get corrupted

    XMLWordPrintable

Details

    • 2
    • We collect Jira feedback from various sources, and we evaluate what we've collected when planning our product roadmap. To understand how this piece of feedback will be reviewed, see our Implementation of New Features Policy.

    Description

      Indexes for ARJ Plans can get corrupted and one of the symptoms is not showing Issue(s) even though they comply with the following:

      • They are in the scope
      • They are not on a final status
      • They are/were not removed from Plan
      • They are not in exclusion rules
      • They are not in an excluded version

      They are not shown even if switching views

      Diagnosis

      1. Configure a create one scenario
      2. Confirm that the Issues are shown now
        • To this point we can see there's a problem with the now, initial scenario. Having an NOK & OK scenario.
      3. Navigate the scenarios, and get the following information from the URL: i.e.: https://domain-name.com/jira/secure/PortfolioPlanView.jspa?id=1&sid=1&vid=3#plan/backlog
        id = 1   -> Plan ID
        sid = 1 -> scenario ID
        
      4. Run the following cURL command for each scenario with the following parameters and save the output:
        • update <---> with the values you got for id and sid
        • update <PKEY>-<ISSUE-NUM> with one of the missing/affected Issues
        • update <Jira-Base-URL> with your actual Jira Base URL.
          curl -u user:password -X POST --data '{"planId":<--->,"scenarioId":<--->,"issueKey":"<PKEY>-<ISSUE-NUM>"}' -H "Content-Type: application/json" <Jira-Base-URL>/rest/jpo/1.0/backlog/analyse > Scenario_name.json
          
          • In case you cannot use plain text passwords. Generate a PAT (Personal Access Token) and use it instead:
            -H "Authorization: Bearer <pat_token>"
            
      5. Make a diff between the JSON files. Look at the indexes CORE, CORE_ENRICHMENT, SCENARIO & CALCULATION. They should be the same. If they don't match, most likely there's an Index corruption. i.e.:
        • "index": "CORE",
                  "issueKey": "SCRUM-1",
                  "match": true,
                  "subQueries": {
                      "[BASE] (+(projid:10000) +(#project_permissions:(p#10000) #issue_level_permissions:(s#-1)) -(ISSUEPROP_jpo-exclude-from-plan$plans:1)) jpo_index_marker:scenario jpo_index_marker:calc_assignment jpo_index_marker:enrichment": true,
                      "[FLTR] +(*:* -status:5 -status:6 -status:10001) +(*:*) +(*:*)": true,
                      "[FULL] +((+(projid:10000) +(#project_permissions:(p#10000) #issue_level_permissions:(s#-1)) -(ISSUEPROP_jpo-exclude-from-plan$plans:1)) jpo_index_marker:scenario jpo_index_marker:calc_assignment jpo_index_marker:enrichment) +(fixfor:-1 fixfor:10000 fixfor:10001 fixfor:10002) +(+(*:* -status:5 -status:6 -status:10001) +(*:*) +(*:*))": true,
                      "[PART] #project_permissions:(p#10000) #issue_level_permissions:(s#-1)": true,
                      "[PART] *:*": true,
                      "[PART] *:* -status:5 -status:6 -status:10001": true,
                      "[PART] +jpo_index_marker:scenario +(projid:10000)": false,
                      "[PART] fixfor:-1 fixfor:10000 fixfor:10001 fixfor:10002": true,
                      "[PART] projid:10000": true,
                      "[PERM] #project_permissions:(p#10000) #issue_level_permissions:(s#-1)": true
          
          "index": "CORE",
                  "issueKey": "SCRUM-1",
                  "match": true,
                  "subQueries": {
                      "[BASE] (+(projid:10000) +(#project_permissions:(p#10000) #issue_level_permissions:(s#-1)) -(ISSUEPROP_jpo-exclude-from-plan$plans:1)) jpo_index_marker:scenario jpo_index_marker:calc_assignment jpo_index_marker:enrichment": true,
                      "[FLTR] +(*:* -status:5 -status:6 -status:10001) +(*:*) +(*:*)": true,
                      "[FULL] +((+(projid:10000) +(#project_permissions:(p#10000) #issue_level_permissions:(s#-1)) -(ISSUEPROP_jpo-exclude-from-plan$plans:1)) jpo_index_marker:scenario jpo_index_marker:calc_assignment jpo_index_marker:enrichment) +(fixfor:-1 fixfor:10000 fixfor:10001 fixfor:10002) +(+(*:* -status:5 -status:6 -status:10001) +(*:*) +(*:*))": true,
                      "[PART] #project_permissions:(p#10000) #issue_level_permissions:(s#-1)": true,
                      "[PART] *:*": true,
                      "[PART] *:* -status:5 -status:6 -status:10001": true,
                      "[PART] +jpo_index_marker:scenario +(projid:10000)": false,
                      "[PART] fixfor:-1 fixfor:10000 fixfor:10001 fixfor:10002": true,
                      "[PART] projid:10000": true,
                      "[PERM] #project_permissions:(p#10000) #issue_level_permissions:(s#-1)": true
                  }
          
          • Both CORE Indexes come from the same Plan, but different scenario, however, the Index should be the same.

      Expectation

      Have a functionality to re-index/fix the Plan Indexes.

      Actual results

      Currently there's no way to re-index/fix Plans' Indexes.

      Workaround

      Disable the scenarios and chose the OK Scenario as the one to apply to the plan.
      i.e:

      1. Plans>Plan> Configure (.)> Scenarios > Disable
      2. In the pop-up select the OK Scenario to keep and save data from it:

      This action will copy the OK Scenario over the corrupted one.

      Attachments

        Issue Links

          Activity

            People

              Unassigned Unassigned
              458e633c07a6 Jose Antonio Uribe
              Votes:
              4 Vote for this issue
              Watchers:
              9 Start watching this issue

              Dates

                Created:
                Updated: