Uploaded image for project: 'Jira Software Server and Data Center'
  1. Jira Software Server and Data Center
  2. JSWSERVER-20845

Introduce Lexorank Healthcheck to identify issues with missing Rank field(s) value

    XMLWordPrintable

    Details

    • UIS:
      2
    • Feedback Policy:
      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

      Problem Definition

      Missing Rank field(s) value(s) in the "AO_60DB71_LEXORANK" table can cause Ranking action (move issues up/down) to fail on Jira agile board.

      • Issues with Rank values missing and while trying to re-rank the issue on the Agile Board we get this error on the UI:
        • Missing issue ID 15810 (PRG-123)
          jira854=# SELECT * FROM "AO_60DB71_LEXORANK" WHERE "ISSUE_ID" = '15810';
           BUCKET | FIELD_ID | ID | ISSUE_ID | LOCK_HASH | LOCK_TIME | RANK | TYPE
          --------+----------+----+----------+-----------+-----------+------+------
          (0 rows)
          
        • Trying rank this issue will throw this error in the UI
      • Currently Lexorank integrity checker does not identify these missing rank issues, all checks are green :

      Suggested Solution

      Having this check with a reported number of issues that should have a Rank value but doesn't will help with the following:

      1. make it clear why we're getting this error on the UI
      2. take necessary action (reindex) on the issue to build a rank field value

      Workaround

      • Run this SQL query to identify the issues missing a Rank field value in the table:
        SELECT jiraissue.id FROM jiraissue LEFT OUTER JOIN "AO_60DB71_LEXORANK" ON jiraissue.id = "AO_60DB71_LEXORANK"."ISSUE_ID" AND "AO_60DB71_LEXORANK"."FIELD_ID" = '<RANK_CF_ID>' WHERE "AO_60DB71_LEXORANK"."ISSUE_ID" IS NULL;
      • Depending on the number of issue IDs returned in the query you can either:
        • Make a test modification on the issue (add a comment, transition the issue etc.)
        • a couple issues?: Manually run this REST call to index the issue:
          POST https://<BASE-URL>/rest/api/2/reindex/issue?issueId=<$ISSUE_ID>
        • 100s of issues?: Write a small script and hit the above API for each issue IDs
        • 1000s and more?: Run a lock and reindexing

      Technically, you can run any reindexing operation for this issue id(s) returned. However, based on the situation you're in you can choose from the options above.

        Attachments

        1. 2021-02-18_15-44-00.png
          2021-02-18_15-44-00.png
          86 kB
        2. 2021-02-18_15-38-10.png
          2021-02-18_15-38-10.png
          218 kB

          Issue Links

            Activity

              People

              Assignee:
              Unassigned Unassigned
              Reporter:
              smitra2@atlassian.com Suddha
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

                Dates

                Created:
                Updated: