Uploaded image for project: 'Jira Cloud'
  1. Jira Cloud
  2. JRACLOUD-15750

Make delete component operation atomic

    XMLWordPrintable

Details

    • 3
    • Our product teams collect and evaluate feedback from a number of different sources. To learn more about how we use customer feedback in the planning process, check out our new feature policy.

    Description

      NOTE: This suggestion is for JIRA Cloud. Using JIRA Server? See the corresponding suggestion.

      Atlassian Update – 5 January 2016

      Hi everyone,

      Thanks for voting and commenting on this issue. We have reviewed this issue over the last few days; unfortunately we don't have any plans to work on this in the foreseeable future.

      Please remember that jira.atlassian.com is one of many inputs for the JIRA roadmap. You can learn more about our process here.

      I understand that our decision may be disappointing. Please don't hesitate to contact me if you have any questions.

      Regards,
      Dave Meyer
      dmeyer@atlassian.com
      Product Manager, JIRA Platform

      Original Request

      Users report that sometimes the delete component operation is not atomic.

      The entries are deleted from the Componet table but not from the nodeassociation table.
      For e.g.

      mysql> select * from component where ID in (10211,10000,10001,10001,10027);
      Empty set (0.00 sec)
      
      mysql> select * from nodeassociation where SINK_NODE_ENTITY='Component' and SINK_NODE_ID not in (Select ID from component);
      +----------------+--------------------+--------------+------------------+------------------+----------+
      | SOURCE_NODE_ID | SOURCE_NODE_ENTITY | SINK_NODE_ID | SINK_NODE_ENTITY | ASSOCIATION_TYPE | SEQUENCE |
      +----------------+--------------------+--------------+------------------+------------------+----------+
      |          10038 | Issue              |        10000 | Component        | IssueComponent   |     NULL |
      |          10039 | Issue              |        10002 | Component        | IssueComponent   |     NULL |
      |          13886 | Issue              |        10001 | Component        | IssueComponent   |     NULL |
      |          10356 | Issue              |        10000 | Component        | IssueComponent   |     NULL |
      |          10376 | Issue              |        10002 | Component        | IssueComponent   |     NULL |
      |          10377 | Issue              |        10002 | Component        | IssueComponent   |     NULL |
      |          10389 | Issue              |        10027 | Component        | IssueComponent   |     NULL |
      |          10383 | Issue              |        10002 | Component        | IssueComponent   |     NULL |
      |          10384 | Issue              |        10002 | Component        | IssueComponent   |     NULL |
      |          10515 | Issue              |        10002 | Component        | IssueComponent   |     NULL |
      |          10515 | Issue              |        10027 | Component        | IssueComponent   |     NULL |
      |          10649 | Issue              |        10001 | Component        | IssueComponent   |     NULL |
      |          10650 | Issue              |        10001 | Component        | IssueComponent   |     NULL |
      |          11115 | Issue              |        10027 | Component        | IssueComponent   |     NULL |
      |          13104 | Issue              |        10002 | Component        | IssueComponent   |     NULL |
      |          13886 | Issue              |        10211 | Component        | IssueComponent   |     NULL |
      |          13877 | Issue              |        10000 | Component        | IssueComponent   |     NULL |
      |          13878 | Issue              |        10027 | Component        | IssueComponent   |     NULL |
      |          13882 | Issue              |        10001 | Component        | IssueComponent   |     NULL |
      |          13883 | Issue              |        10001 | Component        | IssueComponent   |     NULL |
      |          13881 | Issue              |        10001 | Component        | IssueComponent   |     NULL |
      |          14047 | Issue              |        10001 | Component        | IssueComponent   |     NULL |
      |          14048 | Issue              |        10001 | Component        | IssueComponent   |     NULL |
      |          14050 | Issue              |        10001 | Component        | IssueComponent   |     NULL |
      |          14080 | Issue              |        10211 | Component        | IssueComponent   |     NULL |
      |          14349 | Issue              |        10001 | Component        | IssueComponent   |     NULL |
      |          14784 | Issue              |        10211 | Component        | IssueComponent   |     NULL |
      +----------------+--------------------+--------------+------------------+------------------+----------+
      27 rows in set (1.05 sec)
      

      Additionally, in the log file following errors are recoded:

      2008-09-11 14:26:20,785 http-8443-Processor40 ERROR [jira.issue.statistics.ComponentStatisticsMapper] Indexes may be corrupt - unable to retrieve component with id '10211'.
      2008-09-11 14:27:41,830 http-8443-Processor40 ERROR [jira.issue.statistics.ComponentStatisticsMapper] Indexes may be corrupt - unable to retrieve component with id '10000'.
      2008-09-11 14:27:41,830 http-8443-Processor40 ERROR [jira.issue.statistics.ComponentStatisticsMapper] Indexes may be corrupt - unable to retrieve component with id '10001'.
      2008-09-11 14:27:41,830 http-8443-Processor40 ERROR [jira.issue.statistics.ComponentStatisticsMapper] Indexes may be corrupt - unable to retrieve component with id '10002'.
      2008-09-11 14:27:41,830 http-8443-Processor40 ERROR [jira.issue.statistics.ComponentStatisticsMapper] Indexes may be corrupt - unable to retrieve component with id '10027'. 
      

      We should add an extra check to Integrity Checker that would allow users to find and delete the invalid components. Also, if possible, the delete operation should be improved

      It is hard to say what is the cause for this issue. There is always some delay between the delete operation and the report in SAC, therefore the logs from delete process are not available.

      Attachments

        Issue Links

          Activity

            People

              Unassigned Unassigned
              bdziedzic Bogdan Dziedzic [Atlassian]
              Votes:
              100 Vote for this issue
              Watchers:
              76 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: