Closed Bug 1282442 Opened 8 years ago Closed 7 years ago

JS GC, shutdown, Assertion failure: isEmpty() (failing this assertion means this LinkedList's creator is buggy: it should have removed all this list's elements before the list's destruction), at LinkedList.h:332

Categories

(Core :: JavaScript: GC, defect, P3)

defect

Tracking

()

RESOLVED DUPLICATE of bug 1265637

People

(Reporter: mayhemer, Unassigned)

References

Details

(Keywords: triage-deferred)

Happens during shutdown, not always reproducible, some extensions installed (I can list them here on demand). Debug build, win10 (no local patches). > xul.dll!mozilla::LinkedList<js::WeakMapBase>::~LinkedList<js::WeakMapBase>() Line 332 C++ xul.dll!JS::Zone::~Zone() Line 69 C++ xul.dll!JS::Zone::`scalar deleting destructor'() C++ xul.dll!js::FreeOp::delete_<JS::Zone>(0x02b2e800) Line 412 C++ xul.dll!js::gc::GCRuntime::sweepZones(0x006ff378, true) Line 3596 C++ xul.dll!js::gc::GCRuntime::incrementalCollectSlice({...}, DESTROY_RUNTIME, {...}) Line 6017 C++ xul.dll!js::gc::GCRuntime::gcCycle(true, {...}, DESTROY_RUNTIME) Line 6207 C++ xul.dll!js::gc::GCRuntime::collect(true, {...}, DESTROY_RUNTIME) Line 6312 C++ xul.dll!js::gc::GCRuntime::gc(GC_NORMAL, DESTROY_RUNTIME) Line 6380 C++ xul.dll!JSRuntime::destroyRuntime() Line 433 C++ xul.dll!JSContext::~JSContext() Line 895 C++ xul.dll!JSContext::`scalar deleting destructor'() C++ xul.dll!js_delete_poison<JSContext>(0x0dfee000) Line 393 C++ xul.dll!js::DestroyContext(0x0dfee000) Line 133 C++ xul.dll!JS_DestroyRuntime(0x0dfee0e8) Line 476 C++ xul.dll!mozilla::CycleCollectedJSRuntime::~CycleCollectedJSRuntime() Line 481 C++ xul.dll!XPCJSRuntime::~XPCJSRuntime() Line 1708 C++ xul.dll!XPCJSRuntime::`scalar deleting destructor'() C++ xul.dll!nsXPConnect::~nsXPConnect() Line 100 C++ xul.dll!nsXPConnect::`scalar deleting destructor'() C++ xul.dll!nsXPConnect::Release() Line 43 C++ xul.dll!nsXPConnect::ReleaseXPConnectSingleton() Line 150 C++ xul.dll!xpcModuleDtor() Line 23 C++ xul.dll!LayoutModuleDtor() Line 1397 C++ xul.dll!nsComponentManagerImpl::KnownModule::~KnownModule() Line 238 C++ xul.dll!nsComponentManagerImpl::KnownModule::`scalar deleting destructor'() C++ xul.dll!nsAutoPtr<nsComponentManagerImpl::KnownModule>::~nsAutoPtr<nsComponentManagerImpl::KnownModule>() Line 78 C++ xul.dll!nsAutoPtr<nsComponentManagerImpl::KnownModule>::`scalar deleting destructor'() C++ xul.dll!nsTArrayElementTraits<nsAutoPtr<nsComponentManagerImpl::KnownModule> >::Destruct(0x02b5b470) Line 523 C++ xul.dll!nsTArray_Impl<nsAutoPtr<nsComponentManagerImpl::KnownModule>,nsTArrayInfallibleAllocator>::DestructRange(0, 60) Line 2014 C++ xul.dll!nsTArray_Impl<nsAutoPtr<nsComponentManagerImpl::KnownModule>,nsTArrayInfallibleAllocator>::RemoveElementsAt(0, 60) Line 1657 C++ xul.dll!nsTArray_Impl<nsAutoPtr<nsComponentManagerImpl::KnownModule>,nsTArrayInfallibleAllocator>::Clear() Line 1666 C++ xul.dll!nsComponentManagerImpl::Shutdown() Line 912 C++ xul.dll!mozilla::ShutdownXPCOM(0x00000000) Line 986 C++ xul.dll!NS_ShutdownXPCOM(0x02b83104) Line 810 C++ xul.dll!ScopedXPCOMStartup::~ScopedXPCOMStartup() Line 1488 C++ xul.dll!ScopedXPCOMStartup::`scalar deleting destructor'() C++ xul.dll!mozilla::DefaultDelete<ScopedXPCOMStartup>::operator()(0x02b061c0) Line 528 C++ xul.dll!mozilla::UniquePtr<ScopedXPCOMStartup,mozilla::DefaultDelete<ScopedXPCOMStartup> >::reset(0x00000000) Line 345 C++ xul.dll!mozilla::UniquePtr<ScopedXPCOMStartup,mozilla::DefaultDelete<ScopedXPCOMStartup> >::operator=(0x00000000) Line 314 C++ xul.dll!XREMain::XRE_main(4, 0x02b01020, 0x006ffaa8) Line 4525 C++ xul.dll!XRE_main(4, 0x02b01020, 0x006ffaa8, 0) Line 4599 C++ firefox.exe!do_main(4, 0x02b01020, 0x00a64688, 0x02b081c0) Line 254 C++ firefox.exe!NS_internal_main(4, 0x02b01020, 0x00a64688) Line 427 C++ firefox.exe!wmain(4, 0x00a562a0) Line 127 C++ firefox.exe!__scrt_common_main_seh() Line 255 C++ kernel32.dll!@BaseThreadInitThunk@12() Unknown ntdll.dll!__RtlUserThreadStart() Unknown ntdll.dll!__RtlUserThreadStart@8() Unknown Zone object on frame #2: - this 0x02b2e800 {debuggers=0x00000000 <NULL> uniqueIds_={...} suppressAllocationMetadataBuilder=false ...} JS::Zone * + JS::shadow::Zone {runtime_=0x0dfee0e8 {mainThread={runtime_=0x0dfee0e8 {mainThread={runtime_=0x0dfee0e8 {mainThread={...} ...} ...} ...} ...} ...} ...} JS::shadow::Zone + js::gc::GraphNodeBase<JS::Zone> {gcNextGraphNode=0x00000000 <NULL> gcNextGraphComponent=0x00000000 <NULL> gcDiscoveryTime=0 ...} js::gc::GraphNodeBase<JS::Zone> js::MallocProvider<JS::Zone> {...} js::MallocProvider<JS::Zone> + debuggers 0x00000000 <NULL> mozilla::Vector<js::Debugger *,0,js::SystemAllocPolicy> * + uniqueIds_ {...} JS::GCHashMap<js::gc::Cell *,unsigned __int64,js::PointerHasher<js::gc::Cell *,3>,js::SystemAllocPolicy,js::gc::UniqueIdGCPolicy> suppressAllocationMetadataBuilder false bool + arenas {runtime_=0x0dfee0e8 {mainThread={runtime_=0x0dfee0e8 {mainThread={runtime_=0x0dfee0e8 {mainThread={...} ...} ...} ...} ...} ...} ...} js::gc::ArenaLists + types {zone_=0x02b2e800 {debuggers=0x00000000 <NULL> uniqueIds_={...} suppressAllocationMetadataBuilder=false ...} ...} js::TypeZone + gcWeakMapList {sentinel={mNext=0x13adfd84 {mNext=0x02b2eb84 {mNext=0x13adfd84 {mNext=0x02b2eb84 {mNext=0x13adfd84 {...} ...} ...} ...} ...} ...} } mozilla::LinkedList<js::WeakMapBase> + compartments {mBegin=0x1e79e000 {0xe5e5e5e5 {creationOptions_={addonId_=??? traceGlobal_=??? zone_={spec=??? pointer=...} ...} ...}} ...} mozilla::Vector<JSCompartment *,1,js::SystemAllocPolicy> + gcGrayRoots {mBegin=0x02b2ebc0 {0xe4e4e4e4 {...}} mLength=0 mCapacity=0 ...} mozilla::Vector<js::gc::Cell *,0,js::SystemAllocPolicy> + gcWeakRefs {mBegin=0x1c6a1400 {0xe5e5e5e5 {???}} mLength=0 mCapacity=32 ...} mozilla::Vector<js::gc::TenuredCell * *,0,js::SystemAllocPolicy> + weakCaches_ {sentinel={mNext=0x02b2ebf0 {mNext=0x02b2ebf0 {mNext=0x02b2ebf0 {mNext=0x02b2ebf0 {mNext=0x02b2ebf0 {...} ...} ...} ...} ...} ...} } mozilla::LinkedList<JS::WeakCache<void *> > + gcWeakKeys {impl={hashTable=0x02b06070 {0xe5e5e5e5 {element={key={ptr=??? } value={mBegin=??? mLength=??? mCapacity=...} } ...}} ...} } js::OrderedHashMap<JS::GCCellPtr,mozilla::Vector<js::gc::WeakMarkable,2,js::SystemAllocPolicy>,js::gc::WeakKeyTableHashPolicy,js::SystemAllocPolicy> + gcZoneGroupEdges {impl={gen=0 hashShift=27 table=0x02b19600 {keyHash=3857049061 mem={u={mBytes=0x02b19608 "ĺĺĺĺ... mDummy=...} } } ...} } js::HashSet<JS::Zone *,js::DefaultHasher<JS::Zone *>,js::SystemAllocPolicy> + typeDescrObjects {sweeper=0x02e446cd {xul.dll!JS::StructGCPolicy<class JS::GCHashSet<class js::HeapPtr<class JSObject *>,struct js::MovableCellHasher<class js::HeapPtr<class JSObject *> >,class js::SystemAllocPolicy> >::sweep(class JS::GCHashSet<class js::HeapPtr<class JSObject *>,struct js::MovableCellHasher<class js::HeapPtr<class JSObject *> >,class js::SystemAllocPolicy> *)} ...} JS::WeakCache<JS::GCHashSet<js::HeapPtr<JSObject *>,js::MovableCellHasher<js::HeapPtr<JSObject *> >,js::SystemAllocPolicy> > + gcMallocBytes {...} mozilla::Atomic<int,1,void> gcMaxMallocBytes 120795955 unsigned int + gcMallocGCTriggered {...} mozilla::Atomic<unsigned int,1,void> + usage {parent_=0x0dff0298 {parent_=0x00000000 <NULL> gcBytes_={...} } gcBytes_={...} } js::gc::HeapUsage + threshold {gcHeapGrowthFactor_=1.5000000000000000 gcTriggerBytes_={...} } js::gc::ZoneHeapThreshold gcDelayBytes 0 unsigned int data 0x00000000 void * isSystem true bool usedByExclusiveThread false bool active false bool gcLastZoneGroupIndex 0 unsigned int + jitZone_ 0x11835400 {optimizedStubSpace_={...} } js::jit::JitZone * gcState_ Finished (4) JS::Zone::GCState gcScheduled_ true bool gcPreserveCode_ false bool jitUsingBarriers_ false bool + listNext_ 0x00000001 {debuggers=??? uniqueIds_={...} suppressAllocationMetadataBuilder=??? ...} JS::Zone * rt object on frame 2: - rt 0x0dfee0e8 {mainThread={runtime_=0x0dfee0e8 {mainThread={runtime_=0x0dfee0e8 {mainThread={runtime_=0x0dfee0e8 {...} ...} ...} ...} ...} ...} ...} JSRuntime * + JS::shadow::Runtime {heapState_=MajorCollecting (2) gcStoreBufferPtr_=0x0dfee480 {bufferVal={stores_={impl={gen=143 hashShift=...} } ...} ...} } JS::shadow::Runtime js::MallocProvider<JSRuntime> {...} js::MallocProvider<JSRuntime> + mainThread {runtime_=0x0dfee0e8 {mainThread={runtime_=0x0dfee0e8 {mainThread={runtime_=0x0dfee0e8 {mainThread={...} ...} ...} ...} ...} ...} ...} js::PerThreadData + jitTop 0x00000000 <NULL> unsigned char * + jitJSContext 0x00000000 <NULL> JSContext * + jitActivation 0x00000000 <NULL> js::jit::JitActivation * + jitStackLimit_ {...} mozilla::Atomic<unsigned int,0,void> jitStackLimitNoInterrupt_ 6465537 unsigned int + regexpStack {base_=0x02b4f000 size=1024 limit_=0x02b4f380 } js::irregexp::RegExpStack ionBailAfter_ 0 unsigned int + activation_ 0x00000000 <NULL> js::Activation * + profilingActivation_ 0x00000000 <NULL> js::Activation * volatile + profilerSampleBufferGen_ {...} mozilla::Atomic<unsigned int,1,void> + profilerSampleBufferLapCount_ {...} mozilla::Atomic<unsigned int,1,void> + wasmActivationStack_ 0x00000000 <NULL> js::WasmActivation * volatile + asyncStackForNewActivations {ptr=0x00000000 <NULL> } JS::PersistentRooted<js::SavedFrame *> + asyncCauseForNewActivations 0x00000000 <NULL> const char * asyncCallIsExplicit false bool + entryMonitor 0x00000000 <NULL> JS::dbg::AutoEntryMonitor * + noExecuteDebuggerTop 0x00000000 <NULL> js::EnterDebuggeeNoExecute * + parentRuntime 0x00000000 <NULL> JSRuntime * + childRuntimeCount {...} mozilla::Atomic<unsigned int,2,void> + updateChildRuntimeCount {parent_=0x00000000 <NULL> } JSRuntime::AutoUpdateChildRuntimeCount + interrupt_ {...} mozilla::Atomic<unsigned int,0,void> telemetryCallback 0x044a3390 {xul.dll!AccumulateTelemetryCallback(int, unsigned int, const char *)} void(*)(int, unsigned int, const char *) handlingSegFault false bool + handlingJitInterrupt_ {...} mozilla::Atomic<bool,2,void> interruptCallback 0x02ea98c0 {xul.dll!XPCJSRuntime::InterruptCallback(struct JSContext *)} bool(*)(JSContext *) enqueuePromiseJobCallback 0x00000000 bool(*)(JSContext *, JS::Handle<JSObject *>, JS::Handle<JSObject *>, void *) enqueuePromiseJobCallbackData 0x00000000 void * promiseRejectionTrackerCallback 0x00000000 void(*)(JSContext *, JS::Handle<JSObject *>, PromiseRejectionHandlingState, void *) promiseRejectionTrackerCallbackData 0x00000000 void * + exclusiveAccessLock {platformData_=0x0dfd30e0 {criticalSection={DebugInfo=0xffffffff {Type=??? CreatorBackTraceIndex=??? ...} ...} } } js::Mutex exclusiveAccessOwner 0x00000000 <NULL> PRThread * mainThreadHasExclusiveAccess true bool numExclusiveThreads 0 unsigned int numCompartments 1 unsigned int + localeCallbacks 0x00000000 <NULL> const JSLocaleCallbacks * + defaultLocale 0x02b06e40 "cs-CZ" char * defaultVersion_ JSVERSION_DEFAULT (0) JSVersion + fx {cond_=0x0dfd2790 {...} state_=Idle (0) canWait_=false } js::FutexRuntime ownerThread_ 0x02b1c140 void * ownerThreadNative_ 832 unsigned int + tempLifoAlloc {first=0x0dfff000 {bump=0x0dfff010 "ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ... ...} ...} js::LifoAlloc + context_ 0x0dfee000 {throwing=false unwrappedException_={ptr={data={asBits=18446743532543672320 s={payload={i32=...} ...} ...} } } ...} JSContext * + jitRuntime_ 0x11ba7240 {execAlloc_={randomNumberGenerator={mIsSome=true mStorage={u={mBytes=0x11ba7248 "Lw\\‘®sëůĹtb\x1cçVzî... ...} } } ...} ...} js::jit::JitRuntime * + selfHostingGlobal_ 0x11919040 {shape_={...} slots_=0xffffff8c {...} elements_=0x4b4b4b4b {...} } js::NativeObject * + interpreterStack_ {allocator_={first=0x11ac2000 {bump=0x11ac2010 "ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ... ...} ...} ...} js::InterpreterStack nativeStackBase 7340032 const unsigned int + nativeStackQuota 0x0dfee2ec {1007616, 997376, 874496} unsigned int[3] destroyCompartmentCallback 0x044ab4a0 {xul.dll!CompartmentDestroyedCallback(JSFreeOp *, JSCompartment *)} void(*)(JSFreeOp *, JSCompartment *) sizeOfIncludingThisCompartmentCallback 0x044ab590 {xul.dll!CompartmentSizeOfIncludingThisCallback(unsigned int(*)(const void *), JSCompartment *)} unsigned int(*)(unsigned int(*)(const void *), JSCompartment *) destroyZoneCallback 0x02c137dc {xul.dll!XPCStringConvert::FreeZoneCache(struct JS::Zone *)} void(*)(JS::Zone *) sweepZoneCallback 0x02d0b11c {xul.dll!XPCStringConvert::ClearZoneCache(struct JS::Zone *)} void(*)(JS::Zone *) compartmentNameCallback 0x044ab4f0 {xul.dll!CompartmentNameCallback(JSRuntime *, JSCompartment *, char *, unsigned int)} void(*)(JSRuntime *, JSCompartment *, char *, unsigned int) activityCallback 0x00000000 void(*)(void *, bool) activityCallbackArg 0x00000000 void * requestDepth 0 unsigned int checkRequestDepth 0 unsigned int + gc {rt=0x0dfee0e8 {mainThread={runtime_=0x0dfee0e8 {mainThread={runtime_=0x0dfee0e8 {mainThread={runtime_=...} ...} ...} ...} ...} ...} ...} js::gc::GCRuntime gcInitialized true bool + scriptAndCountsVector 0x00000000 <NULL> JS::PersistentRooted<JS::GCVector<js::ScriptAndCounts,0,js::SystemAllocPolicy> > * + lcovOutput {out_={file_=0x00000000 <NULL> init_=false } pid_=11420 isEmpty_=false } js::coverage::LCovRuntime + NaNValue {data={asBits=9221120237041090560 s={payload={i32=0 u32=0 boo=0 ...} tag=2146959360 } asDouble=nan ...} } const JS::Value + negativeInfinityValue {data={asBits=18442240474082181120 s={payload={i32=0 u32=0 boo=0 ...} tag=4293918720 } asDouble=-inf ...} } const JS::Value + positiveInfinityValue {data={asBits=9218868437227405312 s={payload={i32=0 u32=0 boo=0 ...} tag=2146435072 } asDouble=inf ...} } const JS::Value + emptyString 0x00000000 <NULL> js::PropertyName * + sourceHook {mTuple={...} } mozilla::UniquePtr<js::SourceHook,mozilla::DefaultDelete<js::SourceHook> > + spsProfiler {rt=0x0dfee0e8 {mainThread={runtime_=0x0dfee0e8 {mainThread={runtime_=0x0dfee0e8 {mainThread={runtime_=...} ...} ...} ...} ...} ...} ...} js::SPSProfiler profilingScripts false bool + suppressProfilerSampling {...} mozilla::Atomic<bool,2,void> hadOutOfMemory false bool handlingInitFailure false bool allowRelazificationForTesting false bool + debuggerList {sentinel={mNext=0x0dff0f0c {mNext=0x0dff0f0c {mNext=0x0dff0f0c {mNext=0x0dff0f0c {mNext=0x0dff0f0c {...} ...} ...} ...} ...} ...} } mozilla::LinkedList<js::Debugger> + onNewGlobalObjectWatchers {next=0x0dff0f18 {next=0x0dff0f18 {next=0x0dff0f18 {next=0x0dff0f18 {next=0x0dff0f18 {next=0x0dff0f18 {...} ...} ...} ...} ...} ...} ...} JSCListStr data 0x00000000 void * signalHandlersInstalled_ true bool canUseSignalHandlers_ true bool + defaultFreeOp_ {freeLaterList={mBegin=0x0dff0f40 {0xe4e4e4e4} mLength=0 mCapacity=0 ...} jitPoisonRanges={mBegin=0x0dff0f60 {...} ...} ...} js::FreeOp debuggerMutations 0 unsigned int + securityCallbacks 0x0c471758 {xul.dll!JSSecurityCallbacks js::NullSecurityCallbacks} {contentSecurityPolicyAllows=0x00000000 ...} const JSSecurityCallbacks * + DOMcallbacks 0x0c732c44 {xul.dll!js::JSDOMCallbacks DOMcallbacks} {instanceClassMatchesProto=0x02e06517 {xul.dll!mozilla::dom::InstanceClassHasProtoAtDepth(struct js::Class const *,unsigned int,unsigned int)} } const js::JSDOMCallbacks * destroyPrincipals 0x02e8991c {xul.dll!nsJSPrincipals::Destroy(struct JSPrincipals *)} void(*)(JSPrincipals *) readPrincipals 0x00000000 bool(*)(JSContext *, JSStructuredCloneReader *, JSPrincipals * *) warningReporter 0x0329b970 {xul.dll!MozCrashWarningReporter(JSContext *, const char *, JSErrorReport *)} void(*)(JSContext *, const char *, JSErrorReport *) buildIdOp 0x02d07e5e {xul.dll!mozilla::GetBuildId(class mozilla::Vector<char,0,class js::SystemAllocPolicy> *)} bool(*)(mozilla::Vector<char,0,js::SystemAllocPolicy> *) + asmJSCacheOps {openEntryForRead=0x051943a0 {xul.dll!AsmJSCacheOpenEntryForRead(JS::Handle<JSObject *>, const char16_t *, const char16_t *, unsigned int *, const unsigned char * *, int *)} ...} JS::AsmJSCacheOps propertyRemovals 1575 unsigned int + mathCache_ 0x21d8e000 {table=0x21d8e000 {{in=0.00000000000000000 id=Zero (0) out=0.00000000000000000 }, {in=0.00000000000000000 ...}, ...} } js::MathCache * + sharedImmutableStrings_ {mIsSome=true mStorage={u={mBytes=0x0dff0fb8 "" mDummy=16493559403286399488 } } } mozilla::Maybe<js::SharedImmutableStringsCache> + gsnCache {code=0x00000000 <NULL> map={impl={gen=314 hashShift=26 table=0x00000000 <NULL> ...} } } js::GSNCache + scopeCoordinateNameCache {shape=0x00000000 <NULL> map={impl={gen=0 hashShift=32 table=0x00000000 <NULL> ...} } } js::ScopeCoordinateNameCache + newObjectCache {entries=0x0dff1070 {{clasp=0x00000000 <NULL> key=0x00000000 <NULL> kind=FIRST (0) ...}, {clasp=0x00000000 <NULL> ...}, ...} } js::NewObjectCache + nativeIterCache {data=0x0dff2a10 {0x00000000 <NULL>, 0x00000000 <NULL>, 0x00000000 <NULL>, 0x00000000 <NULL>, 0x00000000 <NULL>, ...} ...} js::NativeIterCache + uncompressedSourceCache {map_={mTuple={...} } holder_=0x00000000 <NULL> } js::UncompressedSourceCache + evalCache {impl={gen=0 hashShift=27 table=0x02b50000 {keyHash=0 mem={u={mBytes=0x02b50008 "" mDummy=0 } } } ...} } js::HashSet<js::EvalCacheEntry,js::EvalCacheHashPolicy,js::SystemAllocPolicy> + lazyScriptCache {entries=0x0dff2e70 {0x00000000 <NULL>, 0x00000000 <NULL>, 0x00000000 <NULL>, 0x00000000 <NULL>, 0x00000000 <NULL>, ...} ...} js::FixedSizeHashSet<JSScript *,js::LazyScriptHashPolicy,769> + parseMapPool_ {all={mBegin=0x0dff4690 {0x0dfe2d60} mLength=0 mCapacity=32 ...} recyclable={mBegin=0x0dff4728 {0x133e1340} ...} } js::frontend::ParseMapPool activeCompilations_ 0 unsigned int keepAtoms_ 0 unsigned int + trustedPrincipals_ 0x00000000 <NULL> const JSPrincipals * beingDestroyed_ true bool + atoms_ 0x00000000 <NULL> JS::GCHashSet<js::AtomStateEntry,js::AtomHasher,js::SystemAllocPolicy> * + atomsCompartment_ 0x02b2c000 {creationOptions_={addonId_=0x00000000 <NULL> traceGlobal_=0x00000000 zone_={spec=FreshZone (0) ...} ...} ...} JSCompartment * + symbolRegistry_ {...} js::SymbolRegistry + staticStrings 0x00000000 <NULL> js::StaticStrings * + commonNames 0x00000000 <NULL> JSAtomState * + permanentAtoms 0x00000000 <NULL> js::FrozenAtomSet * + wellKnownSymbols 0x00000000 <NULL> js::WellKnownSymbols * + wrapObjectCallbacks 0x0a76e754 {xul.dll!JSWrapObjectCallbacks WrapObjectCallbacks} {wrap=0x02d10383 {xul.dll!xpc::WrapperFactory::Rewrap(struct JSContext *,class JS::Handle<class JSObject *>,class JS::Handle<class JSObject *>)} ...} const JSWrapObjectCallbacks * preserveWrapperCallback 0x044c5640 {xul.dll!PreserveWrapper(JSContext *, JSObject *)} bool(*)(JSContext *, JSObject *) + scriptDataTable_ {impl={gen=13 hashShift=27 table=0x02b14800 {keyHash=5753252 mem={u={mBytes=0x02b14808 "" mDummy=46103552 } } } ...} } js::HashSet<js::SharedScriptData *,js::ScriptBytecodeHasher,js::SystemAllocPolicy> jitSupportsFloatingPoint true bool jitSupportsSimd true bool + ionPcScriptCache 0x11879c00 {gcNumber=1049 entries={mArr=0x11879c08 {{returnAddress=0x00000000 <NULL> pc=0x11ba68ef "ĺĺĺĺĺĺĺĺĺĺĺĺĺĺĺĺĺĺĺĺĺĺĺĺĺĺĺĺĺĺĺĺĺĺĺĺĺĺĺĺĺĺĺĺĺĺĺĺĺĺĺĺĺĺĺĺĺĺĺĺĺĺĺĺĺĺĺĺĺĺĺĺĺĺĺĺĺĺĺĺĺĺĺĺĺĺĺĺĺĺĺĺĺĺĺĺĺĺĺĺĺĺĺĺĺĺĺĺĺĺĺĺĺĺĺĺĺĺĺĺĺĺĺĺĺĺĺĺĺĺĺĺĺĺĺĺĺĺĺĺĺĺĺĺĺĺĺĺĺĺĺĺĺĺĺĺĺĺĺĺĺĺĺĺĺĺĺĺĺĺĺĺĺĺĺĺĺĺĺĺĺĺĺĺĺĺĺĺĺĺĺĺĺĺĺĺĺĺĺĺ... ...}, ...} } } js::jit::PcScriptCache * + scriptEnvironmentPreparer 0x02b4cd00 {...} js::ScriptEnvironmentPreparer * {mozilla::CycleCollectedJSRuntime::EnvironmentPreparer} ctypesActivityCallback 0x00000000 void(*)(JSContext *, js::CTypesActivityType) + options_ {baseline_=true ion_=true asmJS_=true ...} JS::RuntimeOptions + windowProxyClass_ 0x0aa96420 {xul.dll!js::Class OuterWindowProxyClass} {name=0x0aa944b0 "Proxy" flags=1310722 cOps=0x0c4f0204 {xul.dll!js::ClassOps js::ProxyClassOps} {...} ...} const js::Class * offthreadIonCompilationEnabled_ true bool parallelParsingEnabled_ true bool autoWritableJitCodeActive_ false bool + enteredPolicy 0x00000000 <NULL> js::AutoEnterPolicy * largeAllocationFailureCallback 0x02c377e0 {xul.dll!mozilla::CycleCollectedJSRuntime::LargeAllocationFailureCallback(void *)} void(*)(void *) largeAllocationFailureCallbackData 0x02b4cc00 void * oomCallback 0x02d923b5 {xul.dll!mozilla::CycleCollectedJSRuntime::OutOfMemoryCallback(struct JSContext *,void *)} void(*)(JSContext *, void *) oomCallbackData 0x02b4cc00 void * debuggerMallocSizeOf 0x0f5310f5 {mozglue.dll!_moz_malloc_size_of} unsigned int(*)(const void *) lastAnimationTime 1467037776342388 __int64 + performanceMonitoring {totalCPOWTime=22744 testCpuRescheduling={stayed=0 moved=0 } stopwatchStartCallback=0x00000000 ...} js::PerformanceMonitoring + ionLazyLinkList_ {sentinel={mNext=0x0dff4930 {mNext=0x0dff4930 {mNext=0x0dff4930 {mNext=0x0dff4930 {mNext=0x0dff4930 {...} ...} ...} ...} ...} ...} } mozilla::LinkedList<js::jit::IonBuilder> ionLazyLinkListSize_ 0 unsigned int
And in the console I can see a lot of: "ERROR: GC found live Cell 20659538 of kind * at shutdown" of various kinds.
This sounds like something bz was hitting, doing (apparently) not much more than opening up the web console, close to the end of Mozlondon. I don't know if he ever tracked down the malefactor, and he's on PTO now apparently (whatever that means for us :-) ), but we can leave this pending til he returns, at least. ...or not, "is not currently accepting 'needinfo' requests", boo-urns. Maybe a CC will do, at least.
(In reply to Jeff Walden [:Waldo] (remove +bmo to email) from comment #2) > This sounds like something bz was hitting, doing (apparently) not much more > than opening up the web console, close to the end of Mozlondon. That's bug 1275752.
This assertion is just what happens now when some JS objects are not cleaned up by the time we shut down. It may or may not be related to the other bug.
Keywords: triage-deferred
Priority: -- → P3
This is the same as bug 1265637.
Status: NEW → RESOLVED
Closed: 7 years ago
Resolution: --- → DUPLICATE
You need to log in before you can comment on or make changes to this bug.