Closed Bug 1639768 Opened 4 years ago Closed 7 months ago

Intermittent LeakSanitizer | leak at js_pod_arena_malloc, maybe_pod_arena_malloc, pod_malloc, js::TenuringTracer::moveSlotsToTenured

Categories

(Core :: JavaScript Engine, defect, P5)

defect

Tracking

()

RESOLVED WORKSFORME

People

(Reporter: intermittent-bug-filer, Unassigned)

References

(Blocks 2 open bugs)

Details

(Keywords: intermittent-failure, Whiteboard: [stockwell unknown])

Filed by: ncsoregi [at] mozilla.com
Parsed log: https://treeherder.mozilla.org/logviewer.html#?job_id=303188447&repo=autoland
Full log: https://firefox-ci-tc.services.mozilla.com/api/queue/v1/task/eiqmshlbQcOqzZbBKOeqfQ/runs/0/artifacts/public/logs/live_backing.log


[task 2020-05-21T02:06:23.069Z] 02:06:23 INFO - GECKO(1776) | Indirect leak of 16 byte(s) in 1 object(s) allocated from:
[task 2020-05-21T02:06:23.069Z] 02:06:23 INFO - GECKO(1776) | #0 0x561bf9e9d36d in malloc /builds/worker/fetches/llvm-project/llvm/projects/compiler-rt/lib/asan/asan_malloc_linux.cc:145:3
[task 2020-05-21T02:06:23.070Z] 02:06:23 INFO - GECKO(1776) | #1 0x7f667cba4121 in js_arena_malloc /builds/worker/workspace/obj-build/dist/include/js/Utility.h:384:10
[task 2020-05-21T02:06:23.071Z] 02:06:23 INFO - GECKO(1776) | #2 0x7f667cba4121 in js_pod_arena_malloc<js::detail::OrderedHashTable<js::OrderedHashMap<js::HashableValue, js::HeapPtr<JS::Value>, js::HashableValue::Hasher, js::ZoneAllocPolicy>::Entry, js::OrderedHashMap<js::HashableValue, js::HeapPtr<JS::Value>, js::HashableValue::Hasher, js::ZoneAllocPolicy>::MapOps, js::ZoneAllocPolicy>::Data > /builds/worker/workspace/obj-build/dist/include/js/Utility.h:592:26
[task 2020-05-21T02:06:23.071Z] 02:06:23 INFO - GECKO(1776) | #3 0x7f667cba4121 in maybe_pod_arena_malloc<js::detail::OrderedHashTable<js::OrderedHashMap<js::HashableValue, js::HeapPtr<JS::Value>, js::HashableValue::Hasher, js::ZoneAllocPolicy>::Entry, js::OrderedHashMap<js::HashableValue, js::HeapPtr<JS::Value>, js::HashableValue::Hasher, js::ZoneAllocPolicy>::MapOps, js::ZoneAllocPolicy>::Data > /builds/worker/checkouts/gecko/js/src/vm/MallocProvider.h:53:12
[task 2020-05-21T02:06:23.072Z] 02:06:23 INFO - GECKO(1776) | #4 0x7f667cba4121 in js::detail::OrderedHashTable<js::OrderedHashMap<js::HashableValue, js::HeapPtr<JS::Value>, js::HashableValue::Hasher, js::ZoneAllocPolicy>::Entry, js::OrderedHashMap<js::HashableValue, js::HeapPtr<JS::Value>, js::HashableValue::Hasher, js::ZoneAllocPolicy>::MapOps, js::ZoneAllocPolicy>::Data
js::MallocProvider<js::ZoneAllocPolicy>::pod_arena_malloc<js::detail::OrderedHashTable<js::OrderedHashMap<js::HashableValue, js::HeapPtr<JS::Value>, js::HashableValue::Hasher, js::ZoneAllocPolicy>::Entry, js::OrderedHashMap<js::HashableValue, js::HeapPtr<JS::Value>, js::HashableValue::Hasher, js::ZoneAllocPolicy>::MapOps, js::ZoneAllocPolicy>::Data*>(unsigned long, unsigned long) /builds/worker/checkouts/gecko/js/src/vm/MallocProvider.h:105:12
[task 2020-05-21T02:06:23.073Z] 02:06:23 INFO - GECKO(1776) | #5 0x7f667cba48ad in pod_malloc<js::detail::OrderedHashTable<js::OrderedHashMap<js::HashableValue, js::HeapPtr<JS::Value>, js::HashableValue::Hasher, js::ZoneAllocPolicy>::Entry, js::OrderedHashMap<js::HashableValue, js::HeapPtr<JS::Value>, js::HashableValue::Hasher, js::ZoneAllocPolicy>::MapOps, js::ZoneAllocPolicy>::Data > /builds/worker/checkouts/gecko/js/src/vm/MallocProvider.h:123:12
[task 2020-05-21T02:06:23.074Z] 02:06:23 INFO - GECKO(1776) | #6 0x7f667cba48ad in js::detail::OrderedHashTable<js::OrderedHashMap<js::HashableValue, js::HeapPtr<JS::Value>, js::HashableValue::Hasher, js::ZoneAllocPolicy>::Entry, js::OrderedHashMap<js::HashableValue, js::HeapPtr<JS::Value>, js::HashableValue::Hasher, js::ZoneAllocPolicy>::MapOps, js::ZoneAllocPolicy>::init() /builds/worker/checkouts/gecko/js/src/ds/OrderedHashTable.h:119:40
[task 2020-05-21T02:06:23.075Z] 02:06:23 INFO - GECKO(1776) | #7 0x7f667cb36ef5 in init /builds/worker/checkouts/gecko/js/src/ds/OrderedHashTable.h:804:42
[task 2020-05-21T02:06:23.076Z] 02:06:23 INFO - GECKO(1776) | #8 0x7f667cb36ef5 in js::MapObject::create(JSContext
, JS::Handle<JSObject*>) /builds/worker/checkouts/gecko/js/src/builtin/MapObject.cpp:603:13
[task 2020-05-21T02:06:23.076Z] 02:06:23 INFO - GECKO(1776) | #9 0x7f667cb37bc5 in js::MapObject::construct(JSContext*, unsigned int, JS::Value*) /builds/worker/checkouts/gecko/js/src/builtin/MapObject.cpp:662:30
[task 2020-05-21T02:06:23.077Z] 02:06:23 INFO - GECKO(1776) | #10 0x7f667ca49530 in CallJSNative /builds/worker/checkouts/gecko/js/src/vm/Interpreter.cpp:493:13
[task 2020-05-21T02:06:23.078Z] 02:06:23 INFO - GECKO(1776) | #11 0x7f667ca49530 in CallJSNativeConstructor /builds/worker/checkouts/gecko/js/src/vm/Interpreter.cpp:509:8
[task 2020-05-21T02:06:23.078Z] 02:06:23 INFO - GECKO(1776) | #12 0x7f667ca49530 in InternalConstruct(JSContext*, js::AnyConstructArgs const&) /builds/worker/checkouts/gecko/js/src/vm/Interpreter.cpp:692:14
[task 2020-05-21T02:06:23.078Z] 02:06:23 INFO - GECKO(1776) | #13 0x7f667ca22968 in Interpret(JSContext*, js::RunState&) /builds/worker/checkouts/gecko/js/src/vm/Interpreter.cpp:3302:16
[task 2020-05-21T02:06:23.079Z] 02:06:23 INFO - GECKO(1776) | #14 0x7f667ca16376 in js::RunScript(JSContext*, js::RunState&) /builds/worker/checkouts/gecko/js/src/vm/Interpreter.cpp:465:10
[task 2020-05-21T02:06:23.079Z] 02:06:23 INFO - GECKO(1776) | #15 0x7f667ca46b0a in js::InternalCallOrConstruct(JSContext*, JS::CallArgs const&, js::MaybeConstruct, js::CallReason) /builds/worker/checkouts/gecko/js/src/vm/Interpreter.cpp:620:13
[task 2020-05-21T02:06:23.080Z] 02:06:23 INFO - GECKO(1776) | #16 0x7f667ca49276 in InternalConstruct(JSContext*, js::AnyConstructArgs const&) /builds/worker/checkouts/gecko/js/src/vm/Interpreter.cpp:695:10
[task 2020-05-21T02:06:23.080Z] 02:06:23 INFO - GECKO(1776) | #17 0x7f667ca49e6e in js::Construct(JSContext*, JS::Handle<JS::Value>, js::AnyConstructArgs const&, JS::Handle<JS::Value>, JS::MutableHandle<JSObject*>) /builds/worker/checkouts/gecko/js/src/vm/Interpreter.cpp:750:8
[task 2020-05-21T02:06:23.080Z] 02:06:23 INFO - GECKO(1776) | #18 0x7f667cc7ce38 in js::ForwardingProxyHandler::construct(JSContext*, JS::Handle<JSObject*>, JS::CallArgs const&) const /builds/worker/checkouts/gecko/js/src/proxy/Wrapper.cpp:182:8
[task 2020-05-21T02:06:23.081Z] 02:06:23 INFO - GECKO(1776) | #19 0x7f667cc51e46 in js::CrossCompartmentWrapper::construct(JSContext*, JS::Handle<JSObject*>, JS::CallArgs const&) const /builds/worker/checkouts/gecko/js/src/proxy/CrossCompartmentWrapper.cpp:260:19
[task 2020-05-21T02:06:23.082Z] 02:06:23 INFO - GECKO(1776) | #20 0x7f667cc60ff8 in js::Proxy::construct(JSContext*, JS::Handle<JSObject*>, JS::CallArgs const&) /builds/worker/checkouts/gecko/js/src/proxy/Proxy.cpp:510:19
[task 2020-05-21T02:06:23.083Z] 02:06:23 INFO - GECKO(1776) | #21 0x7f667ca492eb in InternalConstruct(JSContext*, js::AnyConstructArgs const&) /builds/worker/checkouts/gecko/js/src/vm/Interpreter.cpp:705:12
[task 2020-05-21T02:06:23.083Z] 02:06:23 INFO - GECKO(1776) | #22 0x7f667d8cb6cb in js::jit::DoCallFallback(JSContext*, js::jit::BaselineFrame*, js::jit::ICCall_Fallback*, unsigned int, JS::Value*, JS::MutableHandle<JS::Value>) /builds/worker/checkouts/gecko/js/src/jit/BaselineIC.cpp:2970:10
[task 2020-05-21T02:06:23.099Z] 02:06:23 INFO - GECKO(1776) | #23 0x2386f107ebd7 (<unknown module>)
[task 2020-05-21T02:06:23.115Z] 02:06:23 INFO - GECKO(1776) | #24 0x62100005f817 (<unknown module>)
[task 2020-05-21T02:06:23.135Z] 02:06:23 INFO - GECKO(1776) | #25 0x2386f107c49e (<unknown module>)
[task 2020-05-21T02:06:23.136Z] 02:06:23 INFO - GECKO(1776) | #26 0x7f667dd2e66b in EnterJit /builds/worker/checkouts/gecko/js/src/jit/Jit.cpp:105:5
[task 2020-05-21T02:06:23.136Z] 02:06:23 INFO - GECKO(1776) | #27 0x7f667dd2e66b in js::jit::MaybeEnterJit(JSContext*, js::RunState&) /builds/worker/checkouts/gecko/js/src/jit/Jit.cpp:196:10
[task 2020-05-21T02:06:23.137Z] 02:06:23 INFO - GECKO(1776) | #28 0x7f667ca162d4 in js::RunScript(JSContext*, js::RunState&) /builds/worker/checkouts/gecko/js/src/vm/Interpreter.cpp:450:32
[task 2020-05-21T02:06:23.138Z] 02:06:23 INFO - GECKO(1776) | #29 0x7f667ca46b0a in js::InternalCallOrConstruct(JSContext*, JS::CallArgs const&, js::MaybeConstruct, js::CallReason) /builds/worker/checkouts/gecko/js/src/vm/Interpreter.cpp:620:13
[task 2020-05-21T02:06:23.138Z] 02:06:23 INFO - GECKO(1776) | #30 0x7f667ca49276 in InternalConstruct(JSContext*, js::AnyConstructArgs const&) /builds/worker/checkouts/gecko/js/src/vm/Interpreter.cpp:695:10
[task 2020-05-21T02:06:23.139Z] 02:06:23 INFO - GECKO(1776) | #31 0x7f667ca49e6e in js::Construct(JSContext*, JS::Handle<JS::Value>, js::AnyConstructArgs const&, JS::Handle<JS::Value>, JS::MutableHandle<JSObject*>) /builds/worker/checkouts/gecko/js/src/vm/Interpreter.cpp:750:8
[task 2020-05-21T02:06:23.139Z] 02:06:23 INFO - GECKO(1776) | #32 0x7f667cc7ce38 in js::ForwardingProxyHandler::construct(JSContext*, JS::Handle<JSObject*>, JS::CallArgs const&) const /builds/worker/checkouts/gecko/js/src/proxy/Wrapper.cpp:182:8
[task 2020-05-21T02:06:23.139Z] 02:06:23 INFO - GECKO(1776) | #33 0x7f667cc51e46 in js::CrossCompartmentWrapper::construct(JSContext*, JS::Handle<JSObject*>, JS::CallArgs const&) const /builds/worker/checkouts/gecko/js/src/proxy/CrossCompartmentWrapper.cpp:260:19
[task 2020-05-21T02:06:23.139Z] 02:06:23 INFO - GECKO(1776) | #34 0x7f667cc60ff8 in js::Proxy::construct(JSContext*, JS::Handle<JSObject*>, JS::CallArgs const&) /builds/worker/checkouts/gecko/js/src/proxy/Proxy.cpp:510:19
[task 2020-05-21T02:06:23.139Z] 02:06:23 INFO - GECKO(1776) | #35 0x7f667ca492eb in InternalConstruct(JSContext*, js::AnyConstructArgs const&) /builds/worker/checkouts/gecko/js/src/vm/Interpreter.cpp:705:12
[task 2020-05-21T02:06:23.140Z] 02:06:23 INFO - GECKO(1776) | #36 0x7f667ca49e6e in js::Construct(JSContext*, JS::Handle<JS::Value>, js::AnyConstructArgs const&, JS::Handle<JS::Value>, JS::MutableHandle<JSObject*>) /builds/worker/checkouts/gecko/js/src/vm/Interpreter.cpp:750:8
[task 2020-05-21T02:06:23.140Z] 02:06:23 INFO - GECKO(1776) | #37 0x7f667cbcccc5 in JS::Construct(JSContext*, JS::Handle<JS::Value>, JS::HandleValueArray const&, JS::MutableHandle<JSObject*>) /builds/worker/checkouts/gecko/js/src/jsapi.cpp:2890:10
[task 2020-05-21T02:06:23.140Z] 02:06:23 INFO - GECKO(1776) | -----------------------------------------------------
[task 2020-05-21T02:06:23.140Z] 02:06:23 INFO - GECKO(1776) | Suppressions used:
[task 2020-05-21T02:06:23.141Z] 02:06:23 INFO - GECKO(1776) | count bytes template
[task 2020-05-21T02:06:23.141Z] 02:06:23 INFO - GECKO(1776) | 293 29381 libc.so
[task 2020-05-21T02:06:23.141Z] 02:06:23 INFO - GECKO(1776) | 21 640 nsComponentManagerImpl
[task 2020-05-21T02:06:23.142Z] 02:06:23 INFO - GECKO(1776) | 633 18083 libfontconfig.so
[task 2020-05-21T02:06:23.145Z] 02:06:23 INFO - GECKO(1776) | 2 14 libglib-2.0.so
[task 2020-05-21T02:06:23.146Z] 02:06:23 INFO - GECKO(1776) | 1046 66512 js::frontend::BytecodeEmitter:
[task 2020-05-21T02:06:23.146Z] 02:06:23 INFO - GECKO(1776) | 106 3275 js::frontend::GeneralParser
[task 2020-05-21T02:06:23.147Z] 02:06:23 INFO - GECKO(1776) | 20 601 js::frontend::Parse
[task 2020-05-21T02:06:23.148Z] 02:06:23 INFO - GECKO(1776) | 68 2577 xpc::CIGSHelper
[task 2020-05-21T02:06:23.148Z] 02:06:23 INFO - GECKO(1776) | 991 68639 mozJSComponentLoader
[task 2020-05-21T02:06:23.148Z] 02:06:23 INFO - GECKO(1776) | 3 136 mozilla::xpcom::ConstructJSMComponent
[task 2020-05-21T02:06:23.148Z] 02:06:23 INFO - GECKO(1776) | 697 85851 XPCWrappedNativeJSOps
[task 2020-05-21T02:06:23.149Z] 02:06:23 INFO - GECKO(1776) | -----------------------------------------------------
[task 2020-05-21T02:06:23.150Z] 02:06:23 INFO - GECKO(1776) | SUMMARY: AddressSanitizer: 139727 byte(s) leaked in 1598 allocation(s).
[task 2020-05-21T02:06:23.449Z] 02:06:23 INFO - TEST-INFO | Main app process: exit 0
[task 2020-05-21T02:06:23.449Z] 02:06:23 INFO - TEST-INFO | LeakSanitizer | To show the addresses of leaked objects add report_objects=1 to LSAN_OPTIONS
[task 2020-05-21T02:06:23.450Z] 02:06:23 INFO - TEST-INFO | LeakSanitizer | This can be done in testing/mozbase/mozrunner/mozrunner/utils.py
[task 2020-05-21T02:06:23.450Z] 02:06:23 ERROR - TEST-UNEXPECTED-FAIL | LeakSanitizer | leak at js_pod_arena_malloc, maybe_pod_arena_malloc, pod_malloc, js::TenuringTracer::moveSlotsToTenured
[task 2020-05-21T02:06:23.450Z] 02:06:23 ERROR - TEST-UNEXPECTED-FAIL | LeakSanitizer | leak at mozilla::dom::ProtoAndIfaceCache::PageTableCache::EntrySlotOrCreate, mozilla::dom::ProtoAndIfaceCache::EntrySlotOrCreate, mozilla::dom::CanonicalBrowsingContext_Binding::CreateInterfaceObjects, mozilla::dom::GetPerInterfaceObjectHandle
[task 2020-05-21T02:06:23.451Z] 02:06:23 ERROR - TEST-UNEXPECTED-FAIL | LeakSanitizer | leak at js_pod_arena_calloc, maybe_pod_arena_calloc, js::TypeNewScript::maybeAnalyze, js::CreateThisForFunctionWithProto
[task 2020-05-21T02:06:23.451Z] 02:06:23 ERROR - TEST-UNEXPECTED-FAIL | LeakSanitizer | leak at js_pod_arena_calloc, maybe_pod_arena_calloc, pod_calloc, js::ShapeIC::init

