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

Agile board with empty filter can trigger OOME

    XMLWordPrintable

Details

    • 6.03
    • 14
    • Severity 2 - Major
    • 5
    • Hide

       

      Atlassian Update – 29 October 2018

      Hi everyone,

      We're glad to announce that the option to disable empty JQL queries in Jira general settings, now applies also for Jira Software boards and backlogs using empty filters. This capability will be available in Jira Software 7.13.0.

      The new functionality allows Jira admins to choose how an empty JQL query behaves: either returning no results at all (ON), or all existing issues (OFF).

      We've introduced this option to avoid performance issues with empty filters returning all existing issues in your instance. The default state is OFF, since some plugins may be using empty JQL queries on purpose.

      An empty JQL query in Queues, SLAs and Reports within JIRA Service Desk will continue to return all issues per project.

      We have also added a UX fix for Issue Navigator to prevent unintentional saving of an empty filter. See JRASERVER-66390 for details.

      Katarzyna Derenda
      Product manager, Jira Server

      Show
        Atlassian Update – 29 October 2018 Hi everyone, We're glad to announce that the option to disable empty JQL queries in Jira general settings, now applies also for Jira Software boards and backlogs using empty filters. This capability will be available in Jira Software 7.13.0. The new functionality allows Jira admins to choose how an empty JQL query behaves: either returning no results at all (ON), or all existing issues (OFF). We've introduced this option to avoid performance issues with empty filters returning all existing issues in your instance. The default state is OFF, since some plugins may be using empty JQL queries on purpose. An empty JQL query in Queues, SLAs and Reports within JIRA Service Desk will continue to return all issues per project. We have also added a UX fix for Issue Navigator to prevent unintentional saving of an empty filter. See  JRASERVER-66390  for details. Katarzyna Derenda Product manager, Jira Server

    Description

      Summary

      From investigating PS-7804 JIRA hits OOME because user create board with empty filter that load all issues in the instance and dump into the memory. JIRA eventually hit OOME when user accesses this board repeatedly.

      Environment

      • Large instance with > 1M issues

      Steps to Reproduce

      1. generate 1M issues
      2. create Agile board with empty board filter
      3. load this board repeatedly

      Expected Results

      1. there should be a limit of issues can be loaded in a single board
      2. there should be a validation check for creating board with empty filter 

      Actual Results

      • JIRA hits OOME

      Note

      • For this fix to work you need to set "Disable empty JQL queries set" to ON.
      • Please note that fix in JRASERVER-65602 would partially fix the current problem. This is due to the fact that when Agile executes the board's JQL it adds additional parameters to query so, JQL becomes "not empty" (see JRASERVER-67409).

      Workaround

      • Use the following SQL to list boards with empty filter
         SELECT * FROM "AO_60DB71_RAPIDVIEW" WHERE "SAVED_FILTER_ID" IN (SELECT id FROM searchrequest WHERE reqcontent = '');
        
      • To avoid loading the board directly, modify the ID in the request call below to bring you to its configuration page where you can modify the JQL in use:
        https://yourdomain.com/secure/RapidView.jspa?rapidView=5791&tab=filter|

      Attachments

        Issue Links

          Activity

            People

              mrydzewski Mikolaj Rydzewski (Inactive)
              vkharisma vkharisma (Inactive)
              Votes:
              4 Vote for this issue
              Watchers:
              15 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: