DOM node leak on receiving websocket message

Bug #1180959 reported by Benji York on 2013-05-16
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
juju-gui
High
Unassigned

Bug Description

There is a DOM node leak triggered by processing websocket messages. By triggering annotation deltas (by moving a service and cuasing the new x and y to be store in the environemnt) the leak can be observed.

To reproduce:

- start the app against the improv script
- remove all services but one
- remove all relations
- start the memory timeline
- click on the trash can icon to trigger a GC collection
- clear the memory timeline
- move a service a few times
- click on the trash can icon to trigger a GC collection
- double-click on the timeline range selector to expand it to "all time"
- note whether or not the DOM node bar goes back to baseline
- note that the leak

If you do the same steps using the sandbox backend, no DOM leak is triggered.

Benji York (benji) on 2013-05-17
summary: - DOM node leak in relations
+ DOM node leak on receiving websocket message
description: updated
Benji York (benji) on 2013-05-17
Changed in juju-gui:
status: New → Incomplete

Sadly there is an indication about this in the test suite already. If you
look at test/test_environment_view.js there is a comment about needing to
clone the delta to avoid downstream mutation. This is I believe the same
issue. When those tests run w/o that clone we should be in better shape. I
feel bad because this was on my radar at one point and dropped off.

On Friday, May 17, 2013, Benji York wrote:

> ** Changed in: juju-gui
> Status: New => Incomplete
>
> --
> You received this bug notification because you are a member of Juju GUI
> Hackers, which is subscribed to juju-gui.
> https://bugs.launchpad.net/bugs/1180959
>
> Title:
> DOM node leak on receiving websocket message
>
> Status in Juju Graphical Interface:
> Incomplete
>
> Bug description:
> There is a DOM node leak triggered by processing websocket messages.
> By triggering annotation deltas (by moving a service and cuasing the
> new x and y to be store in the environemnt) the leak can be observed.
>
> To reproduce:
>
> - start the app against the improv script
> - remove all services but one
> - remove all relations
> - start the memory timeline
> - click on the trash can icon to trigger a GC collection
> - clear the memory timeline
> - move a service a few times
> - click on the trash can icon to trigger a GC collection
> - double-click on the timeline range selector to expand it to "all time"
> - note whether or not the DOM node bar goes back to baseline
> - note that the leak
>
> If you do the same steps using the sandbox backend, no DOM leak is
> triggered.
>
> To manage notifications about this bug go to:
> https://bugs.launchpad.net/juju-gui/+bug/1180959/+subscriptions
>

To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers