Closed Bug 981195 Opened 9 years ago Closed 8 years ago

Small leak in TypeCompartment::fixObjectType

Categories

(Core :: JavaScript Engine, defect)

defect
Not set
normal

Tracking

()

RESOLVED WORKSFORME

People

(Reporter: mccr8, Unassigned)

References

(Blocks 1 open bug)

Details

(Whiteboard: [lsan])

I found this in an M4 run with LSAN.  The two allocations look like they are the local vars |ids| and |types|.  Maybe they aren't being freed on some error return path?  This was the only JS-y stuff in the log, aside from some JSD locks and some mystery XPConnect stuff.

Direct leak of 8 byte(s) in 1 object(s) allocated from:
    #0 0x446434 in calloc /builds/slave/moz-toolchain/src/llvm/projects/compiler-rt/lib/asan/asan_malloc_linux.cc:90
    #1 0x7f0485195a01 in js_calloc /somepath/obj-firefox/js/src/../../dist/include/js/Utility.h:140
    #2 0x7f0485195a01 in calloc_ /somepath/js/src/vm/MallocProvider.h:60
    #3 0x7f0485195a01 in length /somepath/js/src/vm/MallocProvider.h:115
    #4 0x7f0485195a01 in js::types::TypeCompartment::fixObjectType(js::ExclusiveContext*, JSObject*) /somepath/js/src/jsinfer.cpp:2685
    #5 0x7f0484a9c3b3 in FixObjectType /somepath/js/src/jsinferinlines.h:548
    #6 0x7f0484a9c3b3 in js::frontend::ParseNode::getConstantValue(js::ExclusiveContext*, bool, JS::MutableHandle<JS::Value>) /somepath/js/src/frontend/BytecodeEmitter.cpp:3877
    #7 0x7f0484aad091 in EmitSingletonInitialiser(js::ExclusiveContext*, js::frontend::BytecodeEmitter*, js::frontend::ParseNode*) /somepath/js/src/frontend/BytecodeEmitter.cpp:3891
    #8 0x7f0484aaf651 in EmitObject(js::ExclusiveContext*, js::frontend::BytecodeEmitter*, js::frontend::ParseNode*) /somepath/js/src/frontend/BytecodeEmitter.cpp:5860

Direct leak of 8 byte(s) in 1 object(s) allocated from:
    #0 0x446434 in calloc /builds/slave/moz-toolchain/src/llvm/projects/compiler-rt/lib/asan/asan_malloc_linux.cc:90
    #1 0x7f0485195a8b in js_calloc /somepath/obj-firefox/js/src/../../dist/include/js/Utility.h:140
    #2 0x7f0485195a8b in calloc_ /somepath/js/src/vm/MallocProvider.h:60
    #3 0x7f0485195a8b in length /somepath/js/src/vm/MallocProvider.h:115
    #4 0x7f0485195a8b in js::types::TypeCompartment::fixObjectType(js::ExclusiveContext*, JSObject*) /somepath/js/src/jsinfer.cpp:2691
    #5 0x7f0484a9c3b3 in FixObjectType /somepath/js/src/jsinferinlines.h:548
    #6 0x7f0484a9c3b3 in js::frontend::ParseNode::getConstantValue(js::ExclusiveContext*, bool, JS::MutableHandle<JS::Value>) /somepath/js/src/frontend/BytecodeEmitter.cpp:3877
    #7 0x7f0484aad091 in EmitSingletonInitialiser(js::ExclusiveContext*, js::frontend::BytecodeEmitter*, js::frontend::ParseNode*) /somepath/js/src/frontend/BytecodeEmitter.cpp:3891
    #8 0x7f0484aaf651 in EmitObject(js::ExclusiveContext*, js::frontend::BytecodeEmitter*, js::frontend::ParseNode*) /somepath/js/src/frontend/BytecodeEmitter.cpp:5860
This seems to have gone away. Maybe that offthread parsing leak fix also fixed this? Anyways, I'm going to remove the suppression in bug 1201096.
Status: NEW → RESOLVED
Closed: 8 years ago
Resolution: --- → WORKSFORME
You need to log in before you can comment on or make changes to this bug.