Closed Bug 1363000 Opened 8 years ago Closed 8 years ago

stylo: Using <select> elements in SVG documents causes leaks in crashtests

Categories

(Core :: CSS Parsing and Computation, defect)

defect
Not set
normal

Tracking

()

RESOLVED FIXED
mozilla55
Tracking Status
firefox55 --- fixed

People

(Reporter: chenpighead, Assigned: chenpighead)

References

Details

Attachments

(1 file)

While enabling stylo for SVG documents in Bug 1359343, I encountered couple crashtests failures. It turns out that 'load 366271-1.html' in /layout/base/crashtests/ and 'load 387745-1.svg' in /view/crashtests both cause leaks. Both tests use a <select> element in the tested SVG documents, which I think might be the root cause. Filing this bug to investigate further... Error log: ============ [task 2017-05-08T11:52:07.322336Z] 11:52:07 INFO - Leaked URLs: [task 2017-05-08T11:52:07.322854Z] 11:52:07 INFO - chrome://global/content/minimal-xul.css [task 2017-05-08T11:52:07.323390Z] 11:52:07 INFO - chrome://global/skin/scrollbars.css [task 2017-05-08T11:52:07.324156Z] 11:52:07 INFO - nsStringStats [task 2017-05-08T11:52:07.325007Z] 11:52:07 INFO - => mAllocCount: 1666002 [task 2017-05-08T11:52:07.325822Z] 11:52:07 INFO - => mReallocCount: 41748 [task 2017-05-08T11:52:07.326659Z] 11:52:07 INFO - => mFreeCount: 1665998 -- LEAKED 4 !!! [task 2017-05-08T11:52:07.327502Z] 11:52:07 INFO - => mShareCount: 3068095 [task 2017-05-08T11:52:07.328052Z] 11:52:07 INFO - => mAdoptCount: 179074 [task 2017-05-08T11:52:07.328851Z] 11:52:07 INFO - => mAdoptFreeCount: 179074 [task 2017-05-08T11:52:07.329697Z] 11:52:07 INFO - => Process ID: 1006, Thread ID: 140199190923072 [task 2017-05-08T11:52:07.353494Z] 11:52:07 INFO - REFTEST INFO | Process mode: non-e10s [task 2017-05-08T11:52:07.353580Z] 11:52:07 INFO - TEST-INFO | leakcheck | default process: leak threshold set at 0 bytes [task 2017-05-08T11:52:07.355010Z] 11:52:07 INFO - TEST-INFO | leakcheck | plugin process: leak threshold set at 0 bytes [task 2017-05-08T11:52:07.355891Z] 11:52:07 INFO - TEST-INFO | leakcheck | tab process: leak threshold set at 5000 bytes [task 2017-05-08T11:52:07.356767Z] 11:52:07 INFO - TEST-INFO | leakcheck | geckomediaplugin process: leak threshold set at 0 bytes [task 2017-05-08T11:52:07.358129Z] 11:52:07 INFO - TEST-INFO | leakcheck | gpu process: leak threshold set at 0 bytes [task 2017-05-08T11:52:07.359374Z] 11:52:07 INFO - ==> process 1231 will purposefully crash [task 2017-05-08T11:52:07.360415Z] 11:52:07 INFO - [task 2017-05-08T11:52:07.361492Z] 11:52:07 INFO - TEST-INFO | leakcheck | plugin process: deliberate crash and thus no leak log [task 2017-05-08T11:52:07.362500Z] 11:52:07 INFO - [task 2017-05-08T11:52:07.363602Z] 11:52:07 INFO - == BloatView: ALL (cumulative) LEAK AND BLOAT STATISTICS, plugin process 1357 [task 2017-05-08T11:52:07.364525Z] 11:52:07 INFO - [task 2017-05-08T11:52:07.365562Z] 11:52:07 INFO - |<----------------Class--------------->|<-----Bytes------>|<----Objects---->| [task 2017-05-08T11:52:07.366447Z] 11:52:07 INFO - | | Per-Inst Leaked| Total Rem| [task 2017-05-08T11:52:07.367450Z] 11:52:07 INFO - 0 |TOTAL | 335 0| 502 0| [task 2017-05-08T11:52:07.368354Z] 11:52:07 INFO - [task 2017-05-08T11:52:07.369353Z] 11:52:07 INFO - nsTraceRefcnt::DumpStatistics: 38 entries [task 2017-05-08T11:52:07.370319Z] 11:52:07 INFO - [task 2017-05-08T11:52:07.371281Z] 11:52:07 INFO - TEST-PASS | leakcheck | plugin process: no leaks detected! [task 2017-05-08T11:52:07.372245Z] 11:52:07 INFO - [task 2017-05-08T11:52:07.373164Z] 11:52:07 INFO - == BloatView: ALL (cumulative) LEAK AND BLOAT STATISTICS, plugin process 1234 [task 2017-05-08T11:52:07.374078Z] 11:52:07 INFO - [task 2017-05-08T11:52:07.375037Z] 11:52:07 INFO - |<----------------Class--------------->|<-----Bytes------>|<----Objects---->| [task 2017-05-08T11:52:07.375942Z] 11:52:07 INFO - | | Per-Inst Leaked| Total Rem| [task 2017-05-08T11:52:07.376896Z] 11:52:07 INFO - 0 |TOTAL | 184 0| 1286 0| [task 2017-05-08T11:52:07.377803Z] 11:52:07 INFO - [task 2017-05-08T11:52:07.378778Z] 11:52:07 INFO - nsTraceRefcnt::DumpStatistics: 40 entries [task 2017-05-08T11:52:07.379664Z] 11:52:07 INFO - [task 2017-05-08T11:52:07.380581Z] 11:52:07 INFO - TEST-PASS | leakcheck | plugin process: no leaks detected! [task 2017-05-08T11:52:07.381514Z] 11:52:07 INFO - [task 2017-05-08T11:52:07.382437Z] 11:52:07 INFO - == BloatView: ALL (cumulative) LEAK AND BLOAT STATISTICS, default process 1006 [task 2017-05-08T11:52:07.383375Z] 11:52:07 INFO - [task 2017-05-08T11:52:07.384281Z] 11:52:07 INFO - |<----------------Class--------------->|<-----Bytes------>|<----Objects---->| [task 2017-05-08T11:52:07.385213Z] 11:52:07 INFO - | | Per-Inst Leaked| Total Rem| [task 2017-05-08T11:52:07.386167Z] 11:52:07 INFO - 0 |TOTAL | 28 688|118498018 10| [task 2017-05-08T11:52:07.387126Z] 11:52:07 INFO - 999 |URLExtraData | 32 64| 19538 2| [task 2017-05-08T11:52:07.388838Z] 11:52:07 INFO - 1205 |nsAuthURLParser | 24 24| 2 1| [task 2017-05-08T11:52:07.391204Z] 11:52:07 INFO - 1549 |nsJSPrincipals | 24 24| 16511 1| [task 2017-05-08T11:52:07.392824Z] 11:52:07 INFO - 1720 |nsStandardURL | 272 544| 185775 2| [task 2017-05-08T11:52:07.393705Z] 11:52:07 INFO - 1731 |nsStringBuffer | 8 32| 1707750 4| [task 2017-05-08T11:52:07.395508Z] 11:52:07 INFO - [task 2017-05-08T11:52:07.396500Z] 11:52:07 INFO - nsTraceRefcnt::DumpStatistics: 1947 entries [task 2017-05-08T11:52:07.397426Z] 11:52:07 INFO - TEST-INFO | leakcheck | default process: leaked 2 URLExtraData [task 2017-05-08T11:52:07.398239Z] 11:52:07 INFO - TEST-INFO | leakcheck | default process: leaked 1 nsAuthURLParser [task 2017-05-08T11:52:07.398913Z] 11:52:07 INFO - TEST-INFO | leakcheck | default process: leaked 1 nsJSPrincipals [task 2017-05-08T11:52:07.399765Z] 11:52:07 INFO - TEST-INFO | leakcheck | default process: leaked 2 nsStandardURL [task 2017-05-08T11:52:07.400521Z] 11:52:07 INFO - TEST-INFO | leakcheck | default process: leaked 4 nsStringBuffer [task 2017-05-08T11:52:07.401339Z] 11:52:07 ERROR - TEST-UNEXPECTED-FAIL | leakcheck | default process: 688 bytes leaked (URLExtraData, nsAuthURLParser, nsJSPrincipals, nsStandardURL, nsStringBuffer)
See Also: → 1361235
I notice all reftest <select> are disable and associate to bug 1361235. In these two test case, <select> were used inside foreignObject element, so I think the root cause should be the same with bug 1361235.
After I rebased to the latest autoland, these tests could pass on my local now. I think the conjecture of comment 1 is right, and the root cause has been resolved by Cameron in Bug 1361235. Let's see how it goes on try: https://treeherder.mozilla.org/#/jobs?repo=try&revision=009a32c1e98e633bc8c568a6bc5a18ed76bf10cc
Assignee: nobody → jeremychen
Status: NEW → ASSIGNED
Blocks: stylo
Attachment #8867030 - Flags: review?(cam)
Attachment #8867030 - Flags: review?(cam) → review+
Pushed by jichen@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/1ca4b981b050 re-enable <select> related SVG crashtests. r=heycam
Status: ASSIGNED → RESOLVED
Closed: 8 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla55
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: