← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1362268] [NEW] Data Table update is recursive.

 

Public bug reported:

Data table refresh seems to be recursive causing a very large number of
Ajax refresh calls if more than one table row is being updated.

Check out this line in the tables JS:
https://github.com/openstack/horizon/blob/master/horizon/static/horizon/js/horizon.tables.js#L106

For example lets say you're on the instances pane and 3 instances are in
some non-active state (building, resizing, etc)

Each of the three rows gets updated and on completion of each row the
update function gets a timeout set, well that's per row, not per table,
so when those timeouts trigger each one will cause three more updates so
the number of calls goes up geometrically.

See image attached for Firefox network activity after just allowing the
instances page to sit open for a little bit, you can see its calling the
update row action much too frequently.

I believe the fix may be as simple as moving the set timeout outside the
for each row loop.

Thoughts?

** Affects: horizon
     Importance: Undecided
         Status: New


** Tags: ajax datatable recursive refresh table

** Attachment added: "recursive ajax table refresh datatable"
   https://bugs.launchpad.net/bugs/1362268/+attachment/4188443/+files/Recursive_Ajax.png

-- 
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/1362268

Title:
  Data Table update is recursive.

Status in OpenStack Dashboard (Horizon):
  New

Bug description:
  Data table refresh seems to be recursive causing a very large number
  of Ajax refresh calls if more than one table row is being updated.

  Check out this line in the tables JS:
  https://github.com/openstack/horizon/blob/master/horizon/static/horizon/js/horizon.tables.js#L106

  For example lets say you're on the instances pane and 3 instances are
  in some non-active state (building, resizing, etc)

  Each of the three rows gets updated and on completion of each row the
  update function gets a timeout set, well that's per row, not per
  table, so when those timeouts trigger each one will cause three more
  updates so the number of calls goes up geometrically.

  See image attached for Firefox network activity after just allowing
  the instances page to sit open for a little bit, you can see its
  calling the update row action much too frequently.

  I believe the fix may be as simple as moving the set timeout outside
  the for each row loop.

  Thoughts?

To manage notifications about this bug go to:
https://bugs.launchpad.net/horizon/+bug/1362268/+subscriptions


Follow ups

References