Closed Bug 839535 Opened 7 years ago Closed 6 years ago

Intermittent mochitest-3 leak of 3176, 3184, 3244, 3376, 6000, 6008 bytes (BackstagePass, CondVar, Mutex, ReentrantMonitor, SharedScriptableHelperForJSIID, ...)

Categories

(Core :: XPConnect, defect)

defect
Not set

Tracking

()

RESOLVED WORKSFORME

People

(Reporter: RyanVM, Unassigned)

References

Details

(Keywords: intermittent-failure, memory-leak)

Attachments

(1 file)

Not the first time I've seen this, but it's managed to slip under the radar for filing AFAICT.

https://tbpl.mozilla.org/php/getParsedLog.php?id=19571783&tree=Mozilla-Inbound

== BloatView: ALL (cumulative) LEAK AND BLOAT STATISTICS, default process 2202

     |<----------------Class--------------->|<-----Bytes------>|<----------------Objects---------------->|<--------------References-------------->|
                                              Per-Inst   Leaked    Total      Rem      Mean       StdDev     Total      Rem      Mean       StdDev
   0 TOTAL                                          20     6000 289436427       60 (19482.04 +/- 38162.79) 242510719       52 ( 6495.35 +/- 13855.40)
  14 BackstagePass                                  48       48        1        1 (    1.00 +/-     0.00)     2899        4 (  325.57 +/-   137.19)
  59 CondVar                                        32       32    14047        1 (   20.65 +/-     2.29)        0        0 (    0.00 +/-     0.00)
 240 Mutex                                          24      144    86392        6 (  190.85 +/-    44.27)        0        0 (    0.00 +/-     0.00)
 297 ReentrantMonitor                               32       96    15969        3 (   86.95 +/-    67.01)        0        0 (    0.00 +/-     0.00)
 350 SharedScriptableHelperForJSIID                 24       24        1        1 (    1.00 +/-     0.00)    23258        1 (  116.27 +/-    26.81)
 419 XPCNativeScriptableInfo                        16       16    59309        1 ( 2650.08 +/-   573.38)        0        0 (    0.00 +/-     0.00)
 420 XPCNativeScriptableShared                     464     1392    59830        3 (  182.08 +/-    82.79)        0        0 (    0.00 +/-     0.00)
 423 XPCWrappedNative                              104     1144   317123       11 ( 7020.04 +/-  2254.87)  1718825       11 ( 7080.49 +/-  2242.64)
 424 XPCWrappedNativeProto                          64      384    90840        6 ( 1840.79 +/-   472.15)        0        0 (    0.00 +/-     0.00)
 485 nsAsyncStreamCopier                           112      112       52        1 (    2.25 +/-     1.29)      718        1 (    8.76 +/-     5.29)
 603 nsDNSAsyncRequest                              88       88     3165        1 (    1.49 +/-     0.51)     9495        1 (    2.16 +/-     0.70)
 812 nsHostResolver                                232      232        2        1 (    0.67 +/-     0.58)     6337        1 (    3.27 +/-     0.85)
 880 nsJSID                                         56      112    18443        2 (  525.98 +/-   468.66)   130943        2 ( 1808.14 +/-  1762.00)
 881 nsJSIID                                        48       48     5454        1 ( 1030.86 +/-   366.06)    90668        1 ( 2425.73 +/-   831.90)
 920 nsMultiplexInputStream                         64       64        6        1 (    1.45 +/-     0.52)       27        2 (    3.12 +/-     0.86)
 975 nsPipe                                        288      288    15421        1 (   17.14 +/-    60.97)   291515        3 (   74.74 +/-   219.81)
1075 nsScriptableInputStream                        32       32       25        1 (    7.94 +/-     5.74)      100        1 (   15.78 +/-    11.77)
1091 nsSocketTransport                             440      440     3165        1 (   13.50 +/-    41.33)    80372        4 (   36.56 +/-   107.93)
1092 nsSocketTransportService                      216      216        1        1 (    1.00 +/-     0.00)   156459        2 (   30.39 +/-    68.48)
1106 nsStringBuffer                                  8        8  3605255        1 (23089.33 +/-  4389.04) 11459998        2 (41167.83 +/-  8128.69)
1151 nsSystemPrincipal                              24       24        1        1 (    1.00 +/-     0.00)   924290        1 (  325.88 +/-    42.13)
1152 nsTArray_base                                   8       16 55459388        2 (91901.99 +/- 32787.74)        0        0 (    0.00 +/-     0.00)
1163 nsThread                                      200      200       70        1 (   25.80 +/-    13.41)   760460        1 (  211.34 +/-    71.05)
1178 nsTransportEventSinkProxy                      80       80     2908        1 (    1.83 +/-     1.53)     8755        1 (    2.72 +/-     2.25)
1264 nsXPCWrappedJS                                128      384    18566        3 ( 1198.54 +/-   732.41)  2716973        6 ( 3551.86 +/-  1076.18)
1265 nsXPCWrappedJSClass                            72      216     1670        3 (   41.16 +/-     5.30)   365797        3 ( 1367.47 +/-   633.51)
1312 xptiInterfaceInfo                              40      160    11420        4 (  503.55 +/-   239.81)   657950        4 ( 1550.23 +/-   299.10)

