Opened 4 years ago

Closed 3 years ago

#1662 closed Bug (fixed)

jQuery - Live Visitors Widget memory leak

Reported by: wirtsi Owned by:
Priority: major Milestone: Piwik 1.1.1
Component: UI - UX (AngularJS, twig, less) Keywords:
Cc: Sensitive: no

Description

Hi

I have noticed that after having the Piwik dashboard with the Live Visitors widget embedded open for a while, Firefox (and also Chrome) becomes really sluggish.

I've attached a heap dump (from Chrome) ... +235MB image data in quarter an hour is quite bad. I would assume that entries, that are no longer displayed in the widget are not destroyed correctly.

All the best

wirtsi

Attachments (1)

piwik.png (110.9 KB) - added by wirtsi 4 years ago.

Download all attachments as: .zip

Change History (8)

Changed 4 years ago by wirtsi

comment:1 Changed 4 years ago by vipsoft (robocoder)

  • Milestone set to 1.1 - Piwik 1.1

comment:2 Changed 4 years ago by SteveG (sgiehl)

Well, there are 3 request sent every 8 seconds even if the further requests are still pending. That may cause the browser to overload with pending requests if server is a bit slow.

We should try to reduce the requests to only one if possible. Also new requests should only be send if latest requests are finished (or they should be aborted).

comment:3 Changed 4 years ago by vipsoft (robocoder)

(In [3253]) refs #1662 - add appendTo setting so we can attach spy to the #content div; previously it would attach to the <body> and continue to run in the background after the widget was no longer present

comment:4 Changed 3 years ago by matt (mattab)

As mentioned by SteveG, Currently, the Live! plugin will start 3 more ajax requests every N seconds. If the previous requests are not done, this will cause some very large requests queuing, eventually crashing the browser and causing load on the Piwik server.

New ajax requests should not be started before the 3 previous ones have returned.

comment:5 Changed 3 years ago by vipsoft (robocoder)

  • Milestone changed from 1.1 - Piwik 1.1 to 1.2 - Piwik 1.2

Looking at spy.js, it looks like it guards against starting requests while there's an outstanding request.

I'm retargeting as this is appears to be a bug in jQuery ajax (see http://bugs.jquery.com/ticket/6242), not fixed in the latest version, jQuery 1.4.4.

comment:6 Changed 3 years ago by vipsoft (robocoder)

  • Summary changed from Live Visitors Widget memory leak to jQuery - Live Visitors Widget memory leak

comment:7 Changed 3 years ago by matt (mattab)

  • Resolution set to fixed
  • Status changed from new to closed

Fixed in r3624

Note: See TracTickets for help on using tickets.