Closed Bug 1282442 Opened 8 years ago Closed 6 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.
See Also: → 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: 6 years ago
Resolution: --- → DUPLICATE
You need to log in before you can comment on or make changes to this bug.