nsTraceRefcntImpl::DumpStatistics: 1314 entries
TEST-UNEXPECTED-FAIL | automationutils.processLeakLog() | leaked 6000 bytes during test execution
TEST-UNEXPECTED-FAIL | automationutils.processLeakLog() | leaked 1 instance of BackstagePass with size 48 bytes
TEST-UNEXPECTED-FAIL | automationutils.processLeakLog() | leaked 1 instance of CondVar with size 32 bytes
TEST-UNEXPECTED-FAIL | automationutils.processLeakLog() | leaked 6 instances of Mutex with size 24 bytes each (144 bytes total)
TEST-UNEXPECTED-FAIL | automationutils.processLeakLog() | leaked 3 instances of ReentrantMonitor with size 32 bytes each (96 bytes total)
TEST-UNEXPECTED-FAIL | automationutils.processLeakLog() | leaked 1 instance of SharedScriptableHelperForJSIID with size 24 bytes
TEST-INFO | automationutils.processLeakLog() | leaked 1 instance of XPCNativeScriptableInfo with size 16 bytes
TEST-INFO | automationutils.processLeakLog() | leaked 3 instances of XPCNativeScriptableShared with size 464 bytes each (1392 bytes total)
TEST-INFO | automationutils.processLeakLog() | leaked 11 instances of XPCWrappedNative with size 104 bytes each (1144 bytes total)
TEST-INFO | automationutils.processLeakLog() | leaked 6 instances of XPCWrappedNativeProto with size 64 bytes each (384 bytes total)
TEST-INFO | automationutils.processLeakLog() | leaked 1 instance of nsAsyncStreamCopier with size 112 bytes
TEST-INFO | automationutils.processLeakLog() | leaked 1 instance of nsDNSAsyncRequest with size 88 bytes
TEST-INFO | automationutils.processLeakLog() | leaked 1 instance of nsHostResolver with size 232 bytes
TEST-INFO | automationutils.processLeakLog() | leaked 2 instances of nsJSID with size 56 bytes each (112 bytes total)
TEST-INFO | automationutils.processLeakLog() | leaked 1 instance of nsJSIID with size 48 bytes
TEST-INFO | automationutils.processLeakLog() | leaked 1 instance of nsMultiplexInputStream with size 64 bytes
TEST-INFO | automationutils.processLeakLog() | leaked 1 instance of nsPipe with size 288 bytes
TEST-INFO | automationutils.processLeakLog() | leaked 1 instance of nsScriptableInputStream with size 32 bytes
TEST-INFO | automationutils.processLeakLog() | leaked 1 instance of nsSocketTransport with size 440 bytes
TEST-INFO | automationutils.processLeakLog() | leaked 1 instance of nsSocketTransportService with size 216 bytes
TEST-INFO | automationutils.processLeakLog() | leaked 1 instance of nsStringBuffer with size 8 bytes
TEST-INFO | automationutils.processLeakLog() | leaked 1 instance of nsSystemPrincipal with size 24 bytes
TEST-INFO | automationutils.processLeakLog() | leaked 2 instances of nsTArray_base with size 8 bytes each (16 bytes total)
TEST-INFO | automationutils.processLeakLog() | leaked 1 instance of nsThread with size 200 bytes
TEST-INFO | automationutils.processLeakLog() | leaked 1 instance of nsTransportEventSinkProxy with size 80 bytes
TEST-INFO | automationutils.processLeakLog() | leaked 3 instances of nsXPCWrappedJS with size 128 bytes each (384 bytes total)
TEST-INFO | automationutils.processLeakLog() | leaked 3 instances of nsXPCWrappedJSClass with size 72 bytes each (216 bytes total)
TEST-INFO | automationutils.processLeakLog() | leaked 4 instances of xptiInterfaceInfo with size 40 bytes each (160 bytes total)
https://tbpl.mozilla.org/php/getParsedLog.php?id=19599241&tree=Mozilla-Inbound
Summary: Intermittent mochitest-3 leak of 6000 bytes (1 BackstagePass, 1 CondVar, 6 Mutex, 3 ReentrantMonitor, 1 SharedScriptableHelperForJSIID) → Intermittent mochitest-3 leak of 3176, 6000 bytes (1 BackstagePass, 1 CondVar, 6 Mutex, 3 ReentrantMonitor, 1 SharedScriptableHelperForJSIID)
https://tbpl.mozilla.org/php/getParsedLog.php?id=19908398&tree=Mozilla-Inbound
Summary: Intermittent mochitest-3 leak of 3176, 6000 bytes (1 BackstagePass, 1 CondVar, 6 Mutex, 3 ReentrantMonitor, 1 SharedScriptableHelperForJSIID) → Intermittent mochitest-3 leak of 3176, 6000, 6008 bytes (1 BackstagePass, 1 CondVar, 6 Mutex, 3 ReentrantMonitor, 1 SharedScriptableHelperForJSIID)
https://tbpl.mozilla.org/php/getParsedLog.php?id=20070931&tree=Mozilla-Inbound
Summary: Intermittent mochitest-3 leak of 3176, 6000, 6008 bytes (1 BackstagePass, 1 CondVar, 6 Mutex, 3 ReentrantMonitor, 1 SharedScriptableHelperForJSIID) → Intermittent mochitest-3 leak of 3176, 3184, 6000, 6008 bytes (1 BackstagePass, 1 CondVar, 6 Mutex, 3 ReentrantMonitor, 1 SharedScriptableHelperForJSIID)
https://tbpl.mozilla.org/php/getParsedLog.php?id=20155828&tree=Mozilla-Inbound

