Number of GET requests grows exponentially when multiple rows are being updated in the table (Horizon 1263665)

Bug #1522039 reported by Randy DeFauw
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Mirantis OpenStack
Invalid
High
MOS Horizon
5.1.x
Won't Fix
High
MOS Maintenance
6.0.x
Won't Fix
High
MOS Maintenance
6.1.x
Fix Released
High
Sergii Rizvan
7.0.x
Invalid
High
Sergii Rizvan

Bug Description

Original Horizon bug: https://bugs.launchpad.net/horizon/+bug/1263665

This bug was fixed in several branches including stable/juno (commit db641dccb68ae3ff0bdd70dc7d60dc9605fe31c0). It should be merged into the next MU.

Timur Sufiev (tsufiev-x)
Changed in mos:
milestone: none → 6.1-updates
assignee: nobody → MOS Maintenance (mos-maintenance)
Revision history for this message
Denis Meltsaykin (dmeltsaykin) wrote :

It's really not clear what is the impact, how it affects anyone, does this break operations? Randy, could you please elaborate on this?

Changed in mos:
assignee: MOS Maintenance (mos-maintenance) → Randy DeFauw (rdefauw)
status: New → Incomplete
Revision history for this message
Randy DeFauw (rdefauw) wrote :

Yes, the impact is a flood of ajax requests when records are in an unsteady state (deleting/creating). After 30 iterations the script goes into a loop and generates thousands of calls to the control service APIs. The net effect is a denial of service attack.

tags: added: area-horizon
Changed in mos:
milestone: 6.1-updates → 8.0
assignee: Randy DeFauw (rdefauw) → MOS Horizon (mos-horizon)
importance: Undecided → High
status: Incomplete → Fix Committed
Revision history for this message
Roman Podoliaka (rpodolyaka) wrote :

According to https://bugs.launchpad.net/horizon/+bug/1263665 this was fixed In Liberty

Changed in mos:
status: Fix Committed → Invalid
Revision history for this message
Roman Podoliaka (rpodolyaka) wrote :

Denis, I tentatively confirmed this for MUs - please remove the milestones we don't support anymore.

Revision history for this message
Alexey Stupnikov (astupnikov) wrote :

Set this bug's status to Won't fix (wontfix-low) since 5.1.1 and 6.0 are now in Limited support status and only security fixes are accepted.

tags: added: wontfix-low
Revision history for this message
Sergii Rizvan (srizvan) wrote :

Closing as Invalid for 7.0, because the fix was previously merged to 7.0 branch: https://review.fuel-infra.org/gitweb?p=openstack%2Fhorizon.git;a=commitdiff;h=bb0523722fea08146404587831a26c8692a3bb5a

Revision history for this message
Fuel Devops McRobotson (fuel-devops-robot) wrote : Fix proposed to openstack/horizon (openstack-ci/fuel-6.1/2014.2)

Fix proposed to branch: openstack-ci/fuel-6.1/2014.2
Change author: Timur Sufiev <email address hidden>
Review: https://review.fuel-infra.org/18388

Revision history for this message
Sergii Rizvan (srizvan) wrote :

Steps to verificate:

1. Login to controller's CLI
2. Open horizon access log with tail -f
tail -f /var/log/apache2/horizon_access.log

3. Login to Horizon
4. In Launch instance dialog select number of instances 10.
5. Create 10 instances.

Before applying patch:
6. While instances are being created and table rows are being updated the number of row update requests grows exponentially and a queue of pending requests still exists after all rows had beed updated. You can see this requests in horizon access log via CLI.

After applying patch:
7. After all rows had been updated you don't see this requests in horizon access log.

There is a request type:
Request URL:/horizon/project/instances/?action=row_update&table=instances&obj_id=6727ef59-d447-4289-bb47-7623792551f0
Request Method:GET

Revision history for this message
Fuel Devops McRobotson (fuel-devops-robot) wrote : Fix merged to openstack/horizon (openstack-ci/fuel-6.1/2014.2)

Reviewed: https://review.fuel-infra.org/18388
Submitter: Vitaly Sedelnik <email address hidden>
Branch: openstack-ci/fuel-6.1/2014.2

Commit: f1c9bfe3e1c9f4cf96b2e4f94aabb2272e772173
Author: Timur Sufiev <email address hidden>
Date: Wed Mar 23 11:38:22 2016

Fix exponentially growing AJAX updates for table rows

Schedule next table rows update only when the last row was
updated. Since unit-test for this fix relies on a blueprint
replace-qunit-tests-with-jasmine it is moved to a separate commit to
speed up this fix merge, see https://review.openstack.org/#/c/179013/

Closes-Bug: #1522039
(cherry picked from upstream commit db641dccb68ae3ff0bdd70dc7d60dc9605fe31c0)

Conflict Resolution Notes:
cherry-pick needed to have the old body of the complete: function
manually removed - it wasn't sure if it still belonged (resulting in
nearly duplicate code) or should be removed. I'm a bit surprised the
cherry-pick didn't auto-resolve.

Conflicts:
 horizon/static/horizon/js/horizon.tables.js

Change-Id: Id603a4fde5713d8f2b85b1dcf72c82c93a87c755

tags: added: on-verification
Revision history for this message
Vladimir Jigulin (vjigulin) wrote :

Verified on mos6.1+mu6 updates

tags: removed: on-verification
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.