Segmentation fault in `gjs_value_from_gi_argument()`
Using Debian sid/unstable with gnome-shell 44.9-1+b1, I saw the big fail whale.
Core was generated by `/usr/bin/gnome-shell'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0 0x00007f3a3a16ba75 in gjs_value_from_gi_argument (context=0x56200da9e1b0, value_p=..., type_info=<optimized out>, argument_type=GJS_ARGUMENT_ARGUMENT,
transfer=GI_TRANSFER_EVERYTHING, arg=0x7f3a1820ef90) at ./obj-x86_64-linux-gnu/../gi/arg.cpp:2664
Download failed: Invalid argument. Continuing without source file ./obj-x86_64-linux-gnu/./obj-x86_64-linux-gnu/../gi/arg.cpp.
2664 ./obj-x86_64-linux-gnu/../gi/arg.cpp: No such file or directory.
[Current thread is 1 (Thread 0x7f3a354a5e00 (LWP 1680))]
(gdb) bt
#0 0x00007f3a3a16ba75 in gjs_value_from_gi_argument(JSContext*, JS::MutableHandle<JS::Value>, _GIBaseInfoStub*, GjsArgumentType, GITransfer, _GIArgument*)
(context=0x56200da9e1b0, value_p=..., type_info=<optimized out>, argument_type=GJS_ARGUMENT_ARGUMENT, transfer=GI_TRANSFER_EVERYTHING, arg=0x7f3a1820ef90)
at ./obj-x86_64-linux-gnu/../gi/arg.cpp:2664
#1 0x00007f3a3a18d67d in Gjs::Function::invoke(JSContext*, JS::CallArgs const&, JS::Handle<JSObject*>, _GIArgument*)
(this=0x56201053e330, context=0x56200da9e1b0, args=..., this_obj=..., r_value=<optimized out>) at ./obj-x86_64-linux-gnu/../gi/function.cpp:1113
#2 0x00007f3a3a18de77 in Gjs::Function::call(JSContext*, unsigned int, JS::Value*) (context=0x56200da9e1b0, js_argc=<optimized out>, vp=<optimized out>)
at ./obj-x86_64-linux-gnu/../gi/function.cpp:1238
#3 0x00007f3a3717eb3e in CallJSNative(JSContext*, bool (*)(JSContext*, unsigned int, JS::Value*), js::CallReason, JS::CallArgs const&)
(args=..., reason=js::CallReason::Call, native=0x7f3a3a18dd90 <Gjs::Function::call(JSContext*, unsigned int, JS::Value*)>, cx=0x56200da9e1b0)
at ./js/src/vm/Interpreter.cpp:486
#4 js::InternalCallOrConstruct(JSContext*, JS::CallArgs const&, js::MaybeConstruct, js::CallReason)
(cx=0x56200da9e1b0, args=..., construct=<optimized out>, reason=js::CallReason::Call) at ./js/src/vm/Interpreter.cpp:566
#5 0x00007f3a37170880 in InternalCall (reason=<optimized out>, args=<optimized out>, cx=<optimized out>) at ./js/src/vm/Interpreter.cpp:647
#6 js::CallFromStack(JSContext*, JS::CallArgs const&, js::CallReason) (reason=<optimized out>, args=<optimized out>, cx=<optimized out>) at ./js/src/vm/Interpreter.cpp:652
#7 js::Interpret(JSContext*, js::RunState&) (cx=0x56200da9e1b0, state=...) at ./js/src/vm/Interpreter.cpp:3395
#8 0x00007f3a3717e863 in MaybeEnterInterpreterTrampoline (state=..., cx=0x56200da9e1b0) at ./js/src/vm/Interpreter.cpp:400
#9 js::RunScript(JSContext*, js::RunState&) (cx=cx@entry=0x56200da9e1b0, state=...) at ./js/src/vm/Interpreter.cpp:458
#10 0x00007f3a3717ec76 in js::InternalCallOrConstruct(JSContext*, JS::CallArgs const&, js::MaybeConstruct, js::CallReason)
(cx=cx@entry=0x56200da9e1b0, args=..., construct=construct@entry=js::NO_CONSTRUCT, reason=<optimized out>) at ./js/src/vm/Interpreter.cpp:612
#11 0x00007f3a3717f0d9 in InternalCall (reason=<optimized out>, args=..., cx=0x56200da9e1b0) at ./js/src/vm/Interpreter.cpp:647
#12 js::Call(JSContext*, JS::Handle<JS::Value>, JS::Handle<JS::Value>, js::AnyInvokeArgs const&, JS::MutableHandle<JS::Value>, js::CallReason)
(cx=cx@entry=0x56200da9e1b0, fval=..., fval@entry=..., thisv=..., thisv@entry=..., args=..., rval=..., reason=reason@entry=js::CallReason::Call)
at ./js/src/vm/Interpreter.cpp:679
#13 0x00007f3a37204c66 in js::BoundFunctionObject::call(JSContext*, unsigned int, JS::Value*) (cx=0x56200da9e1b0, argc=2, vp=<optimized out>)
at ./js/src/vm/BoundFunctionObject.cpp:72
#14 0x00007f3a3717eb3e in CallJSNative(JSContext*, bool (*)(JSContext*, unsigned int, JS::Value*), js::CallReason, JS::CallArgs const&)
(args=..., reason=js::CallReason::Call, native=0x7f3a372049c0 <js::BoundFunctionObject::call(JSContext*, unsigned int, JS::Value*)>, cx=0x56200da9e1b0)
at ./js/src/vm/Interpreter.cpp:486
#15 js::InternalCallOrConstruct(JSContext*, JS::CallArgs const&, js::MaybeConstruct, js::CallReason)
(cx=cx@entry=0x56200da9e1b0, args=..., construct=construct@entry=js::NO_CONSTRUCT, reason=js::CallReason::Call) at ./js/src/vm/Interpreter.cpp:566
#16 0x00007f3a3717f0d9 in InternalCall (reason=<optimized out>, args=..., cx=0x56200da9e1b0) at ./js/src/vm/Interpreter.cpp:647
#17 js::Call(JSContext*, JS::Handle<JS::Value>, JS::Handle<JS::Value>, js::AnyInvokeArgs const&, JS::MutableHandle<JS::Value>, js::CallReason)
(cx=cx@entry=0x56200da9e1b0, fval=..., fval@entry=..., thisv=..., thisv@entry=..., args=..., rval=rval@entry=..., reason=reason@entry=js::CallReason::Call)
at ./js/src/vm/Interpreter.cpp:679
#18 0x00007f3a37205765 in JS_CallFunctionValue(JSContext*, JS::Handle<JSObject*>, JS::Handle<JS::Value>, JS::HandleValueArray const&, JS::MutableHandle<JS::Value>)
(cx=0x56200da9e1b0, obj=obj@entry=..., fval=fval@entry=..., args=..., rval=rval@entry=...) at ./js/src/vm/CallAndConstruct.cpp:53
#19 0x00007f3a3a1683c5 in JS::Call (rval=..., args=..., fun=..., thisObj=..., cx=<optimized out>) at /usr/include/mozjs-115/js/CallAndConstruct.h:92
#20 Gjs::Closure::invoke(JS::Handle<JSObject*>, JS::HandleValueArray const&, JS::MutableHandle<JS::Value>)
(this=this@entry=0x56200f043210, this_obj=this_obj@entry=..., args=..., retval=retval@entry=...) at ./obj-x86_64-linux-gnu/../gi/closure.cpp:184
#21 0x00007f3a3a1bca8a in Gjs::Closure::marshal(_GValue*, unsigned int, _GValue const*, void*, void*)
(this=<optimized out>, return_value=0x0, n_param_values=<optimized out>, param_values=0x7ffd4ff92450, invocation_hint=<optimized out>, marshal_data=<optimized out>)
at /usr/include/mozjs-115/js/RootingAPI.h:614
#26 0x00007f3a3a8d5243 in <emit signal 'notify:key-focus' on instance 0x56200d89cb20 [MetaStage]>
(instance=instance@entry=0x56200d89cb20, signal_id=<optimized out>, detail=<optimized out>) at ../../../gobject/gsignal.c:3675
#22 0x00007f3a3a8ba540 in g_closure_invoke (closure=0x56200f043210, return_value=0x0, n_param_values=2, param_values=0x7ffd4ff92450, invocation_hint=0x7ffd4ff923a0)
at ../../../gobject/gclosure.c:832
#23 0x00007f3a3a8cdafc in signal_emit_unlocked_R
(node=node@entry=0x7ffd4ff92520, detail=detail@entry=664, instance=instance@entry=0x56200d89cb20, emission_return=emission_return@entry=0x0, instance_and_params=instance_and_params@entry=0x7ffd4ff92450) at ../../../gobject/gsignal.c:3980
#24 0x00007f3a3a8cf501 in signal_emit_valist_unlocked
(instance=instance@entry=0x56200d89cb20, signal_id=signal_id@entry=1, detail=detail@entry=664, var_args=var_args@entry=0x7ffd4ff92680) at ../../../gobject/gsignal.c:3612
#25 0x00007f3a3a8d5186 in g_signal_emit_valist (instance=0x56200d89cb20, signal_id=1, detail=664, var_args=0x7ffd4ff92680) at ../../../gobject/gsignal.c:3355
#27 0x00007f3a3a8be734 in g_object_dispatch_properties_changed (object=0x56200d89cb20 [MetaStage], n_pspecs=<optimized out>, pspecs=<optimized out>)
at ../../../gobject/gobject.c:1427
#28 0x00007f3a3a8c1790 in g_object_notify_by_spec_internal (pspec=<optimized out>, object=0x56200d89cb20 [MetaStage]) at ../../../gobject/gobject.c:1551
#29 g_object_notify_by_pspec (object=0x56200d89cb20 [MetaStage], pspec=<optimized out>) at ../../../gobject/gobject.c:1657
#30 0x00007f3a39ca9f35 in () at /lib/x86_64-linux-gnu/libmutter-12.so.0
#34 0x00007f3a3a8d544e in <emit signal 'activate or 0x7f3a39da5bd5 "activate"' on instance 0x56200d89cb20 [MetaStage]>
(instance=0x56200d89cb20, detailed_signal=0x7f3a39da5bd5 "activate") at ../../../gobject/gsignal.c:3716
#31 0x00007f3a3a8ba540 in g_closure_invoke (closure=0x56200d84bb60, return_value=0x0, n_param_values=1, param_values=0x7ffd4ff929a0, invocation_hint=0x7ffd4ff928f0)
at ../../../gobject/gclosure.c:832
#32 0x00007f3a3a8ce188 in signal_emit_unlocked_R
(node=node@entry=0x7ffd4ff92a50, detail=detail@entry=0, instance=instance@entry=0x56200d89cb20, emission_return=emission_return@entry=0x0, instance_and_params=instance_and_params@entry=0x7ffd4ff929a0) at ../../../gobject/gsignal.c:4020
#33 0x00007f3a3a8cf501 in signal_emit_valist_unlocked
(instance=instance@entry=0x56200d89cb20, signal_id=signal_id@entry=103, detail=<optimized out>, var_args=var_args@entry=0x7ffd4ff92b98) at ../../../gobject/gsignal.c:3612
#35 0x00007f3a39d09ce5 in () at /lib/x86_64-linux-gnu/libmutter-12.so.0
#36 0x00007f3a39cfbf22 in () at /lib/x86_64-linux-gnu/libmutter-12.so.0
#37 0x00007f3a39cfd971 in () at /lib/x86_64-linux-gnu/libmutter-12.so.0
#38 0x00007f3a39cfb1dd in () at /lib/x86_64-linux-gnu/libmutter-12.so.0
#39 0x00007f3a3a3241f4 in g_main_dispatch (context=context@entry=0x56200d5c0300) at ../../../glib/gmain.c:3476
#40 0x00007f3a3a327317 in g_main_context_dispatch_unlocked (context=0x56200d5c0300) at ../../../glib/gmain.c:4284
#41 g_main_context_iterate_unlocked (context=0x56200d5c0300, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../../../glib/gmain.c:4349
#42 0x00007f3a3a327c1f in g_main_loop_run (loop=0x56200f04ee70) at ../../../glib/gmain.c:4551
#43 0x00007f3a39cda059 in meta_context_run_main_loop () at /lib/x86_64-linux-gnu/libmutter-12.so.0
#44 0x0000561ff7bb59a3 in ()
#45 0x00007f3a39a456ca in __libc_start_call_main (main=main@entry=0x561ff7bb5570, argc=argc@entry=1, argv=argv@entry=0x7ffd4ff931f8)
at ../sysdeps/nptl/libc_start_call_main.h:58
#46 0x00007f3a39a45785 in __libc_start_main_impl
(main=0x561ff7bb5570, argc=1, argv=0x7ffd4ff931f8, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7ffd4ff931e8)
at ../csu/libc-start.c:360
#47 0x0000561ff7bb5c71 in ()