Looking glass crash
Affected version
Mutter master since commit 6885c377.
Bug summary
Since commit 6885c377, the RedBorderEffect
in gnome-shell's looking glass inspector crashes.
In particular it's the get_framebuffer()
call in this code:
vfunc_paint(paintContext) {
let framebuffer = paintContext.get_framebuffer();
let coglContext = framebuffer.get_context();
However it may very well be that this just happens to be the first function that returns a Cogl type.
Steps to reproduce
- Open looking glass
- Click the
missing-image
icon (meh, another bug) -
ProfitDoooooom
Relevant logs, screenshots, screencasts etc.
Stacktrace:
#0 0x00007f907c978a35 in raise () from /lib64/libc.so.6
#1 0x0000000000402db9 in dump_gjs_stack_on_signal_handler (signo=6) at ../../../../src/gnome-shell/src/main.c:392
#2 <signal handler called>
#3 0x00007f907c978a35 in raise () from /lib64/libc.so.6
#4 0x00007f907c961895 in abort () from /lib64/libc.so.6
#5 0x00007f907d71ed9c in g_assertion_message (domain=<optimized out>, file=<optimized out>, line=<optimized out>, func=0x7f907cef5e80 "FundamentalPrototype::FundamentalPrototype(GIObjectInfo*, GType)",
message=0x214f960 "assertion failed: (m_set_value_function)") at ../../../../src/glib/glib/gtestutils.c:2914
#6 0x00007f907d7790eb in g_assertion_message_expr (domain=domain@entry=0x7f907cef305e "Gjs", file=file@entry=0x7f907cef5ec8 "../../../../src/gjs/gi/fundamental.cpp", line=line@entry=263,
func=func@entry=0x7f907cef5e80 "FundamentalPrototype::FundamentalPrototype(GIObjectInfo*, GType)", expr=expr@entry=0x7f907cef5b83 "m_set_value_function") at ../../../../src/glib/glib/gtestutils.c:2940
#7 0x00007f907ce9a526 in FundamentalPrototype::FundamentalPrototype (this=0x24edbb0, info=0x2199d90, gtype=27032272) at ../../../../src/gjs/gi/fundamental.cpp:263
#8 0x00007f907ce9b8c4 in GIWrapperPrototype<FundamentalBase, FundamentalPrototype, FundamentalInstance, _GIBaseInfoStub>::create_class (cx=cx@entry=0x1a983a0, in_object=..., info=info@entry=0x2199d90, gtype=27032272, constructor=...,
prototype=prototype@entry=...) at /usr/include/c++/10/new:175
#9 0x00007f907ce9a908 in FundamentalPrototype::define_class (cx=cx@entry=0x1a983a0, in_object=in_object@entry=..., info=info@entry=0x2199d90, constructor=constructor@entry=...)
at /var/home/fmuellner/opt/gnome/include/mozjs-68/js/RootingAPI.h:1238
#10 0x00007f907ceb75e9 in gjs_define_info (context=context@entry=0x1a983a0, in_object=..., info=info@entry=0x2199d90, defined=defined@entry=0x7ffc0370ce97) at /var/home/fmuellner/opt/gnome/include/mozjs-68/js/RootingAPI.h:1238
#11 0x00007f907cea566c in ns_resolve (context=0x1a983a0, obj=..., id=..., resolved=0x7ffc0370cf78) at ../../../../src/gjs/gi/ns.cpp:109
#12 0x00007f907a265959 in js::CallResolveOp (cx=0x1a983a0, obj=..., id=..., propp=..., recursedp=<optimized out>) at /var/home/fmuellner/src/mozjs-68.4.2/js/src/vm/NativeObject-inl.h:741
#13 js::LookupOwnPropertyInline<(js::AllowGC)1> (cx=0x1a983a0, obj=..., id=..., propp=..., donep=<optimized out>) at /var/home/fmuellner/src/mozjs-68.4.2/js/src/vm/NativeObject-inl.h:816
#14 NativeGetPropertyInline<(js::AllowGC)1> (cx=0x1a983a0, obj=..., receiver=..., id=..., nameLookup=NotNameLookup, vp=...) at /var/home/fmuellner/src/mozjs-68.4.2/js/src/vm/NativeObject.cpp:2503
#15 js::NativeGetProperty (cx=0x1a983a0, obj=..., receiver=..., id=..., vp=...) at /var/home/fmuellner/src/mozjs-68.4.2/js/src/vm/NativeObject.cpp:2553
#16 0x00007f907a40d4d7 in js::GetProperty (cx=0x1a983a0, obj=..., receiver=..., id=..., vp=...) at /var/home/fmuellner/src/mozjs-68.4.2/js/src/vm/ObjectOperations-inl.h:117
#17 JS_ForwardGetPropertyTo (cx=0x1a983a0, obj=..., id=..., receiver=..., vp=...) at /var/home/fmuellner/src/mozjs-68.4.2/js/src/jsapi.cpp:2377
#18 JS_GetPropertyById (cx=0x1a983a0, obj=..., id=..., vp=...) at /var/home/fmuellner/src/mozjs-68.4.2/js/src/jsapi.cpp:2393
#19 JS_GetProperty (cx=cx@entry=0x1a983a0, obj=obj@entry=..., name=0x7f90433574d4 <error: Cannot access memory at address 0x7f90433574d4>, vp=vp@entry=...) at /var/home/fmuellner/src/mozjs-68.4.2/js/src/jsapi.cpp:2403
#20 0x00007f907ce9aa72 in gjs_lookup_fundamental_prototype (gtype=<optimized out>, info=<optimized out>, context=0x1a983a0) at /var/home/fmuellner/opt/gnome/include/mozjs-68/js/RootingAPI.h:1238
#21 gjs_lookup_fundamental_prototype_from_gtype (context=0x1a983a0, gtype=<optimized out>) at ../../../../src/gjs/gi/fundamental.cpp:381
#22 0x00007f907ce9b179 in FundamentalInstance::object_for_c_ptr (context=context@entry=0x1a983a0, gfundamental=<optimized out>) at ../../../../src/gjs/gi/fundamental.cpp:459
#23 0x00007f907ce921d2 in gjs_value_from_g_argument (context=context@entry=0x1a983a0, value_p=..., type_info=type_info@entry=0x7ffc0370d450, arg=arg@entry=0x7ffc0370d420, copy_structs=copy_structs@entry=true)
at ../../../../src/gjs/gi/arg.cpp:3012
#24 0x00007f907ce9f45c in gjs_invoke_c_function (context=0x1a983a0, function=0x24e4640, obj=..., args=..., js_rval=..., r_value=0x0) at /var/home/fmuellner/opt/gnome/include/mozjs-68/js/RootingAPI.h:672
#25 0x00007f907ce9f760 in function_call (context=0x1a983a0, js_argc=0, vp=0x3fe6a38) at /var/home/fmuellner/opt/gnome/include/mozjs-68/js/RootingAPI.h:1212
#26 0x00007f907a0b2dbc in CallJSNative (cx=0x1a983a0, native=0x7f907ce9f640 <function_call(JSContext*, unsigned int, JS::Value*)>, args=...) at /var/home/fmuellner/src/mozjs-68.4.2/js/src/vm/Interpreter.cpp:443
#27 js::InternalCallOrConstruct (cx=0x1a983a0, args=..., construct=<optimized out>) at /var/home/fmuellner/src/mozjs-68.4.2/js/src/vm/Interpreter.cpp:515
#28 0x00007f907a0aa3bf in js::CallFromStack (cx=0x1a983a0, args=...) at /var/home/fmuellner/src/mozjs-68.4.2/js/src/vm/Interpreter.cpp:594
#29 Interpret (cx=<optimized out>, state=...) at /var/home/fmuellner/src/mozjs-68.4.2/js/src/vm/Interpreter.cpp:3082
#30 0x00007f907a09e581 in js::RunScript (cx=0x1a983a0, state=...) at /var/home/fmuellner/src/mozjs-68.4.2/js/src/vm/Interpreter.cpp:423
#31 0x00007f907a0b2b1a in js::InternalCallOrConstruct (cx=0x1a983a0, args=..., construct=<optimized out>) at /var/home/fmuellner/src/mozjs-68.4.2/js/src/vm/Interpreter.cpp:563
#32 0x00007f907a0b2fc6 in js::Call (cx=0x2, fval=..., thisv=..., args=..., rval=...) at /var/home/fmuellner/src/mozjs-68.4.2/js/src/vm/Interpreter.cpp:606
#33 0x00007f907a40ede5 in JS_CallFunction (cx=cx@entry=0x1a983a0, obj=..., fun=..., args=..., rval=rval@entry=...) at /var/home/fmuellner/src/mozjs-68.4.2/js/src/jsapi.cpp:2629
#34 0x00007f907ce98740 in JS::Call (rval=..., args=..., fun=..., thisObj=..., cx=0x1a983a0) at /var/home/fmuellner/opt/gnome/include/mozjs-68/jsapi.h:1590
#35 gjs_closure_invoke (closure=0x240add0, this_obj=this_obj@entry=..., args=..., retval=retval@entry=..., return_exception=return_exception@entry=true) at ../../../../src/gjs/gi/closure.cpp:211
#36 0x00007f907ce9fdc5 in gjs_callback_closure (cif=<optimized out>, result=0x7ffc0370e420, ffi_args=0x7ffc0370e290, data=0x225a540) at /var/home/fmuellner/opt/gnome/include/mozjs-68/js/RootingAPI.h:1212
#37 0x00007f907bd258af in ffi_closure_unix64_inner () from /lib64/libffi.so.6
#38 0x00007f907bd25c58 in ffi_closure_unix64 () from /lib64/libffi.so.6
#39 0x00007f907cd7349e in clutter_actor_continue_paint (self=<optimized out>, paint_context=0x2143910) at ../../../../src/mutter/clutter/clutter/clutter-actor.c:4232
#40 0x00007f907cdc58cd in clutter_paint_node_paint (node=0x22a2b20, paint_context=0x2143910) at ../../../../src/mutter/clutter/clutter/clutter-paint-node.c:1027
#41 0x00007f907cd7acdf in clutter_actor_paint (self=self@entry=0x20c1480, paint_context=paint_context@entry=0x2143910) at ../../../../src/mutter/clutter/clutter/clutter-actor.c:4136
#42 0x00007f907cd7b70b in clutter_actor_real_paint (actor=0x2728460, paint_context=0x2143910) at ../../../../src/mutter/clutter/clutter/clutter-actor.c:3840
#43 0x00007f907c8e4dba in st_widget_paint (actor=0x2728460, paint_context=0x2143910) at ../../../../src/gnome-shell/src/st/st-widget.c:449
#44 0x00007f907cdc58cd in clutter_paint_node_paint (node=0x1e6fe30, paint_context=0x2143910) at ../../../../src/mutter/clutter/clutter/clutter-paint-node.c:1027
#45 0x00007f907cd7acdf in clutter_actor_paint (self=0x2728460, paint_context=paint_context@entry=0x2143910) at ../../../../src/mutter/clutter/clutter/clutter-actor.c:4136
#46 0x00007f907cdd74f4 in clutter_stage_paint (self=<optimized out>, paint_context=0x2143910) at ../../../../src/mutter/clutter/clutter/clutter-stage.c:987