Closed Bug 1388239 Opened 7 years ago Closed 6 years ago

memory leaks ("strings") persistent

Categories

(Firefox :: Extension Compatibility, defect)

57 Branch
defect
Not set
normal

Tracking

()

RESOLVED WONTFIX
Tracking Status
firefox57 --- wontfix

People

(Reporter: yfdyh000, Unassigned)

Details

(Keywords: memory-leak, Whiteboard: [MemShrink:P3])

Environment: LastPass 4.1.54a in Nightly 57.0a1 (2017-08-07) (32 bit) on Windows 10. But I also experienced this problem for several weeks, so it applies to Firefox 55 Beta or earlier.


STR:
1. Install and login to LastPass extension, web browsing for a few hours.
2. Check the about:memory and do "Measure", the "strings" of main process significantly grows and contains unresolved objects (like obsolete closed uris or oterh strings).
2.1. Disable the LastPass extension and "minimize memory usage" is no effect.

Note: not tested in clean profile for the STR.


Actual results:
The browser gradually slows down, memory footprint increases. I has seen 1000k strings object in Browser Toolbox - Memory.


Expected results:
1. No leaks.


Additional information:
I have confirmed that these strings are a LastPass object by manual find the characteristics of the strings in gc-edges log file, like: 

Find the address of certain string from about:memory, its father is some "shape" or "2D855778 B object_group". Then:
2EEBED80 B Array <no private>
> 2D855778 B group

2EEBED80 have many lp characteristic, like "> 2EEBED80 B g_fillfieldsmatches", lpbasicauths, lpdialogs, g_vaulturloverride, shouldOpenLogin4_0, etc. Its father is:
# arena allockind=12 size=144
2D2D1040 B Sandbox 2D75B800

I also seen the "> 2D2D1040 B LPobj".


I cannot use heapgraph/find_roots.py tools because it devoured too much memory when analyzing.
Sorry, its cause is still unknown, this issue seems to still exist after LastPass disabled. I will try more ways.

Suspicious add-ons: Tampermonkey, Tab Groups, etc.
Has STR: --- → no
Summary: LastPass extension leaks memory ("strings") persistent → memory leaks ("strings") persistent
The heapgraph/g/stringy.py script can give some basic analysis of what strings are present, though it won't help figure out why they are alive. This is going to be hard to fix without steps to reproduce.
Whiteboard: [MemShrink] → [MemShrink:P3]
\heapgraph\g>py -2 stringy.py gc-edges.10932.1503523760.log
total chars :: num copies x strings
3413200 :: 1610 x '<flat: length 2100> ZT4OTT7kRfqycpfCC8AeuAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QJIHOlRteE8wkTq4'
2437776 :: 1188 x '<flat: length 2032> ZT4OTT7kRfqycpfCC8AeuAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QJIHOlRteE8wkTq4'
2309472 :: 1188 x '<flat: length 1924> ZT4OTT7kRfqycpfCC8AeuAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QJIHOlRteE8wkTq4'
1104246 :: 2178 x '<flat: length 488> ZT4OTT7kRfqycpfCC8AeuAAAAAAAAAAAwAAAAAAAAEYB3qllfBjPSYS96czvXYq0c5IHOlRteE8wkTq4c'
1031985 :: 2907 x '<flat: length 336> ZT4OTT7kRfqycpfCC8AeuAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QJIHOlRteE8wkTq4c'
1007490 :: 2838 x '<flat: length 336> ZT4OTT7kRfqycpfCC8AeuAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QJIHOlRteE8wkTq4c'
983192 :: 362 x '<flat: length 2696> ZT4OTT7kRfqycpfCC8AeuAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QJIHOlRteE8wkTq4'
975952 :: 362 x '<flat: length 2676> ZT4OTT7kRfqycpfCC8AeuAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QJIHOlRteE8wkTq4'
835380 :: 2652 x '<flat: length 296> ZT4OTT7kRfqycpfCC8AeuAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QJIHOlRteE8wkTq4c'
809224 :: 13052 x '<flat: length 44> SmIS26zLEdO3ZQBgsLbOywAAAAAAAAAAwAAAAAAAAEY='
798504 :: 294 x '<flat: length 2696> ZT4OTT7kRfqycpfCC8AeuAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QJIHOlRteE8wkTq4'
760480 :: 280 x '<flat: length 2696> ZT4OTT7kRfqycpfCC8AeuAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QJIHOlRteE8wkTq4'
760480 :: 280 x '<flat: length 2696> ZT4OTT7kRfqycpfCC8AeuAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QJIHOlRteE8wkTq4'
526620 :: 1572 x '<flat: length 316> ZT4OTT7kRfqycpfCC8AeuAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QJIHOlRteE8wkTq4c'
474720 :: 115 x '<flat: length 4108> ZT4OTT7kRfqycpfCC8AeuAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QJIHOlRteE8wkTq4'
438152 :: 1144 x '<flat: length 364> ZT4OTT7kRfqycpfCC8AeuAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QJIHOlRteE8wkTq4c'
426087 :: 1101 x '<flat: length 368> ZT4OTT7kRfqycpfCC8AeuAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QJIHOlRteE8wkTq4c'
384130 :: 1070 x '<flat: length 340> ZT4OTT7kRfqycpfCC8AeuAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QJIHOlRteE8wkTq4c'
346256 :: 1072 x '<flat: length 304> ZT4OTT7kRfqycpfCC8AeuAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QJIHOlRteE8wkTq4c'
335712 :: 13988 x '<inline: length 5> UTF-8'
322730 :: 590 x '<flat: length 528> ZT4OTT7kRfqycpfCC8AeuAAAAAAAAAAAwAAAAAAAAEYB3pRy0IA0EdOTmQAQS6D9QJIHOlRteE8wkTq4c'


I have tried many ways to judge the problem. I see this problem disappear in Firefox 57, so it may be relevant to add-ons:
Beyond Australis
Puzzle Bars
Tab Groups

In addition, I have some other legacy add-ons, but I have tried to disable them and restart the browser, the problem still appears.
The PCExpressPO addon contains some of those strings, but I guess it is just the start of some encoding of some image format, so that's not too useful.
Based on comment 3, marking as wont fix for 57.
Sounds like this problem is exclusive to legacy add-ons, which aren't supported anymore, so closing.
Status: UNCONFIRMED → RESOLVED
Closed: 6 years ago
Resolution: --- → WONTFIX
You need to log in before you can comment on or make changes to this bug.