Bobby, could you take a look at this?
Flags: needinfo?(bobbyholley+bmo)
Given the stuff that gets leaked here, I might wildly guess that it has something to do with off-main-thread XPCWrappedJS usage. If anything, the leak profile will change when I rip out all that threading goop.
Depends on: 773610
Flags: needinfo?(bobbyholley+bmo)
https://tbpl.mozilla.org/php/getParsedLog.php?id=20282072&tree=Mozilla-Inbound
Summary: Intermittent mochitest-3 leak of 3176, 3184, 6000, 6008 bytes (1 BackstagePass, 1 CondVar, 6 Mutex, 3 ReentrantMonitor, 1 SharedScriptableHelperForJSIID) → Intermittent mochitest-3 leak of 3176, 3184, 3376, 6000, 6008 bytes (1 BackstagePass, 1 CondVar, 6 Mutex, 3 ReentrantMonitor, 1 SharedScriptableHelperForJSIID)
This only occurs on M3 - there must be a specific test triggering this.

Have cross referenced between two logs, one old, one new - and on two platforms (fed64/winxp) to make this list of candidates. (Though with the lowish frequency of this bug, retriggering on Try to bisect this list further may still be impractical, not sure).
https://tbpl.mozilla.org/php/getParsedLog.php?id=20389344&tree=Mozilla-Inbound
Summary: Intermittent mochitest-3 leak of 3176, 3184, 3376, 6000, 6008 bytes (1 BackstagePass, 1 CondVar, 6 Mutex, 3 ReentrantMonitor, 1 SharedScriptableHelperForJSIID) → Intermittent mochitest-3 leak of 3176, 3184, 3244, 3376, 6000, 6008 bytes (1 BackstagePass, 1 CondVar, 6 Mutex, 3 ReentrantMonitor, 1 SharedScriptableHelperForJSIID)
(In preparation for bug 850681)
Summary: Intermittent mochitest-3 leak of 3176, 3184, 3244, 3376, 6000, 6008 bytes (1 BackstagePass, 1 CondVar, 6 Mutex, 3 ReentrantMonitor, 1 SharedScriptableHelperForJSIID) → Intermittent mochitest-3 leak of 3176, 3184, 3244, 3376, 6000, 6008 bytes (BackstagePass, CondVar, Mutex, ReentrantMonitor, SharedScriptableHelperForJSIID, ...)
No longer depends on: 773610
Depends on: 770535
No sign of this since July.
Status: NEW → RESOLVED
Closed: 6 years ago
Resolution: --- → WORKSFORME
You need to log in before you can comment on or make changes to this bug.