Closed Bug 1170192 Opened 9 years ago Closed 6 years ago

while running browser/components/feeds/test/chrome/test_maxSniffing.html and toolkit/components/places/test/* in run-by-dir mode, we have a leak

Categories

(Core :: XPConnect, defect)

defect
Not set
normal

Tracking

()

RESOLVED INACTIVE

People

(Reporter: jmaher, Unassigned)

References

Details

test_maxSniffing.html:
https://dxr.mozilla.org/mozilla-central/source/browser/components/feeds/test/chrome/test_maxSniffing.html?from=test_maxSniffing.html&case=true#1

has a leak while run as a standalone directory:
https://treeherder.mozilla.org/#/jobs?repo=try&revision=7d88fb566fa0 (or seen on all platforms: https://treeherder.mozilla.org/#/jobs?repo=try&revision=b4be8c445878)

This was introduced in the last 2 weeks, the tests didn't change, so something in the mochitest harness or the browser code did :)

there are actually 2 leaks in the above try link (feeds and places), the feeds link is the first one in the log:
http://ftp.mozilla.org/pub/mozilla.org/firefox/try-builds/jmaher@mozilla.com-7d88fb566fa0/try-linux64-debug/try_ubuntu64_vm-debug_test-mochitest-other-bm115-tests1-linux64-build241.txt.gz

with this content:
06:08:25     INFO -  Leaked URLs:
06:08:25     INFO -    http://mochi.test:8888/tests/browser/components/feeds/test/valid-feed.xml
06:08:25     INFO -  nsStringStats
06:08:25     INFO -   => mAllocCount:          70307
06:08:25     INFO -   => mReallocCount:         6209
06:08:25     INFO -   => mFreeCount:           70306  --  LEAKED 1 !!!
06:08:25     INFO -   => mShareCount:          95333
06:08:25     INFO -   => mAdoptCount:           5281
06:08:25     INFO -   => mAdoptFreeCount:       5281
06:08:25     INFO -   => Process ID: 2016, Thread ID: 140028463630144
06:08:25     INFO -  TEST-INFO | Main app process: exit 0
06:08:25     INFO -  runtests.py | Application ran for: 0:00:17.842573
06:08:25     INFO -  zombiecheck | Reading PID log: /tmp/tmphYBqBFpidlog
06:08:25     INFO -  Stopping web server
06:08:25     INFO -  Stopping web socket server
06:08:25     INFO -  Stopping ssltunnel
06:08:25     INFO -  TEST-INFO | leakcheck | default process: leak threshold set at 0 bytes
06:08:25     INFO -  TEST-INFO | leakcheck | plugin process: leak threshold set at 0 bytes
06:08:25     INFO -  TEST-INFO | leakcheck | tab process: leak threshold set at 10000 bytes
06:08:25     INFO -  TEST-INFO | leakcheck | geckomediaplugin process: leak threshold set at 20000 bytes
06:08:25     INFO -  == BloatView: ALL (cumulative) LEAK AND BLOAT STATISTICS, default process 2016
06:08:25     INFO -       |<----------------Class--------------->|<-----Bytes------>|<----Objects---->|
06:08:25     INFO -       |                                      | Per-Inst   Leaked|   Total      Rem|
06:08:25     INFO -     0 |TOTAL                                 |       27     1744| 1403129       27|
06:08:25     INFO -    30 |BackstagePass                         |       96      192|     250        2|
06:08:25     INFO -   580 |XPCNativeScriptableInfo               |       16       32|    3438        2|
06:08:25     INFO -   581 |XPCNativeScriptableShared             |      328      328|    3463        1|
06:08:25     INFO -   584 |XPCWrappedNative                      |       96      480|   10395        5|
06:08:25     INFO -   585 |XPCWrappedNativeProto                 |       48      192|    2276        4|
06:08:25     INFO -   588 |XPCWrappedNativeTearOff               |       24      120|   14053        5|
06:08:25     INFO -   661 |nsAuthURLParser                       |       24       24|       2        1|
06:08:25     INFO -   922 |nsJSID                                |       56       56|    2021        1|
06:08:25     INFO -   924 |nsJSPrincipals                        |       16       16|     477        1|
06:08:25     INFO -   995 |nsParserUtils                         |       32       32|       1        1|
06:08:25     INFO -  1075 |nsStandardURL                         |      248      248|    8746        1|
06:08:25     INFO -  1086 |nsStringBuffer                        |        8        8|   76516        1|
06:08:25     INFO -  1128 |nsTArray_base                         |        8       16|  299863        2|
06:08:25     INFO -  nsTraceRefcnt::DumpStatistics: 1260 entries
06:08:25     INFO -  TEST-INFO | leakcheck | default process: leaked 2 BackstagePass (192 bytes)
06:08:25     INFO -  TEST-INFO | leakcheck | default process: leaked 2 XPCNativeScriptableInfo (32 bytes)
06:08:25     INFO -  TEST-INFO | leakcheck | default process: leaked 1 XPCNativeScriptableShared (328 bytes)
06:08:25     INFO -  TEST-INFO | leakcheck | default process: leaked 5 XPCWrappedNative (480 bytes)
06:08:25     INFO -  TEST-INFO | leakcheck | default process: leaked 4 XPCWrappedNativeProto (192 bytes)
06:08:25     INFO -  TEST-INFO | leakcheck | default process: leaked 5 XPCWrappedNativeTearOff (120 bytes)
06:08:25     INFO -  TEST-INFO | leakcheck | default process: leaked 1 nsAuthURLParser (24 bytes)
06:08:25     INFO -  TEST-INFO | leakcheck | default process: leaked 1 nsJSID (56 bytes)
06:08:25     INFO -  TEST-INFO | leakcheck | default process: leaked 1 nsJSPrincipals (16 bytes)
06:08:25     INFO -  TEST-INFO | leakcheck | default process: leaked 1 nsParserUtils (32 bytes)
06:08:25     INFO -  TEST-INFO | leakcheck | default process: leaked 1 nsStandardURL (248 bytes)
06:08:25     INFO -  TEST-INFO | leakcheck | default process: leaked 1 nsStringBuffer (8 bytes)
06:08:25     INFO -  TEST-INFO | leakcheck | default process: leaked 2 nsTArray_base (16 bytes)
06:08:25  WARNING -  TEST-UNEXPECTED-FAIL | leakcheck | default process: 1744 bytes leaked (BackstagePass, XPCNativeScriptableInfo, XPCNativeScriptableShared, XPCWrappedNative, XPCWrappedNativeProto, ...)
06:08:25     INFO -  runtests.py | Running tests: end.
06:08:25     INFO -  17 INFO TEST-START | Shutdown
06:08:25     INFO -  18 INFO Passed:  5
06:08:25     INFO -  19 INFO Failed:  0
06:08:25     INFO -  20 INFO Todo:    0
06:08:25     INFO -  21 INFO Slowest: 1814ms - chrome://mochitests/content/chrome/browser/components/feeds/test/chrome/test_423060.xul
06:08:25     INFO -  22 INFO SimpleTest FINISHED

I am not sure if we really leaked the url (valid-feed.xml) as a try push with test_maxSniffing.html commented out (https://treeherder.mozilla.org/#/jobs?repo=try&revision=1153efcab8dd), resulted in no leak in that directory.  We do load valid-feed.xml in that test, so quite possibly that is the place to look.
Component: RSS Discovery and Preview → XPConnect
Product: Firefox → Core
There's a bunch of pre-cycle-collector gunk with XPCWrappedNatives that is probably causing this leak.
any chance that could be the cause of the second leak which is showing up in toolkit/components/places/test/* ?

I tried a few try pushes disabling each one of the 3 tests and the leak always showed up:
example push: https://treeherder.mozilla.org/#/jobs?repo=try&revision=d20914fd2b64
log output:
07:18:26     INFO -  Leaked URLs:
07:18:26     INFO -    http://mochi.test:8888/tests/toolkit/components/places/tests/chrome/rss_as_html.rss
07:18:26     INFO -    http://mochi.test:8888/tests/toolkit/components/places/tests/chrome/link-less-items.rss
07:18:26     INFO -    http://mochi.test:8888/tests/toolkit/components/places/tests/chrome/link-less-items-no-site-uri.rss
07:18:26     INFO -    http://mochi.test:8888/tests/toolkit/components/places/tests/chrome/link-less-items.rss
07:18:26     INFO -    http://mochi.test:8888/tests/toolkit/components/places/tests/chrome/link-less-items-no-site-uri.rss
07:18:26     INFO -  nsStringStats
07:18:26     INFO -   => mAllocCount:          77890
07:18:26     INFO -   => mReallocCount:         7014
07:18:26     INFO -   => mFreeCount:           77885  --  LEAKED 5 !!!
07:18:26     INFO -   => mShareCount:         108003
07:18:26     INFO -   => mAdoptCount:           5583
07:18:26     INFO -   => mAdoptFreeCount:       5583
07:18:26     INFO -   => Process ID: 13420, Thread ID: 139702306760512
07:18:26     INFO -  TEST-INFO | Main app process: exit 0
07:18:26     INFO -  runtests.py | Application ran for: 0:00:24.810332
07:18:26     INFO -  zombiecheck | Reading PID log: /tmp/tmpUepO8Wpidlog
07:18:26     INFO -  Stopping web server
07:18:26     INFO -  Stopping web socket server
07:18:26     INFO -  Stopping ssltunnel
07:18:26     INFO -  TEST-INFO | leakcheck | default process: leak threshold set at 0 bytes
07:18:26     INFO -  TEST-INFO | leakcheck | plugin process: leak threshold set at 0 bytes
07:18:26     INFO -  TEST-INFO | leakcheck | tab process: leak threshold set at 10000 bytes
07:18:26     INFO -  TEST-INFO | leakcheck | geckomediaplugin process: leak threshold set at 20000 bytes
07:18:26     INFO -  == BloatView: ALL (cumulative) LEAK AND BLOAT STATISTICS, default process 13420
07:18:26     INFO -       |<----------------Class--------------->|<-----Bytes------>|<----Objects---->|
07:18:26     INFO -       |                                      | Per-Inst   Leaked|   Total      Rem|
07:18:26     INFO -     0 |TOTAL                                 |       25     3440| 1932485       47|
07:18:26     INFO -    30 |BackstagePass                         |       96      192|     259        2|
07:18:26     INFO -   589 |XPCNativeScriptableInfo               |       16       32|    3626        2|
07:18:26     INFO -   590 |XPCNativeScriptableShared             |      328      328|    3653        1|
07:18:26     INFO -   593 |XPCWrappedNative                      |       96      864|   14294        9|
07:18:26     INFO -   594 |XPCWrappedNativeProto                 |       48      384|    2668        8|
07:18:26     INFO -   597 |XPCWrappedNativeTearOff               |       24      216|   19189        9|
07:18:26     INFO -   672 |nsAuthURLParser                       |       24       24|       2        1|
07:18:26     INFO -   939 |nsJSID                                |       56       56|    2748        1|
07:18:26     INFO -   941 |nsJSPrincipals                        |       16       16|     492        1|
07:18:26     INFO -  1014 |nsParserUtils                         |       32       32|       1        1|
07:18:26     INFO -  1096 |nsStandardURL                         |      248     1240|    9017        5|
07:18:26     INFO -  1106 |nsStringBuffer                        |        8       40|   84904        5|
07:18:26     INFO -  1147 |nsTArray_base                         |        8       16|  392086        2|
07:18:26     INFO -  nsTraceRefcnt::DumpStatistics: 1263 entries
07:18:26     INFO -  TEST-INFO | leakcheck | default process: leaked 2 BackstagePass (192 bytes)
07:18:26     INFO -  TEST-INFO | leakcheck | default process: leaked 2 XPCNativeScriptableInfo (32 bytes)
07:18:26     INFO -  TEST-INFO | leakcheck | default process: leaked 1 XPCNativeScriptableShared (328 bytes)
07:18:26     INFO -  TEST-INFO | leakcheck | default process: leaked 9 XPCWrappedNative (864 bytes)
07:18:26     INFO -  TEST-INFO | leakcheck | default process: leaked 8 XPCWrappedNativeProto (384 bytes)
07:18:26     INFO -  TEST-INFO | leakcheck | default process: leaked 9 XPCWrappedNativeTearOff (216 bytes)
07:18:26     INFO -  TEST-INFO | leakcheck | default process: leaked 1 nsAuthURLParser (24 bytes)
07:18:26     INFO -  TEST-INFO | leakcheck | default process: leaked 1 nsJSID (56 bytes)
07:18:26     INFO -  TEST-INFO | leakcheck | default process: leaked 1 nsJSPrincipals (16 bytes)
07:18:26     INFO -  TEST-INFO | leakcheck | default process: leaked 1 nsParserUtils (32 bytes)
07:18:26     INFO -  TEST-INFO | leakcheck | default process: leaked 5 nsStandardURL (1240 bytes)
07:18:26     INFO -  TEST-INFO | leakcheck | default process: leaked 5 nsStringBuffer (40 bytes)
07:18:26     INFO -  TEST-INFO | leakcheck | default process: leaked 2 nsTArray_base (16 bytes)
07:18:26  WARNING -  TEST-UNEXPECTED-FAIL | leakcheck | default process: 3440 bytes leaked (BackstagePass, XPCNativeScriptableInfo, XPCNativeScriptableShared, XPCWrappedNative, XPCWrappedNativeProto, ...)

If you think it isn't this, I am fine filing a new bug for it :)
Flags: needinfo?(continuation)
It does look very similar. The nsParserUtils thing is odd. I think it is fine to leave them in one bug for now.
Flags: needinfo?(continuation)
Summary: while running browser/components/feeds/test/chrome in run-by-dir mode, we have a leak in test_maxSniffing.html → while running browser/components/feeds/test/chrome/test_maxSniffing.html and toolkit/components/places/test/* in run-by-dir mode, we have a leak
Per policy at https://wiki.mozilla.org/Bug_Triage/Projects/Bug_Handling/Bug_Husbandry#Inactive_Bugs. If this bug is not an enhancement request or a bug not present in a supported release of Firefox, then it may be reopened.
Status: NEW → RESOLVED
Closed: 6 years ago
Resolution: --- → INACTIVE
You need to log in before you can comment on or make changes to this bug.