This appears to be affecting linux64 asan builds only.

There's so much different stuff leaked it suggests that something fairly high level is being leaked.

I skimmed through the objects being leaked, and it looked like it was all or almost all JS. For instance, I didn't see any stack with nsGlobalWindowInner::Create in one log I looked at, so it is possible that this is a JS engine specific issue. Pretty hard to tell, though. Most of the leaks are in mochitest-media-e10s-2, though there are some others.

Flags: needinfo?(sdetar)
Whiteboard: [stockwell needswork:owner]

Jon, any new thoughts on this bug?

Flags: needinfo?(sdetar) → needinfo?(jcoppeard)
Depends on: 1679986

I don't know what's going on here.

It seems strange it only happens on ASAN builds. I'm pretty sure we have leak checking on other builds, so I wonder what's special about them.

Flags: needinfo?(jcoppeard)

(In reply to Jon Coppeard (:jonco) from comment #36)

It seems strange it only happens on ASAN builds. I'm pretty sure we have leak checking on other builds, so I wonder what's special about them.

This is just how leaks of JS stuff show up in LSan. We don't track leaks of JS in debug builds, so these leaks are likely showing up differently there.

Blocks: LSan
Severity: normal → S3

No failures for 8 months.

Status: NEW → RESOLVED
Closed: 7 months ago
Resolution: --- → WORKSFORME
You need to log in before you can comment on or make changes to this bug.