Gnome-shell crashes on destroying cached param specs
This happens when exiting gnome-sell with alt+f2
-> debugexit
#0 g_type_check_instance_is_fundamentally_a (type_instance=type_instance@entry=0x5572a449f1e0,
fundamental_type=fundamental_type@entry=76) at ../../glib/gobject/gtype.c:4025
#1 0x00007f4f5d0f716e in g_param_spec_unref (pspec=0x5572a449f1e0) at ../../glib/gobject/gparam.c:230
#2 0x00007f4f5c3d58fe in std::unique_ptr<_GParamSpec, void (*)(_GParamSpec*)>::~unique_ptr (this=0x5572a4a31bb0,
__in_chrg=<optimized out>) at /usr/include/c++/8/bits/unique_ptr.h:347
#3 GjsAutoParam::~GjsAutoParam (this=0x5572a4a31bb0, __in_chrg=<optimized out>) at /media/M2/GNOME/gjs/gjs/jsapi-util.h:93
#4 js::HashMapEntry<JS::Heap<JSString*>, GjsAutoParam>::~HashMapEntry (this=0x5572a4a31ba8, __in_chrg=<optimized out>)
at /usr/include/mozjs-60/js/HashTable.h:732
#5 js::detail::HashTableEntry<js::HashMapEntry<JS::Heap<JSString*>, GjsAutoParam> >::destroyIfLive (this=0x5572a4a31ba0)
at /usr/include/mozjs-60/js/HashTable.h:819
#6 js::detail::HashTable<js::HashMapEntry<JS::Heap<JSString*>, GjsAutoParam>, js::HashMap<JS::Heap<JSString*>, GjsAutoParam, js::DefaultHasher<JSString*>, js::SystemAllocPolicy>::MapHashPolicy, js::SystemAllocPolicy>::destroyTable (alloc=...,
capacity=<optimized out>, oldTable=0x5572a4a31a00) at /usr/include/mozjs-60/js/HashTable.h:1253
#7 js::detail::HashTable<js::HashMapEntry<JS::Heap<JSString*>, GjsAutoParam>, js::HashMap<JS::Heap<JSString*>, GjsAutoParam, js::DefaultHasher<JSString*>, js::SystemAllocPolicy>::MapHashPolicy, js::SystemAllocPolicy>::~HashTable (this=0x5572a4ad4420,
__in_chrg=<optimized out>) at /usr/include/mozjs-60/js/HashTable.h:1324
#8 js::HashMap<JS::Heap<JSString*>, GjsAutoParam, js::DefaultHasher<JSString*>, js::SystemAllocPolicy>::~HashMap (
this=0x5572a4ad4420, __in_chrg=<optimized out>) at /usr/include/mozjs-60/js/HashTable.h:69
#9 JS::GCHashMap<JS::Heap<JSString*>, GjsAutoParam, js::DefaultHasher<JSString*>, js::SystemAllocPolicy, JS::DefaultMapSweepPolicy<JS::Heap<JSString*>, GjsAutoParam> >::~GCHashMap (this=0x5572a4ad4420, __in_chrg=<optimized out>)
at /usr/include/mozjs-60/js/GCHashTable.h:57
#10 ObjectPrototype::~ObjectPrototype (this=0x5572a4ad4400, __in_chrg=<optimized out>) at /media/M2/GNOME/gjs/gi/object.cpp:1764
#11 0x00007f4f5c3d6028 in ObjectBase::finalize (fop=<optimized out>, obj=0x7f4f35aa6e50) at /media/M2/GNOME/gjs/gi/object.h:114
#12 0x00007f4f594f2ab2 in js::Class::doFinalize (this=<optimized out>, obj=0x7f4f35aa6e50, fop=0x7ffd04942e90)
at ./debian/build/dist/include/js/Class.h:872
#13 JSObject::finalize (fop=0x7ffd04942e90, this=0x7f4f35aa6e50) at ./js/src/vm/JSObject-inl.h:108
#14 js::gc::Arena::finalize<JSObject> (thingSize=48, thingKind=js::gc::AllocKind::OBJECT2, fop=0x7ffd04942e90, this=0x7f4f35aa6000)
at ./js/src/gc/GC.cpp:590
#15 FinalizeTypedArenas<JSObject> (fop=0x7ffd04942e90, src=0x5572a49239c8, dest=..., thingKind=js::gc::AllocKind::OBJECT2,
budget=..., keepArenas=js::gc::ArenaLists::KEEP_ARENAS) at ./js/src/gc/GC.cpp:648
#16 0x00007f4f594f4a96 in FinalizeArenas (fop=0x7ffd04942e90, src=0x5572a49239c8, dest=..., thingKind=<optimized out>, budget=...,
keepArenas=js::gc::ArenaLists::KEEP_ARENAS) at ./js/src/gc/GC.cpp:682
#17 0x00007f4f594f5d34 in js::gc::ArenaLists::foregroundFinalize (this=0x5572a4923670, fop=<optimized out>,
thingKind=js::gc::AllocKind::OBJECT2, sliceBudget=..., sweepList=...) at ./js/src/gc/ArenaList.h:255
#18 0x00007f4f594f5ec8 in js::gc::GCRuntime::finalizeAllocKind (this=0x5572a4a018f8, fop=<optimized out>, budget=...,
zone=<optimized out>, kind=<optimized out>) at ./js/src/gc/GC.cpp:6124
#19 0x00007f4f594f7b34 in sweepaction::SweepActionCall<js::FreeOp*, js::SliceBudget&, JS::Zone*, js::gc::AllocKind>::run (
args#3=<optimized out>, args#2=0x5572a4923610, args#1=..., args#0=0x7ffd04942e90, gc=0x5572a4a018f8, this=<optimized out>)
at ./js/src/gc/GC.cpp:6259
#20 sweepaction::SweepActionForEach<ContainerIter<mozilla::EnumSet<js::gc::AllocKind> >, mozilla::EnumSet<js::gc::AllocKind>, js::gc::GCRuntime*, js::FreeOp*, js::SliceBudget&, JS::Zone*>::run (this=0x5572a48dead0, args#0=0x5572a4a018f8, args#1=0x7ffd04942e90,
args#2=..., args#3=0x5572a4923610) at ./js/src/gc/GC.cpp:6319
#21 0x00007f4f594d5727 in sweepaction::SweepActionSequence<js::gc::GCRuntime*, js::FreeOp*, js::SliceBudget&, JS::Zone*>::run (
this=0x5572a4811680, args#0=0x5572a4a018f8, args#1=0x7ffd04942e90, args#2=..., args#3=0x5572a4923610)
at ./debian/build/dist/include/mozilla/UniquePtr.h:326
#22 0x00007f4f594d560b in sweepaction::SweepActionForEach<js::gc::SweepGroupZonesIter, JSRuntime*, js::gc::GCRuntime*, js::FreeOp*, js::SliceBudget&>::run (this=0x5572a47800e0, args#0=0x5572a4a018f8, args#1=0x7ffd04942e90, args#2=...)
at ./js/src/gc/PrivateIterators-inl.h:113
#23 0x00007f4f594d5524 in sweepaction::SweepActionSequence<js::gc::GCRuntime*, js::FreeOp*, js::SliceBudget&>::run (
this=0x5572a4811740, args#0=0x5572a4a018f8, args#1=0x7ffd04942e90, args#2=...)
at ./debian/build/dist/include/mozilla/UniquePtr.h:326
#24 0x00007f4f594e18ba in sweepaction::SweepActionRepeatFor<js::gc::SweepGroupsIter, JSRuntime*, js::gc::GCRuntime*, js::FreeOp*, js::SliceBudget&>::run (this=0x5572a4784410, args#0=0x5572a4a018f8, args#1=0x7ffd04942e90, args#2=...)
at ./debian/build/dist/include/mozilla/UniquePtr.h:326
#25 0x00007f4f594e2443 in js::gc::GCRuntime::performSweepActions (this=this@entry=0x5572a4a018f8, budget=...)
at ./debian/build/dist/include/mozilla/UniquePtr.h:326
#26 0x00007f4f59502ce9 in js::gc::GCRuntime::incrementalCollectSlice (this=this@entry=0x5572a4a018f8, budget=...,
reason=reason@entry=JS::gcreason::DESTROY_RUNTIME, session=...) at ./js/src/gc/GC.cpp:7084
#27 0x00007f4f59503c88 in js::gc::GCRuntime::gcCycle (this=this@entry=0x5572a4a018f8,
nonincrementalByAPI=nonincrementalByAPI@entry=true, budget=..., reason=reason@entry=JS::gcreason::DESTROY_RUNTIME)
at ./js/src/gc/GC.cpp:7413
#28 0x00007f4f59504158 in js::gc::GCRuntime::collect (this=this@entry=0x5572a4a018f8,
nonincrementalByAPI=nonincrementalByAPI@entry=true, budget=..., reason=reason@entry=JS::gcreason::DESTROY_RUNTIME)
at ./js/src/gc/GC.cpp:7556
#29 0x00007f4f595042db in js::gc::GCRuntime::gc (this=this@entry=0x5572a4a018f8, gckind=gckind@entry=GC_NORMAL,
reason=reason@entry=JS::gcreason::DESTROY_RUNTIME) at ./debian/build/dist/include/js/SliceBudget.h:61
#30 0x00007f4f59343049 in JSRuntime::destroyRuntime (this=0x5572a4a01400) at ./js/src/vm/Runtime.cpp:316
#31 0x00007f4f592db35b in js::DestroyContext (cx=0x5572a475abd0) at ./js/src/vm/JSContext.h:305
#32 0x00007f4f591f02b5 in JS_DestroyContext (cx=<optimized out>) at ./js/src/jsapi.cpp:506
#33 0x00007f4f5c3e6039 in gjs_context_dispose (object=<optimized out>) at /media/M2/GNOME/gjs/gjs/context.cpp:424
#34 0x00007f4f5d0f0cb3 in g_object_unref (_object=0x5572a46b92a0) at ../../glib/gobject/gobject.c:3309
#35 0x00005572a3caa156 in main (argc=<optimized out>, argv=<optimized out>) at ../../gnome-shell/src/main.c:504