Status: New
Owner: ----
New issue 2471 by [email protected]: Regression: Bogus retaining paths in
a heap snapshot
http://code.google.com/p/v8/issues/detail?id=2471
Affected Chromium versions:
Chromium tip of tree 26.0.1377.0 (175320), contains V8 3.16.2
Chrome 25.0.1364.5 dev
Use this test page:
<script
src="http://closure-library.googlecode.com/svn/trunk/closure/goog/base.js"></script>
<script>
goog.require('goog.Disposable');
</script>
<script>
goog.Disposable.MONITORING_MODE =
goog.Disposable.MonitoringMode.INTERACTIVE;
MyObj = function() {
goog.base(this);
}
goog.inherits(MyObj, goog.Disposable);
MyObjCreator = function() {}
MyObjCreator.prototype.Create = function() {
return new MyObj();
}
var creator = new MyObjCreator();
// Not a leak.
var handle = creator.Create();
// Leak.
var handle2 = creator.Create();
handle2 = null;
</script>
2. Take a heap snapshot, check the retaining paths for the MyObj instances.
For the first instance, the retaining tree is sane:
handle in Window / file:///...
[1] in @13195 << this is goog.Disposable.instances_
For the second instance:
[2] in @13195
[8] in Array @13451
d in function() @13469 << what's this?
d in function() @13471
[0] in Array @13451
d in function() @13469
d in function() @13471
------
Do you need more information, e.g., a smaller repro case without Closure?
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev