← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 2055409] Re: [SRU] config OPENSTACK_INSTANCE_RETRIEVE_IP_ADDRESSES does not apply to instance detail page

 

This bug was fixed in the package horizon - 4:22.1.1-0ubuntu1.1

---------------
horizon (4:22.1.1-0ubuntu1.1) jammy; urgency=medium

  [ Rodrigo Barbieri ]
  * d/p/lp1728031.patch: Fix admin unable to reset user's password.
    (LP: #1728031)
  * d/p/lp2055409.patch: apply config OPENSTACK_INSTANCE_RETRIEVE_IP_ADDRESSES
    to the instance details page (LP: #2055409)

  [ Zhang Hua ]
  * d/p/lp2054799.patch: Fix Users/Groups tab list when a domain
    context is set. (LP: #2054799)

 -- Mauricio Faria de Oliveira <mfo@xxxxxxxxxxxxx>  Wed, 05 Jun 2024
15:52:41 -0300

** Changed in: horizon (Ubuntu Focal)
       Status: Fix Committed => Fix Released

-- 
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to OpenStack Dashboard (Horizon).
https://bugs.launchpad.net/bugs/2055409

Title:
  [SRU] config OPENSTACK_INSTANCE_RETRIEVE_IP_ADDRESSES does not apply
  to instance detail page

Status in Ubuntu Cloud Archive:
  New
Status in Ubuntu Cloud Archive antelope series:
  New
Status in Ubuntu Cloud Archive bobcat series:
  New
Status in Ubuntu Cloud Archive ussuri series:
  New
Status in Ubuntu Cloud Archive victoria series:
  New
Status in Ubuntu Cloud Archive wallaby series:
  New
Status in Ubuntu Cloud Archive xena series:
  New
Status in Ubuntu Cloud Archive yoga series:
  New
Status in Ubuntu Cloud Archive zed series:
  New
Status in OpenStack Dashboard (Horizon):
  Fix Committed
Status in horizon package in Ubuntu:
  Fix Released
Status in horizon source package in Focal:
  Fix Released
Status in horizon source package in Jammy:
  Fix Released
Status in horizon source package in Mantic:
  Fix Released
Status in horizon source package in Noble:
  Fix Released
Status in horizon source package in Oracular:
  Fix Released

Bug description:
  Setting the config option OPENSTACK_INSTANCE_RETRIEVE_IP_ADDRESSES to
  False successfully allows skipping neutron calls when loading the
  instance list page, therefore speeding up page loading. However, when
  clicking on an instance and loading the instance details page it still
  makes the neutron calls, taking a very long time.

  The usage of the config option in the code could be adjusted to also
  be used when loading the instance details page, thus speeding up the
  page loading there as well.

  ===============
  SRU Description
  ===============

  [Impact]

  Environments that have too many neutron (networking) ports are
  very slow to load the instance list and instance detail pages.

  The existing config OPENSTACK_INSTANCE_RETRIEVE_IP_ADDRESSES [1]
  can be set to False for not retrieving/displaying IP addresses
  (which requires the expensive/slow calls for neutron port list).

  That does speed up the loading of the _instance list_ page,
  but it's not applied to the _single instance_ detail page,
  which remains slow.

  By applying the config option when loading the instance detail
  page as well, we speed up instance detail page loading and we
  have minimal side effects / behavior changes, which are already
  the same seen when displaying the instance list anyway (see [1]):

  - IP addresses are not included in the detail page
    (this is aligned with the option's desired goal).

  - Floating IP addresses (if used/available in the deployment)
    may take a while to be visible, but a page reload helps [1]
    (and users were already be subject to this in the list page):
    """
    Note that when disabling the query to neutron it takes some time
    until associated floating IPs are visible in the project instance
    table and users may reload the table to check them.
    """

  This admittedly introduces a behavior change, however in this
  case it seems arguably reasonable/acceptable for some reasons:

  - The _default behavior_ does not change, as the new change
    is gated by the opt-in setting of config option to False.

  - The _opt-in behavior_ change (once option is set to False)
    is aligned with the _existing_ behavior/goal of that option
    (i.e., not to retrieve/display IP addresses _somewhere_,
    just _extending_ it from instance _list_ to _details_ too).

  - Users opt into that option for it _to address the issue_
    of slowness in Horizon when looking at instances (VMs),
    but it actually _does not address it_ fully -- i.e., one
    page (list) is addressed, but the other (details) is not.

    This patch/change improves the behavior/does achieve the
    intended goal (address slowness) in the details page too.

  - This change is already present in upstream and Noble LTS,
    so users would eventually get to it during cloud upgrades.

  [Test case]

  1. Setting up the env

  1a. Deploy openstack env with horizon/openstack-dashboard

  1b. Declare and set OPENSTACK_INSTANCE_RETRIEVE_IP_ADDRESSES to False
  in /etc/openstack-dashboard/local_settings.py and restart apache2

  2. Prepare to reproduce the bug

  2a. Create a single VM successfully

  2b. As we cannot easily create enough ports in the lab to replicate
  the slowness, we will rely on the message being present in the logs.
  Therefore, at this step we enable debug in horizon to see the
  messages. Set DEBUG to True in /etc/openstack-
  dashboard/local_settings.py and restart apache2.

  3. Reproducing the bug

  3a. Load the instance list page and verify that the following messages
  are not present in the logs:

  GET /v2.0/floatingips?port_id=...
  GET /v2.0/ports?tenant_id=...
  GET /v2.0/networks?id=...
  GET /v2.0/subnets

  3b. Click on the instance to load the detail page and verify that the
  following messages ARE present in the logs:

  GET /v2.0/floatingips?port_id=...
  GET /v2.0/ports?tenant_id=...
  GET /v2.0/networks?id=...
  GET /v2.0/subnets

  5. Install package that contains the fixed code

  6. Confirm fix

  6a. Repeat step 3a.

  6b. Click on the instance to load the detail page and verify that the
  following messages are NOT present in the logs:

  GET /v2.0/floatingips?port_id=...
  GET /v2.0/ports?tenant_id=...
  GET /v2.0/networks?id=...
  GET /v2.0/subnets

  [Where problems could occur]

  The code has tested in upstream CI (without the addition of bug-
  specific functional tests) from master(Caracal) to stable/zed without
  any issue captured. Side effects documented at [1]. The code itself is
  a simple 2-liner with minimal to none chance of regression due to
  narrow scope of code change impact.

  [Other Info]

  None.

  [1]
  https://github.com/openstack/horizon/blob/2b03b44f3adeea7e7a8aaab7777cccfa00614301/doc/source/configuration/settings.rst#openstack_instance_retrieve_ip_addresses

To manage notifications about this bug go to:
https://bugs.launchpad.net/cloud-archive/+bug/2055409/+subscriptions



References