Hello, I am using Geany 1.37.1 (also tested latest git commit) on Manjaro Linux. When I press "Ctrl + Shift + V" without switching to terminal tab in the Message Window, Geany crashes with error message: ``` /usr/include/c++/11.1.0/bits/shared_ptr_base.h:976: std::__shared_ptr_access<_Tp, _Lp, <anonymous>, <anonymous> >::element_type& std::__shared_ptr_access<_Tp, _Lp, <anonymous>, <anonymous> >::operator*() const [with _Tp = vte::platform::Clipboard; __gnu_cxx::_Lock_policy _Lp = __gnu_cxx::_S_atomic; bool <anonymous> = false; bool <anonymous> = false; std::__shared_ptr_access<_Tp, _Lp, <anonymous>, <anonymous> >::element_type = vte::platform::Clipboard]: Assertion '_M_get() != nullptr' failed. 中止 (核心已傾印) ``` Crash does not happen if virtual terminal is disabled in the settings or switching to terminal tab first. Pressing "Ctrl + Shift + V" also does not crash after switching to terminal tab and then switching to another tab. Here is backtrace: ``` Thread 7 (Thread 0x7ffff18a0640 (LWP 49412) "pool-geany"): #0 0x00007ffff7b8118d in syscall () at /usr/lib/libc.so.6 #1 0x00007ffff6d3b06b in g_cond_wait_until () at /usr/lib/libglib-2.0.so.0 #2 0x00007ffff6cbc8b3 in () at /usr/lib/libglib-2.0.so.0 #3 0x00007ffff6cbca44 in g_async_queue_timeout_pop () at /usr/lib/libglib-2.0.so.0 #4 0x00007ffff6d1dd2a in () at /usr/lib/libglib-2.0.so.0 #5 0x00007ffff6d1b0c1 in () at /usr/lib/libglib-2.0.so.0 #6 0x00007ffff63eb259 in start_thread () at /usr/lib/libpthread.so.0 #7 0x00007ffff7b865e3 in clone () at /usr/lib/libc.so.6
Thread 3 (Thread 0x7ffff2abe640 (LWP 49408) "gdbus"): #0 0x00007ffff7b7bb2f in poll () at /usr/lib/libc.so.6 #1 0x00007ffff6d40ae8 in () at /usr/lib/libglib-2.0.so.0 #2 0x00007ffff6cec593 in g_main_loop_run () at /usr/lib/libglib-2.0.so.0 #3 0x00007ffff6f315b8 in () at /usr/lib/libgio-2.0.so.0 #4 0x00007ffff6d1b0c1 in () at /usr/lib/libglib-2.0.so.0 #5 0x00007ffff63eb259 in start_thread () at /usr/lib/libpthread.so.0 #6 0x00007ffff7b865e3 in clone () at /usr/lib/libc.so.6
Thread 2 (Thread 0x7ffff32bf640 (LWP 49407) "gmain"): #0 0x00007ffff7b7bb2f in poll () at /usr/lib/libc.so.6 #1 0x00007ffff6d40ae8 in () at /usr/lib/libglib-2.0.so.0 #2 0x00007ffff6cea781 in g_main_context_iteration () at /usr/lib/libglib-2.0.so.0 #3 0x00007ffff6cea7d2 in () at /usr/lib/libglib-2.0.so.0 #4 0x00007ffff6d1b0c1 in () at /usr/lib/libglib-2.0.so.0 #5 0x00007ffff63eb259 in start_thread () at /usr/lib/libpthread.so.0 #6 0x00007ffff7b865e3 in clone () at /usr/lib/libc.so.6
Thread 1 (Thread 0x7ffff5ad8940 (LWP 49403) "geany"): #0 0x00007ffff7ac4d22 in raise () at /usr/lib/libc.so.6 #1 0x00007ffff7aae862 in abort () at /usr/lib/libc.so.6 #2 0x00007fffe0962f2a in std::__replacement_assert(char const*, int, char const*, char const*) (__file=__file@entry=0x7fffe09aea80 "/usr/include/c++/11.1.0/bits/shared_ptr_base.h", __line=__line@entry=976, __function=__function@entry=0x7fffe09ae8e8 "std::__shared_ptr_access<_Tp, _Lp, <anonymous>, <anonymous> >::element_type& std::__shared_ptr_access<_Tp, _Lp, <anonymous>, <anonymous> >::operator*() const [with _Tp = vte::platform::Clipboard; __gn"..., __condition=__condition@entry=0x7fffe09ae8b4 "_M_get() != nullptr") at /usr/include/c++/11.1.0/x86_64-pc-linux-gnu/bits/c++config.h:504 #3 0x00007fffe09a2d60 in std::__shared_ptr_access<vte::platform::Clipboard, (__gnu_cxx::_Lock_policy)2, false, false>::operator*() const (this=0x555556013798) at /usr/include/c++/11.1.0/bits/shared_ptr_base.h:976 #4 std::__shared_ptr_access<vte::platform::Clipboard, (__gnu_cxx::_Lock_policy)2, false, false>::operator*() const (this=0x555556013798) at /usr/include/c++/11.1.0/bits/shared_ptr_base.h:974 #5 vte::platform::Widget::clipboard_get(vte::platform::ClipboardType) const (type=vte::platform::ClipboardType::CLIPBOARD, this=0x555556013740) at ../vte/src/widget.cc:228 #6 vte::platform::Widget::clipboard_request_text(vte::platform::ClipboardType) (this=0x555556013740, type=vte::platform::ClipboardType::CLIPBOARD) at ../vte/src/widget.cc:278 #7 0x00007ffff6e05096 in g_signal_emit_valist () at /usr/lib/libgobject-2.0.so.0 #8 0x00007ffff6e05210 in g_signal_emit () at /usr/lib/libgobject-2.0.so.0 #9 0x00007fffe098ccbe in vte_terminal_paste_clipboard(VteTerminal*) (terminal=0x555555bb5a90) at ../vte/src/widget.hh:252 __PRETTY_FUNCTION__ = "void vte_terminal_paste_clipboard(VteTerminal*)" #10 0x00007ffff6de7ddf in g_closure_invoke () at /usr/lib/libgobject-2.0.so.0 #11 0x00007ffff6e10fbd in () at /usr/lib/libgobject-2.0.so.0 #12 0x00007ffff6e04cad in g_signal_emit_valist () at /usr/lib/libgobject-2.0.so.0 #13 0x00007ffff6e05210 in g_signal_emit () at /usr/lib/libgobject-2.0.so.0 #14 0x00007ffff760c341 in () at /usr/lib/libgtk-3.so.0 #15 0x00007ffff6de7ddf in g_closure_invoke () at /usr/lib/libgobject-2.0.so.0 #16 0x00007ffff6e10fbd in () at /usr/lib/libgobject-2.0.so.0 #17 0x00007ffff6e042db in g_signal_emit_valist () at /usr/lib/libgobject-2.0.so.0 #18 0x00007ffff6e05210 in g_signal_emit () at /usr/lib/libgobject-2.0.so.0 #19 0x00007ffff73738fc in gtk_accel_group_activate () at /usr/lib/libgtk-3.so.0 #20 0x00007ffff7374cfe in gtk_accel_groups_activate () at /usr/lib/libgtk-3.so.0 #21 0x00007ffff76363af in gtk_window_activate_key () at /usr/lib/libgtk-3.so.0 #22 0x00007ffff7630643 in () at /usr/lib/libgtk-3.so.0 #23 0x00007ffff7362f5b in () at /usr/lib/libgtk-3.so.0 #24 0x00007ffff6de7ddf in g_closure_invoke () at /usr/lib/libgobject-2.0.so.0 #25 0x00007ffff6e109cb in () at /usr/lib/libgobject-2.0.so.0 #26 0x00007ffff6e042db in g_signal_emit_valist () at /usr/lib/libgobject-2.0.so.0 #27 0x00007ffff6e05210 in g_signal_emit () at /usr/lib/libgobject-2.0.so.0 #28 0x00007ffff7622a35 in () at /usr/lib/libgtk-3.so.0 #29 0x00007ffff74be862 in () at /usr/lib/libgtk-3.so.0 #30 0x00007ffff74bfaed in gtk_main_do_event () at /usr/lib/libgtk-3.so.0 #31 0x00007ffff721ca03 in () at /usr/lib/libgdk-3.so.0 #32 0x00007ffff726ca04 in () at /usr/lib/libgdk-3.so.0 #33 0x00007ffff6ced02c in g_main_context_dispatch () at /usr/lib/libglib-2.0.so.0 #34 0x00007ffff6d40b59 in () at /usr/lib/libglib-2.0.so.0 #35 0x00007ffff6cec593 in g_main_loop_run () at /usr/lib/libglib-2.0.so.0 #36 0x00007ffff74b561f in gtk_main () at /usr/lib/libgtk-3.so.0 #37 0x00007ffff7cd8a18 in main_lib (argc=<optimized out>, argv=<optimized out>) at libmain.c:1294 doc = 0x55555623ce40 config_dir_result = <optimized out> locale = <optimized out> utf8_configdir = <optimized out> os_info = <optimized out> #38 0x00007ffff7aafb25 in __libc_start_main () at /usr/lib/libc.so.6 #39 0x000055555555505e in _start () ```
AFAICT Geany does not bind ctrl+shift+V to anything.
Looking at the traceback above (the "geany" one, the other threads are GTK/Glib internal) there is no Geany code in the traceback except the initial call to `gtk_main()` so its nothing Geany does, must be something VTE binds in GTK itself. This is probably supported by the `gtk_accel_groups_activate()` calls in the traceback.
Whilst ctrl+shift+v does always paste in the VTE here, irrespective of the widget with focus, it doesn't crash.
Not sure what else to say except, "don't do that" and bind ctrl+shift+v to something innocuous in Geany so it hopefully will hide the crashy VTE accelerator and you won't do it accidentally.
Otherwise need a GTK/VTExpert :-)
Updated backtrace: ``` Thread 100 (Thread 0x7fffcbca9640 (LWP 70138) "pool-geany"): #0 0x00007ffff7b8118d in syscall () at /usr/lib/libc.so.6 #1 0x00007ffff6d2baaf in g_cond_wait_until (end_time=<optimized out>, mutex=0x5555555d50e0, cond=0x5555555d50e8) at ../glib/glib/gthread-posix.c:1622 span = {tv_sec = 14, tv_nsec = 999995079} success = <optimized out> now = {tv_sec = 4552, tv_nsec = 541135921} sampled = 0 res = <optimized out> #2 g_cond_wait_until (cond=0x5555555d50e8, mutex=0x5555555d50e0, end_time=<optimized out>) at ../glib/glib/gthread-posix.c:1595 #3 0x00007ffff6caba13 in g_async_queue_pop_intern_unlocked (queue=queue@entry=0x5555555d50e0, wait=wait@entry=1, end_time=end_time@entry=4567541131) at ../glib/glib/gasyncqueue.c:422 retval = <optimized out> __func__ = "g_async_queue_pop_intern_unlocked" #4 0x00007ffff6cabbc8 in g_async_queue_timeout_pop (queue=0x5555555d50e0, timeout=<optimized out>) at ../glib/glib/gasyncqueue.c:545 end_time = 4567541131 retval = <optimized out> __func__ = "g_async_queue_timeout_pop" #5 0x00007ffff6d0e3da in g_thread_pool_wait_for_new_pool () at ../glib/glib/gthreadpool.c:183 pool = <optimized out> local_max_idle_time = 15000 local_wakeup_thread_serial = <optimized out> last_wakeup_thread_serial = 0 have_relayed_thread_marker = <optimized out> free_pool = <optimized out> task = <optimized out> pool = <optimized out> #6 g_thread_pool_thread_proxy (data=<optimized out>) at ../glib/glib/gthreadpool.c:411 free_pool = <optimized out> task = <optimized out> pool = <optimized out> #7 0x00007ffff6d0b795 in g_thread_proxy (data=0x555555ec2000) at ../glib/glib/gthread.c:826 thread = 0x555555ec2000 __func__ = "g_thread_proxy" #8 0x00007ffff63da259 in start_thread () at /usr/lib/libpthread.so.0 #9 0x00007ffff7b865e3 in clone () at /usr/lib/libc.so.6
Thread 3 (Thread 0x7ffff2aad640 (LWP 70041) "gdbus"): #0 0x00007ffff7b7bb2f in poll () at /usr/lib/libc.so.6 #1 0x00007ffff6d31809 in g_main_context_poll (priority=<optimized out>, n_fds=2, fds=0x5555556311f0, timeout=<optimized out>, context=0x55555562f7e0) at ../glib/glib/gmain.c:4434 ret = <optimized out> errsv = <optimized out> poll_func = 0x7ffff6ce2880 <g_poll> max_priority = 2147483647 timeout = -1 some_ready = <optimized out> nfds = 2 allocated_nfds = 2 fds = 0x5555556311f0 #2 g_main_context_iterate.constprop.0 (context=0x55555562f7e0, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/glib/gmain.c:4126 max_priority = 2147483647 timeout = -1 some_ready = <optimized out> nfds = 2 allocated_nfds = 2 fds = 0x5555556311f0 #3 0x00007ffff6cdc0e3 in g_main_loop_run (loop=0x55555562f8d0) at ../glib/glib/gmain.c:4329 __func__ = "g_main_loop_run" #4 0x00007ffff6f2622c in gdbus_shared_thread_func (user_data=0x55555562f7b0) at ../glib/gio/gdbusprivate.c:280 data = 0x55555562f7b0 #5 0x00007ffff6d0b795 in g_thread_proxy (data=0x555555627980) at ../glib/glib/gthread.c:826 thread = 0x555555627980 __func__ = "g_thread_proxy" #6 0x00007ffff63da259 in start_thread () at /usr/lib/libpthread.so.0 #7 0x00007ffff7b865e3 in clone () at /usr/lib/libc.so.6
Thread 2 (Thread 0x7ffff32ae640 (LWP 70040) "gmain"): #0 0x00007ffff7b7bb2f in poll () at /usr/lib/libc.so.6 #1 0x00007ffff6d31809 in g_main_context_poll (priority=<optimized out>, n_fds=2, fds=0x55555561c7e0, timeout=<optimized out>, context=0x55555561dc20) at ../glib/glib/gmain.c:4434 ret = <optimized out> errsv = <optimized out> poll_func = 0x7ffff6ce2880 <g_poll> max_priority = 2147483647 timeout = -1 some_ready = <optimized out> nfds = 2 allocated_nfds = 2 fds = 0x55555561c7e0 #2 g_main_context_iterate.constprop.0 (context=context@entry=0x55555561dc20, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/glib/gmain.c:4126 max_priority = 2147483647 timeout = -1 some_ready = <optimized out> nfds = 2 allocated_nfds = 2 fds = 0x55555561c7e0 #3 0x00007ffff6cda245 in g_main_context_iteration (context=0x55555561dc20, may_block=may_block@entry=1) at ../glib/glib/gmain.c:4196 retval = <optimized out> #4 0x00007ffff6cda292 in glib_worker_main (data=<optimized out>) at ../glib/glib/gmain.c:6089 #5 0x00007ffff6d0b795 in g_thread_proxy (data=0x55555561fe40) at ../glib/glib/gthread.c:826 thread = 0x55555561fe40 __func__ = "g_thread_proxy" #6 0x00007ffff63da259 in start_thread () at /usr/lib/libpthread.so.0 #7 0x00007ffff7b865e3 in clone () at /usr/lib/libc.so.6
Thread 1 (Thread 0x7ffff5ac7940 (LWP 70036) "geany"): #0 0x00007ffff7ac4d22 in raise () at /usr/lib/libc.so.6 #1 0x00007ffff7aae862 in abort () at /usr/lib/libc.so.6 #2 0x00007fffe115df2a in std::__replacement_assert(char const*, int, char const*, char const*) (__file=__file@entry=0x7fffe11a9a80 "/usr/include/c++/11.1.0/bits/shared_ptr_base.h", __line=__line@entry=976, __function=__function@entry=0x7fffe11a98e8 "std::__shared_ptr_access<_Tp, _Lp, <anonymous>, <anonymous> >::element_type& std::__shared_ptr_access<_Tp, _Lp, <anonymous>, <anonymous> >::operator*() const [with _Tp = vte::platform::Clipboard; __gn"..., __condition=__condition@entry=0x7fffe11a98b4 "_M_get() != nullptr") at /usr/include/c++/11.1.0/x86_64-pc-linux-gnu/bits/c++config.h:504 #3 0x00007fffe119dda0 in std::__shared_ptr_access<vte::platform::Clipboard, (__gnu_cxx::_Lock_policy)2, false, false>::operator*() const (this=0x55555601f798) at /usr/include/c++/11.1.0/bits/shared_ptr_base.h:976 #4 std::__shared_ptr_access<vte::platform::Clipboard, (__gnu_cxx::_Lock_policy)2, false, false>::operator*() const (this=0x55555601f798) at /usr/include/c++/11.1.0/bits/shared_ptr_base.h:974 #5 vte::platform::Widget::clipboard_get(vte::platform::ClipboardType) const (type=vte::platform::ClipboardType::CLIPBOARD, this=0x55555601f740) at ../vte/src/widget.cc:228 #6 vte::platform::Widget::clipboard_request_text(vte::platform::ClipboardType) (this=0x55555601f740, type=vte::platform::ClipboardType::CLIPBOARD) at ../vte/src/widget.cc:278 #7 0x00007ffff6df6a36 in _g_closure_invoke_va (param_types=0x0, n_params=<optimized out>, args=0x7fffffffd270, instance=0x555555bb4a90, return_value=0x0, closure=0x5555561aa230) at ../glib/gobject/gclosure.c:873 marshal = <optimized out> marshal_data = <optimized out> in_marshal = 0 real_closure = 0x5555561aa210 return_accu = <optimized out> accu = {g_type = 0x0, data = {{v_int = 0, v_uint = 0, v_long = 0, v_ulong = 0, v_int64 = 0, v_uint64 = 0, v_float = 0, v_double = 0, v_pointer = 0x0}, {v_int = 0, v_uint = 0, v_long = 0, v_ulong = 0, v_int64 = 0, v_uint64 = 0, v_float = 0, v_double = 0, v_pointer = 0x0}}} accumulator = 0x0 emission = {next = 0x7fffffffd470, instance = 0x555555bb4a90, ihint = {signal_id = 460, detail = 0, run_type = (G_SIGNAL_RUN_LAST | G_SIGNAL_ACCUMULATOR_FIRST_RUN)}, state = EMISSION_RUN, chain_type = 0x5555561a98d0 [VteTerminal/GtkWidget/GInitiallyUnowned]} signal_id = 460 instance_type = <optimized out> emission_return = {g_type = 0x0, data = {{v_int = 0, v_uint = 0, v_long = 0, v_ulong = 0, v_int64 = 0, v_uint64 = 0, v_float = 0, v_double = 0, v_pointer = 0x0}, {v_int = 0, v_uint = 0, v_long = 0, v_ulong = 0, v_int64 = 0, v_uint64 = 0, v_float = 0, v_double = 0, v_pointer = 0x0}}} rtype = 0x4 [void] static_scope = 0 fastpath_handler = <optimized out> closure = <optimized out> run_type = <optimized out> hlist = <optimized out> l = <optimized out> fastpath = 1 instance_and_params = <optimized out> signal_return_type = <optimized out> param_values = <optimized out> node = 0x5555561aa260 i = <optimized out> n_params = <optimized out> __func__ = "g_signal_emit_valist" #8 g_signal_emit_valist (instance=0x555555bb4a90, signal_id=<optimized out>, detail=<optimized out>, var_args=var_args@entry=0x7fffffffd270) at ../glib/gobject/gsignal.c:3406 return_accu = <optimized out> accu = {g_type = 0x0, data = {{v_int = 0, v_uint = 0, v_long = 0, v_ulong = 0, v_int64 = 0, v_uint64 = 0, v_float = 0, v_double = 0, v_pointer = 0x0}, {v_int = 0, v_uint = 0, v_long = 0, v_ulong = 0, v_int64 = 0, v_uint64 = 0, v_float = 0, v_double = 0, v_pointer = 0x0}}} accumulator = 0x0 emission = {next = 0x7fffffffd470, instance = 0x555555bb4a90, ihint = {signal_id = 460, detail = 0, run_type = (G_SIGNAL_RUN_LAST | G_SIGNAL_ACCUMULATOR_FIRST_RUN)}, state = EMISSION_RUN, chain_type = 0x5555561a98d0 [VteTerminal/GtkWidget/GInitiallyUnowned]} signal_id = 460 instance_type = <optimized out> emission_return = {g_type = 0x0, data = {{v_int = 0, v_uint = 0, v_long = 0, v_ulong = 0, v_int64 = 0, v_uint64 = 0, v_float = 0, v_double = 0, v_pointer = 0x0}, {v_int = 0, v_uint = 0, v_long = 0, v_ulong = 0, v_int64 = 0, v_uint64 = 0, v_float = 0, v_double = 0, v_pointer = 0x0}}} rtype = 0x4 [void] static_scope = 0 fastpath_handler = <optimized out> closure = <optimized out> run_type = <optimized out> hlist = <optimized out> l = <optimized out> fastpath = 1 instance_and_params = <optimized out> signal_return_type = <optimized out> param_values = <optimized out> node = 0x5555561aa260 i = <optimized out> n_params = <optimized out> __func__ = "g_signal_emit_valist" #9 0x00007ffff6df6b8c in g_signal_emit (instance=<optimized out>, signal_id=<optimized out>, detail=<optimized out>) at ../glib/gobject/gsignal.c:3553 var_args = {{gp_offset = 24, fp_offset = 48, overflow_arg_area = 0x7fffffffd350, reg_save_area = 0x7fffffffd290}} #10 0x00007fffe1187cfe in vte_terminal_paste_clipboard(VteTerminal*) (terminal=0x555555bb4a90 [VteTerminal]) at ../vte/src/widget.hh:252 __PRETTY_FUNCTION__ = "void vte_terminal_paste_clipboard(VteTerminal*)" #14 0x00007ffff6df6b8c in <emit signal ??? on instance 0x55555617f560 [GtkImageMenuItem]> (instance=<optimized out>, signal_id=<optimized out>, detail=detail@entry=0) at ../glib/gobject/gsignal.c:3553 var_args = {{gp_offset = 24, fp_offset = 48, overflow_arg_area = 0x7fffffffd790, reg_save_area = 0x7fffffffd6d0}} #11 0x00007ffff6dd8ed8 in g_closure_invoke (closure=0x555556216c70, return_value=0x0, n_param_values=1, param_values=0x7fffffffd500, invocation_hint=0x7fffffffd480) at ../glib/gobject/gclosure.c:810 marshal = 0x7ffff6ddaf80 <g_cclosure_marshal_VOID__VOID> marshal_data = 0x0 in_marshal = 0 real_closure = 0x555556216c50 __func__ = "g_closure_invoke" #12 0x00007ffff6df4fcc in signal_emit_unlocked_R (node=node@entry=0x55555567c4a0, detail=detail@entry=0, instance=instance@entry=0x55555617f560, emission_return=emission_return@entry=0x0, instance_and_params=instance_and_params@entry=0x7fffffffd500) at ../glib/gobject/gsignal.c:3741 tmp = <optimized out> handler = 0x7fffffffd480 accumulator = 0x0 emission = {next = 0x7fffffffd8b0, instance = 0x55555617f560, ihint = {signal_id = 157, detail = 0, run_type = (G_SIGNAL_RUN_FIRST | G_SIGNAL_ACCUMULATOR_FIRST_RUN)}, state = EMISSION_RUN, chain_type = 0x4 [void]} hlist = <optimized out> handler_list = 0x555556214580 return_accu = 0x0 accu = {g_type = 0x0, data = {{v_int = 0, v_uint = 0, v_long = 0, v_ulong = 0, v_int64 = 0, v_uint64 = 0, v_float = 0, v_double = 0, v_pointer = 0x0}, {v_int = 0, v_uint = 0, v_long = 0, v_ulong = 0, v_int64 = 0, v_uint64 = 0, v_float = 0, v_double = 0, v_pointer = 0x0}}} signal_id = 157 max_sequential_handler_number = 10418 return_value_altered = 1 #13 0x00007ffff6df6962 in g_signal_emit_valist (instance=<optimized out>, signal_id=<optimized out>, detail=<optimized out>, var_args=var_args@entry=0x7fffffffd6b0) at ../glib/gobject/gsignal.c:3497 instance_and_params = 0x7fffffffd500 signal_return_type = <optimized out> param_values = <optimized out> node = <optimized out> i = <optimized out> n_params = <optimized out> __func__ = "g_signal_emit_valist" #15 0x00007ffff76098e1 in closure_accel_activate (closure=0x555556216a20, return_value=0x7fffffffd8e0, n_param_values=<optimized out>, param_values=<optimized out>, invocation_hint=<optimized out>, marshal_data=<optimized out>) at ../gtk/gtk/gtkwidget.c:6616 aclosure = 0x555556216a20 can_activate = 1 #19 0x00007ffff6df6b8c in <emit signal accel-activate:<Primary><Shift>v on instance 0x555556214160 [GtkAccelGroup]> (instance=instance@entry=0x555556214160, signal_id=<optimized out>, detail=detail@entry=3043) at ../glib/gobject/gsignal.c:3553 var_args = {{gp_offset = 48, fp_offset = 48, overflow_arg_area = 0x7fffffffdc20, reg_save_area = 0x7fffffffdb60}} #16 0x00007ffff6dd8ed8 in g_closure_invoke (closure=0x555556216a20, return_value=0x7fffffffd8e0, n_param_values=4, param_values=0x7fffffffd940, invocation_hint=0x7fffffffd8c0) at ../glib/gobject/gclosure.c:810 marshal = 0x7ffff76098a0 <closure_accel_activate> marshal_data = 0x0 in_marshal = 0 real_closure = 0x555556216a00 __func__ = "g_closure_invoke" #17 0x00007ffff6df4fcc in signal_emit_unlocked_R (node=node@entry=0x5555556ce850, detail=detail@entry=3043, instance=instance@entry=0x555556214160, emission_return=emission_return@entry=0x7fffffffda90, instance_and_params=instance_and_params@entry=0x7fffffffd940) at ../glib/gobject/gsignal.c:3741 tmp = <optimized out> handler = 0x7fffffffd8c0 accumulator = 0x5555556ce8c0 emission = {next = 0x7fffffffdec0, instance = 0x555556214160, ihint = {signal_id = 253, detail = 3043, run_type = (G_SIGNAL_RUN_FIRST | G_SIGNAL_ACCUMULATOR_FIRST_RUN)}, state = EMISSION_RUN, chain_type = 0x4 [void]} hlist = <optimized out> handler_list = 0x5555562142c0 return_accu = 0x7fffffffd8e0 accu = {g_type = 0x14 [gboolean], data = {{v_int = 0, v_uint = 0, v_long = 0, v_ulong = 0, v_int64 = 0, v_uint64 = 0, v_float = 0, v_double = 0, v_pointer = 0x0}, {v_int = 0, v_uint = 0, v_long = 0, v_ulong = 0, v_int64 = 0, v_uint64 = 0, v_float = 0, v_double = 0, v_pointer = 0x0}}} signal_id = 253 max_sequential_handler_number = 10418 return_value_altered = 0 #18 0x00007ffff6df637d in g_signal_emit_valist (instance=<optimized out>, signal_id=<optimized out>, detail=<optimized out>, var_args=var_args@entry=0x7fffffffdb40) at ../glib/gobject/gsignal.c:3507 return_value = {g_type = 0x14 [gboolean], data = {{v_int = 0, v_uint = 0, v_long = 0, v_ulong = 0, v_int64 = 0, v_uint64 = 0, v_float = 0, v_double = 0, v_pointer = 0x0}, {v_int = 0, v_uint = 0, v_long = 0, v_ulong = 0, v_int64 = 0, v_uint64 = 0, v_float = 0, v_double = 0, v_pointer = 0x0}}} error = 0x0 rtype = 0x14 [gboolean] static_scope = 0 instance_and_params = 0x7fffffffd940 signal_return_type = <optimized out> param_values = <optimized out> node = <optimized out> i = <optimized out> n_params = <optimized out> __func__ = "g_signal_emit_valist" #20 0x00007ffff736ada0 in gtk_accel_group_activate (accel_group=0x555556214160 [GtkAccelGroup], accel_quark=accel_quark@entry=3043, acceleratable=acceleratable@entry=0x555555bc2520 [GtkWindow], accel_key=accel_key@entry=118, accel_mods=accel_mods@entry=5) at ../gtk/gtk/gtkaccelgroup.c:910 was_handled = 0 __func__ = "gtk_accel_group_activate" #21 0x00007ffff736c1ae in gtk_accel_groups_activate (accel_mods=5, accel_key=118, object=0x555555bc2520 [GtkWindow]) at ../gtk/gtk/gtkaccelgroup.c:948 accel_name = 0x5555567f68e0 "\246\237\066" accel_quark = 3043 slist = 0x555555d64370 = {0x555556214160, 0x555556182060, 0x5555560bc560, 0x55555573f920} __func__ = "gtk_accel_groups_activate" #22 gtk_accel_groups_activate (object=0x555555bc2520 [GtkWindow], accel_key=118, accel_mods=5) at ../gtk/gtk/gtkaccelgroup.c:931 __func__ = "gtk_accel_groups_activate" #23 0x00007ffff762eeb7 in gtk_window_activate_key (window=window@entry=0x555555bc2520 [GtkWindow], event=event@entry=0x555555da5480) at ../gtk/gtk/gtkwindow.c:12057 key_hash = <optimized out> found_entry = 0x555555f17950 enable_accels = 1 enable_mnemonics = 1 __func__ = "gtk_window_activate_key" #24 0x00007ffff762f4c7 in gtk_window_key_press_event (widget=0x555555bc2520 [GtkWindow], event=0x555555da5480) at ../gtk/gtk/gtkwindow.c:8252 window = 0x555555bc2520 [GtkWindow] handled = 0 #29 0x00007ffff6df6b8c in <emit signal ??? on instance 0x555555bc2520 [GtkWindow]> (instance=instance@entry=0x555555bc2520, signal_id=<optimized out>, detail=detail@entry=0) at ../glib/gobject/gsignal.c:3553 var_args = {{gp_offset = 32, fp_offset = 48, overflow_arg_area = 0x7fffffffe200, reg_save_area = 0x7fffffffe140}} #25 0x00007ffff7359f5b in _gtk_marshal_BOOLEAN__BOXED (closure=0x5555556454e0, return_value=0x7fffffffdef0, n_param_values=<optimized out>, param_values=0x7fffffffdf60, invocation_hint=<optimized out>, marshal_data=<optimized out>) at gtk/gtkmarshalers.c:84 cc = 0x5555556454e0 data1 = 0x555555bc2520 data2 = 0x55555563a450 callback = 0x7ffff762f4b0 <gtk_window_key_press_event> v_return = <optimized out> __func__ = "_gtk_marshal_BOOLEAN__BOXED" #26 0x00007ffff6dd8ed8 in g_closure_invoke (closure=0x5555556454e0, return_value=0x7fffffffdef0, n_param_values=2, param_values=0x7fffffffdf60, invocation_hint=0x7fffffffded0) at ../glib/gobject/gclosure.c:810 marshal = 0x7ffff6ddaf10 <g_type_class_meta_marshal> marshal_data = 0x1b0 in_marshal = 0 real_closure = 0x5555556454c0 __func__ = "g_closure_invoke" #27 0x00007ffff6df4974 in signal_emit_unlocked_R (node=node@entry=0x555555645530, detail=detail@entry=0, instance=instance@entry=0x555555bc2520, emission_return=emission_return@entry=0x7fffffffe070, instance_and_params=instance_and_params@entry=0x7fffffffdf60) at ../glib/gobject/gsignal.c:3780 accumulator = 0x555555645870 emission = {next = 0x0, instance = 0x555555bc2520, ihint = {signal_id = 87, detail = 0, run_type = G_SIGNAL_RUN_LAST}, state = EMISSION_RUN, chain_type = 0x5555556f1d10 [GtkWindow/GtkBin/GtkContainer/GtkWidget/GInitiallyUnowned]} hlist = <optimized out> handler_list = <optimized out> return_accu = 0x7fffffffdef0 accu = {g_type = 0x14 [gboolean], data = {{v_int = 0, v_uint = 0, v_long = 0, v_ulong = 0, v_int64 = 0, v_uint64 = 0, v_float = 0, v_double = 0, v_pointer = 0x0}, {v_int = 0, v_uint = 0, v_long = 0, v_ulong = 0, v_int64 = 0, v_uint64 = 0, v_float = 0, v_double = 0, v_pointer = 0x0}}} signal_id = 87 max_sequential_handler_number = 10418 return_value_altered = 1 #28 0x00007ffff6df637d in g_signal_emit_valist (instance=<optimized out>, signal_id=<optimized out>, detail=<optimized out>, var_args=var_args@entry=0x7fffffffe120) at ../glib/gobject/gsignal.c:3507 return_value = {g_type = 0x14 [gboolean], data = {{v_int = 0, v_uint = 0, v_long = 0, v_ulong = 0, v_int64 = 0, v_uint64 = 0, v_float = 0, v_double = 0, v_pointer = 0x0}, {v_int = 0, v_uint = 0, v_long = 0, v_ulong = 0, v_int64 = 0, v_uint64 = 0, v_float = 0, v_double = 0, v_pointer = 0x0}}} error = 0x0 rtype = 0x14 [gboolean] static_scope = 0 instance_and_params = 0x7fffffffdf60 signal_return_type = <optimized out> param_values = <optimized out> node = <optimized out> i = <optimized out> n_params = <optimized out> __func__ = "g_signal_emit_valist" #30 0x00007ffff761d7b5 in gtk_widget_event_internal.part.0.lto_priv.0 (widget=0x555555bc2520 [GtkWindow], event=0x555555da5480) at ../gtk/gtk/gtkwidget.c:7808 signal_num = <optimized out> return_val = <optimized out> handled = 0 #31 0x00007ffff74b73b4 in propagate_event (widget=widget@entry=0x555555bc2520 [GtkWindow], event=event@entry=0x555555da5480, captured=captured@entry=0, topmost=topmost@entry=0x0) at ../gtk/gtk/gtkmain.c:2681 window = 0x555555bc2520 [GtkWindow] handled_event = <optimized out> #32 0x00007ffff74b7425 in gtk_propagate_event (widget=widget@entry=0x555555bc2520 [GtkWindow], event=event@entry=0x555555da5480) at ../gtk/gtk/gtkmain.c:2725 __func__ = "gtk_propagate_event" #33 0x00007ffff74b8223 in gtk_main_do_event (event=<optimized out>) at ../gtk/gtk/gtkmain.c:1921 grab_widget = 0x555555bc2520 [GtkWindow] window_group = 0x5555567134b0 [GtkWindowGroup] rewritten_event = <optimized out> device = <optimized out> tmp_list = <optimized out> event_widget = <optimized out> topmost_widget = <optimized out> __func__ = "gtk_main_do_event" #34 gtk_main_do_event (event=<optimized out>) at ../gtk/gtk/gtkmain.c:1691 __func__ = "gtk_main_do_event" #35 0x00007ffff7212bc3 in _gdk_event_emit (event=0x555555da5480) at ../gtk/gdk/gdkevents.c:73 #36 _gdk_event_emit (event=0x555555da5480) at ../gtk/gdk/gdkevents.c:67 #37 0x00007ffff7263c38 in gdk_event_source_dispatch.lto_priv () at ../gtk/gdk/x11/gdkgeometry-x11.c:47 #38 0x00007ffff6cdcb6c in g_main_dispatch (context=0x5555556065f0) at ../glib/glib/gmain.c:3337 dispatch = 0x7ffff7263c10 <gdk_event_source_dispatch.lto_priv> prev_source = 0x0 begin_time_nsec = 0 was_in_call = 0 user_data = 0x0 callback = 0x0 cb_funcs = <optimized out> cb_data = <optimized out> need_destroy = <optimized out> source = 0x555555606570 current = 0x55555562feb0 i = 0 #39 g_main_context_dispatch (context=0x5555556065f0) at ../glib/glib/gmain.c:4055 #40 0x00007ffff6d31879 in g_main_context_iterate.constprop.0 (context=0x5555556065f0, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/glib/gmain.c:4131 max_priority = 0 timeout = 0 some_ready = 1 nfds = <optimized out> allocated_nfds = 5 fds = 0x555555bdb940 #41 0x00007ffff6cdc0e3 in g_main_loop_run (loop=0x5555564b3280) at ../glib/glib/gmain.c:4329 __func__ = "g_main_loop_run" #42 0x00007ffff74adf5f in gtk_main () at ../gtk/gtk/gtkmain.c:1329 loop = 0x5555564b3280 #43 0x00007ffff7cd8a18 in main_lib (argc=<optimized out>, argv=<optimized out>) at libmain.c:1294 doc = 0x55555623bc80 config_dir_result = <optimized out> locale = <optimized out> utf8_configdir = <optimized out> os_info = <optimized out> #44 0x00007ffff7aafb25 in __libc_start_main () at /usr/lib/libc.so.6 #45 0x000055555555505e in _start () ```
I have the same issue. Here is everything from "run -v" and my backtrace which differs quite a bit from the one from cges30901.
Starting program: /usr/bin/geany -v [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib64/libthread_db.so.1". [New Thread 0x7fffe8488640 (LWP 428456)] Geany-INFO: 03:24:11.603: Geany 1.37.1, en_US.UTF-8 Geany-INFO: 03:24:11.603: GTK 3.24.29, GLib 2.68.2 Geany-INFO: 03:24:11.603: OS: Fedora 34 (Thirty Four) () Geany-INFO: 03:24:11.603: System data dir: /usr/share/geany Geany-INFO: 03:24:11.603: User config dir: /home/xxxxxxxxxx/.config/geany [New Thread 0x7fffe7c0e640 (LWP 428457)] (geany:428452): GLib-GIO-DEBUG: 03:24:11.616: _g_io_module_get_default: Found default implementation gvfs (GDaemonVfs) for ‘gio-vfs’ [New Thread 0x7fffe72f0640 (LWP 428458)] [Thread 0x7fffe72f0640 (LWP 428458) exited] [New Thread 0x7fffe72f0640 (LWP 428459)] [New Thread 0x7fffe6608640 (LWP 428460)] [Thread 0x7fffe72f0640 (LWP 428459) exited] [New Thread 0x7fffe72f0640 (LWP 428461)] [New Thread 0x7fffe5d3f640 (LWP 428462)] [Thread 0x7fffe72f0640 (LWP 428461) exited] [Thread 0x7fffe6608640 (LWP 428460) exited] [Thread 0x7fffe5d3f640 (LWP 428462) exited] [New Thread 0x7fffe5d3f640 (LWP 428463)] [New Thread 0x7fffe6608640 (LWP 428464)] [New Thread 0x7fffe72f0640 (LWP 428465)] [New Thread 0x7fffe5444640 (LWP 428466)] [Thread 0x7fffe72f0640 (LWP 428465) exited] [Thread 0x7fffe5444640 (LWP 428466) exited] Geany-INFO: 03:24:11.753: Loaded GTK+ CSS theme '/usr/share/geany/geany.css' Geany-INFO: 03:24:11.754: Loaded GTK+ CSS theme '/usr/share/geany/geany-3.20.css' Geany-INFO: 03:24:11.757: System plugin path: /usr/lib64/geany Geany-INFO: 03:24:11.765: Added filetype CUDA (63). Geany-INFO: 03:24:11.765: Added filetype Clojure (64). Geany-INFO: 03:24:11.765: Added filetype Nim (65). Geany-INFO: 03:24:11.765: Added filetype Swift (66). Geany-INFO: 03:24:11.765: Added filetype Cython (67). Geany-INFO: 03:24:11.765: Added filetype TypeScript (68). Geany-INFO: 03:24:11.765: Added filetype Kotlin (69). Geany-INFO: 03:24:11.765: Added filetype Genie (70). Geany-INFO: 03:24:11.765: Added filetype Scala (71). Geany-INFO: 03:24:11.765: Added filetype Graphviz (72). Geany-INFO: 03:24:11.765: Added filetype Groovy (73). Geany-INFO: 03:24:11.765: Added filetype Arduino (74). Geany-INFO: 03:24:11.765: Added filetype JSON (75). Geany-INFO: 03:24:11.847: Loaded libvte from libvte-2.91.so.0 Geany-INFO: 03:24:11.850: Loaded: /usr/lib64/geany/classbuilder.so (Class Builder) Geany-INFO: 03:24:11.852: Loaded: /usr/lib64/geany/export.so (Export) Geany-INFO: 03:24:11.857: Loaded: /usr/lib64/geany/filebrowser.so (File Browser) Geany-INFO: 03:24:11.859: Loaded: /usr/lib64/geany/saveactions.so (Save Actions) [New Thread 0x7fffe5444640 (LWP 428467)] [New Thread 0x7fffe72f0640 (LWP 428468)] [Thread 0x7fffe5444640 (LWP 428467) exited] [New Thread 0x7fffe5444640 (LWP 428469)] [New Thread 0x7fffce4e6640 (LWP 428470)] [Thread 0x7fffe72f0640 (LWP 428468) exited] [Thread 0x7fffe5444640 (LWP 428469) exited] [New Thread 0x7fffe5444640 (LWP 428471)] [New Thread 0x7fffe72f0640 (LWP 428472)] [Thread 0x7fffe5444640 (LWP 428471) exited] [Thread 0x7fffce4e6640 (LWP 428470) exited] [New Thread 0x7fffce4e6640 (LWP 428473)] [New Thread 0x7fffe5444640 (LWP 428474)] [Thread 0x7fffce4e6640 (LWP 428473) exited] [Thread 0x7fffe72f0640 (LWP 428472) exited] [Thread 0x7fffe5444640 (LWP 428474) exited] Geany-INFO: 03:24:11.922: unknown : None (UTF-8) [New Thread 0x7fffe5444640 (LWP 428475)] [New Thread 0x7fffe72f0640 (LWP 428476)] [Thread 0x7fffe5444640 (LWP 428475) exited] [New Thread 0x7fffe5444640 (LWP 428477)] [New Thread 0x7fffce4e6640 (LWP 428478)] [Thread 0x7fffe72f0640 (LWP 428476) exited] [Thread 0x7fffe5444640 (LWP 428477) exited] [Thread 0x7fffce4e6640 (LWP 428478) exited] [New Thread 0x7fffce4e6640 (LWP 428479)] [New Thread 0x7fffe5444640 (LWP 428480)] [Thread 0x7fffce4e6640 (LWP 428479) exited] [New Thread 0x7fffce4e6640 (LWP 428481)] [New Thread 0x7fffe72f0640 (LWP 428482)] [Thread 0x7fffce4e6640 (LWP 428481) exited] [Thread 0x7fffe5444640 (LWP 428480) exited] [New Thread 0x7fffe5444640 (LWP 428483)] [New Thread 0x7fffce4e6640 (LWP 428484)] [Thread 0x7fffe72f0640 (LWP 428482) exited] [Thread 0x7fffe5444640 (LWP 428483) exited] [New Thread 0x7fffe5444640 (LWP 428485)] [New Thread 0x7fffe72f0640 (LWP 428486)] [Thread 0x7fffe5444640 (LWP 428485) exited] [New Thread 0x7fffe5444640 (LWP 428487)] [Thread 0x7fffce4e6640 (LWP 428484) exited] [New Thread 0x7fffce4e6640 (LWP 428488)] [Thread 0x7fffe5444640 (LWP 428487) exited] [Thread 0x7fffe72f0640 (LWP 428486) exited] [New Thread 0x7fffe72f0640 (LWP 428489)] [New Thread 0x7fffe5444640 (LWP 428490)] [Thread 0x7fffe72f0640 (LWP 428489) exited] [Thread 0x7fffce4e6640 (LWP 428488) exited] [New Thread 0x7fffce4e6640 (LWP 428491)] [New Thread 0x7fffe72f0640 (LWP 428492)] [Thread 0x7fffe5444640 (LWP 428490) exited] [Thread 0x7fffce4e6640 (LWP 428491) exited] [New Thread 0x7fffce4e6640 (LWP 428493)] [New Thread 0x7fffe5444640 (LWP 428494)] [Thread 0x7fffce4e6640 (LWP 428493) exited] [Thread 0x7fffe72f0640 (LWP 428492) exited] [New Thread 0x7fffe72f0640 (LWP 428495)] [New Thread 0x7fffce4e6640 (LWP 428496)] [Thread 0x7fffe72f0640 (LWP 428495) exited] [Thread 0x7fffe5444640 (LWP 428494) exited] [New Thread 0x7fffe5444640 (LWP 428497)] [New Thread 0x7fffe72f0640 (LWP 428498)] [Thread 0x7fffe5444640 (LWP 428497) exited] [Thread 0x7fffce4e6640 (LWP 428496) exited] [New Thread 0x7fffce4e6640 (LWP 428499)] [New Thread 0x7fffe5444640 (LWP 428500)] [Thread 0x7fffe72f0640 (LWP 428498) exited] [Thread 0x7fffce4e6640 (LWP 428499) exited] [New Thread 0x7fffce4e6640 (LWP 428501)] [New Thread 0x7fffe72f0640 (LWP 428502)] [Thread 0x7fffce4e6640 (LWP 428501) exited] [Thread 0x7fffe5444640 (LWP 428500) exited] [New Thread 0x7fffe5444640 (LWP 428503)] [New Thread 0x7fffce4e6640 (LWP 428504)] [Thread 0x7fffe72f0640 (LWP 428502) exited] [Thread 0x7fffe5444640 (LWP 428503) exited] [New Thread 0x7fffe5444640 (LWP 428505)] [New Thread 0x7fffe72f0640 (LWP 428506)] [Thread 0x7fffe5444640 (LWP 428505) exited] [Thread 0x7fffce4e6640 (LWP 428504) exited] [New Thread 0x7fffce4e6640 (LWP 428507)] [New Thread 0x7fffe5444640 (LWP 428508)] [Thread 0x7fffce4e6640 (LWP 428507) exited] [Thread 0x7fffe72f0640 (LWP 428506) exited] [New Thread 0x7fffe72f0640 (LWP 428509)] [New Thread 0x7fffce4e6640 (LWP 428510)] [Thread 0x7fffe72f0640 (LWP 428509) exited] [Thread 0x7fffe5444640 (LWP 428508) exited] [Thread 0x7fffce4e6640 (LWP 428510) exited] [Detaching after fork from child process 428511] [Thread 0x7fffe6608640 (LWP 428464) exited] [Thread 0x7fffe5d3f640 (LWP 428463) exited] **/usr/include/c++/11/bits/shared_ptr_base.h:976: std::__shared_ptr_access<_Tp, _Lp, <anonymous>, <anonymous> >::element_type& std::__shared_ptr_access<_Tp, _Lp, <anonymous>, <anonymous> >::operator*() const [with _Tp = vte::platform::Clipboard; __gnu_cxx::_Lock_policy _Lp = __gnu_cxx::_S_atomic; bool <anonymous> = false; bool <anonymous> = false; std::__shared_ptr_access<_Tp, _Lp, <anonymous>, <anonymous> >::element_type = vte::platform::Clipboard]: Assertion '_M_get() != nullptr' failed.** --Type <RET> for more, q to quit, c to continue without paging--
**Thread 1 "geany" received signal SIGABRT, Aborted. __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:49 49 return ret;**
Backtrace: #0 __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:49 #1 0x00007ffff7b158a4 in __GI_abort () at abort.c:79 #2 0x00007fffe4bda9d8 in std::__replacement_assert(char const*, int, char const*, char const*) (__file=<optimized out>, __line=<optimized out>, __function=<optimized out>, __condition=<optimized out>) at /usr/include/c++/11/x86_64-redhat-linux/bits/c++config.h:2654 #3 0x00007fffe4c10bd8 in std::__shared_ptr_access<vte::platform::Clipboard, (__gnu_cxx::_Lock_policy)2, false, false>::operator*() const (this=<optimized out>) at /usr/include/c++/11/bits/shared_ptr_base.h:976 #4 std::__shared_ptr_access<vte::platform::Clipboard, (__gnu_cxx::_Lock_policy)2, false, false>::operator*() const (this=0x55555561dc18, this=<optimized out>) at /usr/include/c++/11/bits/shared_ptr_base.h:974 #5 vte::platform::Widget::clipboard_get(vte::platform::ClipboardType) const (this=this@entry=0x55555561dbc0, type=type@entry=vte::platform::ClipboardType::CLIPBOARD) at ../src/widget.cc:228 #6 0x00007fffe4c10c49 in vte::platform::Widget::clipboard_request_text(vte::platform::ClipboardType) (this=0x55555561dbc0, type=vte::platform::ClipboardType::CLIPBOARD) at ../src/widget.cc:278 #7 0x00007ffff6d8383a in _g_closure_invoke_va (param_types=0x0, n_params=<optimized out>, args=0x7fffffffc9f0, instance=0x555555c74aa0, return_value=0x0, closure=0x55555622d620) at ../gobject/gclosure.c:873 #8 g_signal_emit_valist (instance=0x555555c74aa0, signal_id=<optimized out>, detail=0, var_args=var_args@entry=0x7fffffffc9f0) at ../gobject/gsignal.c:3406 #9 0x00007ffff6d83983 in g_signal_emit (instance=<optimized out>, signal_id=<optimized out>, detail=<optimized out>) at ../gobject/gsignal.c:3553 #10 0x00007fffe4bfc75a in vte::terminal::Terminal::emit_paste_clipboard() (this=<optimized out>, this=<optimized out>) at ../src/vte.cc:1077 #11 vte_terminal_paste_clipboard(VteTerminal*) (terminal=0x555555c74aa0) at ../src/vtegtk.cc:2548 #15 0x00007ffff6d83983 in <emit signal ??? on instance ???> (instance=<optimized out>, signal_id=<optimized out>, detail=detail@entry=0) at ../gobject/gsignal.c:3553 #12 0x00007ffff6d65c2f in g_closure_invoke (closure=0x55555629a100, return_value=0x0, n_param_values=1, param_values=0x7fffffffcc80, invocation_hint=0x7fffffffcc00) at ../gobject/gclosure.c:810 #13 0x00007ffff6d81ea6 in signal_emit_unlocked_R (node=node@entry=0x55555560a8b0, detail=detail@entry=0, instance=instance@entry=0x555556202620, emission_return=emission_return@entry=0x0, instance_and_params=instance_and_params@entry=0x7fffffffcc80) at ../gobject/gsignal.c:3741 #14 0x00007ffff6d8376a in g_signal_emit_valist (instance=<optimized out>, signal_id=<optimized out>, detail=<optimized out>, var_args=var_args@entry=0x7fffffffce30) at ../gobject/gsignal.c:3497 #16 0x00007ffff76d99e0 in closure_accel_activate (closure=closure@entry=0x555556298e40, return_value=return_value@entry=0x7fffffffd060, n_param_values=n_param_values@entry=4, param_values=param_values@entry=0x7fffffffd0c0, invocation_hint=invocation_hint@entry=0x7fffffffd040, marshal_data=marshal_data@entry=0x0) at /usr/src/debug/gtk3-3.24.29-1.fc34.x86_64/gtk/gtkwidget.c:6616 #20 0x00007ffff6d83983 in <emit signal ??? on instance ???> (instance=instance@entry=0x555556296320, signal_id=<optimized out>, detail=detail@entry=3007) at ../gobject/gsignal.c:3553 #17 0x00007ffff6d65c2f in g_closure_invoke (closure=0x555556298e40, return_value=0x7fffffffd060, n_param_values=4, param_values=0x7fffffffd0c0, invocation_hint=0x7fffffffd040) at ../gobject/gclosure.c:810 #18 0x00007ffff6d81ea6 in signal_emit_unlocked_R (node=<optimized out>, detail=detail@entry=3007, instance=instance@entry=0x555556296320, emission_return=emission_return@entry=0x7fffffffd210, instance_and_params=instance_and_params@entry=0x7fffffffd0c0) at ../gobject/gsignal.c:3741 #19 0x00007ffff6d832de in g_signal_emit_valist (instance=<optimized out>, signal_id=<optimized out>, detail=<optimized out>, var_args=var_args@entry=0x7fffffffd2c0) at ../gobject/gsignal.c:3507 #21 0x00007ffff745091c in gtk_accel_group_activate (accel_group=0x555556296320, accel_quark=accel_quark@entry=3007, acceleratable=acceleratable@entry=0x555555c82500, accel_key=accel_key@entry=118, accel_mods=accel_mods@entry=5) at /usr/src/debug/gtk3-3.24.29-1.fc34.x86_64/gtk/gtkaccelgroup.c:910 #22 0x00007ffff7451d2d in gtk_accel_groups_activate (accel_mods=5, accel_key=118, object=0x555555c82500) at /usr/src/debug/gtk3-3.24.29-1.fc34.x86_64/gtk/gtkaccelgroup.c:948 #23 gtk_accel_groups_activate (object=0x555555c82500, accel_key=118, accel_mods=5) at /usr/src/debug/gtk3-3.24.29-1.fc34.x86_64/gtk/gtkaccelgroup.c:931 #24 0x00007ffff76fdd7d in gtk_window_activate_key (window=window@entry=0x555555c82500, event=event@entry=0x555555e535d0) at /usr/src/debug/gtk3-3.24.29-1.fc34.x86_64/gtk/gtkwindow.c:12057 #25 0x00007ffff76fe366 in gtk_window_key_press_event (widget=0x555555c82500, event=0x555555e535d0) at /usr/src/debug/gtk3-3.24.29-1.fc34.x86_64/gtk/gtkwindow.c:8252 #30 0x00007ffff6d83983 in <emit signal ??? on instance ???> (instance=instance@entry=0x555555c82500, signal_id=<optimized out>, detail=detail@entry=0) at ../gobject/gsignal.c:3553 #26 0x00007ffff7726327 in _gtk_marshal_BOOLEAN__BOXED (closure=0x5555555fd670, return_value=0x7fffffffd660, n_param_values=<optimized out>, param_values=0x7fffffffd6c0, invocation_hint=<optimized out>, marshal_data=<optimized out>) at /usr/src/debug/gtk3-3.24.29-1.fc34.x86_64/gtk/gtkmarshalers.c:83 #27 0x00007ffff6d65c2f in g_closure_invoke (closure=0x5555555fd670, return_value=0x7fffffffd660, n_param_values=2, param_values=0x7fffffffd6c0, invocation_hint=0x7fffffffd640) at ../gobject/gclosure.c:810 #28 0x00007ffff6d81894 in signal_emit_unlocked_R (node=<optimized out>, detail=detail@entry=0, instance=instance@entry=0x555555c82500, emission_return=emission_return@entry=0x7fffffffd7e0, instance_and_params=instance_and_params@entry=0x7fffffffd6c0) at ../gobject/gsignal.c:3780 #29 0x00007ffff6d832de in g_signal_emit_valist (instance=<optimized out>, signal_id=<optimized out>, detail=<optimized out>, var_args=var_args@entry=0x7fffffffd890) at ../gobject/gsignal.c:3507 #31 0x00007ffff76ecf64 in gtk_widget_event_internal.part.0.lto_priv.0 (widget=0x555555c82500, event=0x555555e535d0) at /usr/src/debug/gtk3-3.24.29-1.fc34.x86_64/gtk/gtkwidget.c:7808 #32 0x00007ffff75903df in propagate_event (widget=widget@entry=0x555555c82500, event=event@entry=0x555555e535d0, captured=captured@entry=0, topmost=topmost@entry=0x0) at /usr/src/debug/gtk3-3.24.29-1.fc34.x86_64/gtk/gtkmain.c:2681 #33 0x00007ffff7590453 in gtk_propagate_event (widget=widget@entry=0x555555c82500, event=event@entry=0x555555e535d0) at /usr/src/debug/gtk3-3.24.29-1.fc34.x86_64/gtk/gtkmain.c:2725 #34 0x00007ffff75911ea in gtk_main_do_event (event=<optimized out>) at /usr/src/debug/gtk3-3.24.29-1.fc34.x86_64/gtk/gtkmain.c:1921 #35 gtk_main_do_event (event=<optimized out>) at /usr/src/debug/gtk3-3.24.29-1.fc34.x86_64/gtk/gtkmain.c:1691 #36 0x00007ffff72737d3 in _gdk_event_emit (event=0x555555e535d0) at /usr/src/debug/gtk3-3.24.29-1.fc34.x86_64/gdk/gdkevents.c:73 #37 _gdk_event_emit (event=0x555555e535d0) at /usr/src/debug/gtk3-3.24.29-1.fc34.x86_64/gdk/gdkevents.c:67 #38 0x00007ffff72aac16 in gdk_event_source_dispatch (source=<optimized out>, callback=<optimized out>, user_data=<optimized out>) at x11/gdkeventsource.c:367 #39 0x00007ffff6c624cf in g_main_dispatch (context=0x5555555e74a0) at ../glib/gmain.c:3337 #40 g_main_context_dispatch (context=0x5555555e74a0) at ../glib/gmain.c:4055 #41 0x00007ffff6cb64e8 in g_main_context_iterate.constprop.0 (context=0x5555555e74a0, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/gmain.c:4131 #42 0x00007ffff6c61a93 in g_main_loop_run (loop=0x5555563f0b40) at ../glib/gmain.c:4329 #43 0x00007ffff758747d in gtk_main () at /usr/src/debug/gtk3-3.24.29-1.fc34.x86_64/gtk/gtkmain.c:1329 #44 0x00007ffff7d4e42a in main_lib(gint, gchar**) (argc=<optimized out>, argv=<optimized out>) at /usr/src/debug/geany-1.37.1-2.fc34.x86_64/src/libmain.c:1302 #45 0x00007ffff7b16b75 in __libc_start_main (main=0x555555555070 <main>, argc=2, argv=0x7fffffffde78, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7fffffffde68) at ../csu/libc-start.c:332 #46 0x00005555555550ae in _start ()
@justgitup thanks for the comprehensive report. Although your backtrace appears different, the abort is in the same place, VTE's widget.cc:228 as the backtrace from @cges30901 and again there is not Geany code after the call to gtk_main(). Perhaps better to report to VTE and paste a pointer to the report here.
IIUC both Manjaro and Fedora are Wayland by default now, so maybe VTE is having an issue with that, or its using XWayland and having an issue with that. Try forcing direct Wayland or X11 and see if that helps (see #2737 for how).
IIUC both Manjaro and Fedora are Wayland by default now, so maybe VTE is having an issue with that, or its using XWayland and having an issue with that. Try forcing direct Wayland or X11 and see if that helps (see #2737 for how).
@elextr I'm using X11 and using direct X11 doesn't help unfortunately.
I've however tried downgrading vte291 from 0.64.1-1 to version 0.62.3-2 and that seems to have fixed it. I found out that 0.63.91 was the first version that crashes Geany but couldn't figure out what change was the actual cause. I'll have to do a quite a bit of reading first on how to report a bug for VTE.
Thank you for your efforts, I'll try to see if I can make sense of it all at the VTE site.
@justgitup probably should report it to fedora, see https://wiki.gnome.org/Apps/Terminal/ReportingBugs first line.
If someone wants to report it, [this commit of vte](https://gitlab.gnome.org/GNOME/vte/-/commit/0136048d32d29412de3381828bb21f05...) is the first bad commit.
Not sure what else to say except, "don't do that" and bind ctrl+shift+v to something innocuous in Geany so it hopefully will hide the crashy VTE accelerator and you won't do it accidentally.
@elextr I tried your suggestion of binding it to something else (I bound it to "Properties"), and it was successful in preventing Geany from crashing.
Seeing the critical nature of this issue as unsaved valuable work could be lost, why not implement a hotfix which binds `Ctrl+Shift+V` to a null action by default? We can remove this once upstream fixes the issue.
@TheDcoder with your binding, can you test that it doesn't crash if you type `<ctrl><shift>v` in the VTE window, IIUC VTE keybindings should override Geany ones in that window but hopefully it won't crash if its in the right window.
@elextr I tested it and no crashes, and the paste function also works, so it is perfect :smile:
@TheDcoder thanks, I am not on a computer where I can build Geany for a while and I don't have the problem anyway, but I made #2843 "blind". So can someone who has the problem and can build Geany please test #2843 (assuming CI says its ok this time) and post ok.
I tried #2843, and geany still crashed. I have to also remove the line `file_properties=` in `~/.config/geany/keybindings.conf` to stop crash.
@cges30901 thanks for testing, yes, if there is a user config overriding the default keybinding Geany can't override it, even if the user "setting" is to unset the binding like that.
All I can do at this point is bind `<ctrl><shift>v` by default.
All I can do at this point is bind <ctrl><shift>v by default.
@elextr Is it possible to use GTK code to handle the accelerator in case if there is no default action bound to the combination?
I am not really familiar with GTK but I think we can take advantage of the hierarchical structure of GUI elements to always register the `Ctrl+Shift+V` accelerator on a parent element which will catch it.
@TheDcoder sounds plausible, but my experience is that doesn't always translate into GTK. Like you, I'm not a GTK expert, somebody else would have to determine how to do that. Also not that window layout changes with plugins.
I found there is already a bug report of Fedora: https://bugzilla.redhat.com/show_bug.cgi?id=1977030
Other aps usually dont have popup menu created all the time and they create it only in popup-menu signal handler (and maybe in button-press-event too).
Simple "fix" for this crash is to add `gtk_widget_grab_focus(vc->vte);` into vte_popup_menu_clicked / POPUP_PASTE.
FWIW, Issue is still occurring in Geany 1.38, build date 2021-09-01 with GTK v3.24.30 and GLib v2.70.1 (Manjaro Linux version).
As a side note, binding the same action to different key combinations is possible ( and prevents crashing in this particular case as noted above ) when editing the `keybindings.conf` file, i.e:
``` menu_paste=<Primary>v menu_paste=<Primary><Shift>v ```
Sharing here in case it can help others.
I too just started seeing this, and it's a problem since copy/pasting from other app which support a CTRL+SHIFT+V action is what's tripping me up. I understand the sentiment of "don't do that" but but typing any key combination that isn't bound shouldn't crash that app. It's interesting that this is somehow being spun as simply an upstream GTK issue. I'll attempt an intentional keybinding assignment to at least stop it from crashing on my and losing work.
It's interesting that this is somehow being spun as simply an upstream GTK issue.
@timnolte its being "spun" as a GTK/VTE issue because:
1. the problem only occurs with some newer GTK/VTE versions, and it appears mostly on Manjaro, no Geany devs can replicate it on their systems AFAIK (one uses Arch, but none use Manjaro) 2. as noted above, there is no Geany code in the backtrace from the crash, so no place indicated where a Geany bug might be the cause
The "workaround" of binding the keybinding in Geany prevents the buggy GTK/VTE code from being activated since it intercepts the `ctrl+shift+V` before it gets to the buggy code path. My PR of a default keybinding of `ctrl+shift+V` to `Properties` has been merged and will be in the next release.
Other than that, nobody who has the problem has contributed any fixes.
I'm actually on a Pop!_OS system so not Manjaro at all.
I said "mostly" since many commenters did not even post enough information to identify their OS, let alone the bug.
But at least you know who to complain to, System 76, and post a link here.
@elextr I am on Arch Linux and I can reproduce the issue too, I can provide any required info. Here's the output from the Debug Messages window:
``` 07:09:40.840591: GLib-GIO DEBUG : _g_io_module_get_default: Found default implementation gvfs (GDaemonVfs) for ‘gio-vfs’ 07:09:40.865226: Geany INFO : Geany 1.38, en_US.UTF8 07:09:40.865233: Geany INFO : GTK 3.24.31, GLib 2.70.2 07:09:40.865251: Geany INFO : OS: Arch Linux 07:09:40.865254: Geany INFO : System data dir: /usr/share/geany 07:09:40.865257: Geany INFO : User config dir: /home/TheDcoder/.config/geany 07:09:40.962592: Geany INFO : Loaded GTK+ CSS theme '/usr/share/geany/geany.css' 07:09:40.963236: Geany INFO : Loaded GTK+ CSS theme '/usr/share/geany/geany-3.20.css' 07:09:40.966493: Geany INFO : System plugin path: /usr/lib/geany 07:09:40.983668: Geany INFO : Loaded libvte from libvte-2.91.so 07:09:40.992039: Geany INFO : Loaded: /usr/lib/geany/addons.so (Addons) 07:09:40.993317: Geany INFO : Loaded: /usr/lib/geany/codenav.so (Code navigation) 07:09:40.994133: Geany INFO : Loaded: /usr/lib/geany/commander.so (Commander) 07:09:40.994839: Geany INFO : Loaded: /usr/lib/geany/export.so (Export) 07:09:40.998710: Geany INFO : Loaded: /usr/lib/geany/geanyvc.so (GeanyVC) 07:09:41.124765: Geany INFO : unknown : None (UTF-8) 07:09:43.993666: GdkPixbuf DEBUG : gdk_pixbuf_from_pixdata() called on: 07:09:43.993689: GdkPixbuf DEBUG : Encoding raw 07:09:43.993700: GdkPixbuf DEBUG : Dimensions: 14 x 14 07:09:43.993709: GdkPixbuf DEBUG : Rowstride: 56, Length: 808 07:09:43.993718: GdkPixbuf DEBUG : Copy pixels == false 07:09:43.999492: GdkPixbuf DEBUG : gdk_pixbuf_from_pixdata() called on: 07:09:43.999504: GdkPixbuf DEBUG : Encoding raw 07:09:43.999511: GdkPixbuf DEBUG : Dimensions: 14 x 14 07:09:43.999517: GdkPixbuf DEBUG : Rowstride: 56, Length: 808 07:09:43.999523: GdkPixbuf DEBUG : Copy pixels == false 07:09:44.015956: GdkPixbuf DEBUG : gdk_pixbuf_from_pixdata() called on: 07:09:44.015965: GdkPixbuf DEBUG : Encoding raw 07:09:44.015968: GdkPixbuf DEBUG : Dimensions: 14 x 14 07:09:44.015985: GdkPixbuf DEBUG : Rowstride: 56, Length: 808 07:09:44.016001: GdkPixbuf DEBUG : Copy pixels == false ```
@TheDcoder thanks, can you run Geany under GDB with no plugins and default settings (use `run -c /tmp/non-existant` in GDB), cause the crash, and when it crashes get a backtrace.
If it is the same as the traces above (ie shows no Geany code beyond the start call) I will ask that you report to Arch with the backtrace and post a link to the bug report here.
1. the problem only occurs with some newer GTK/VTE versions, and it appears mostly on Manjaro, no Geany devs can replicate it on their systems AFAIK (one uses Arch, but none use Manjaro)
JFTR, I was the one using Arch but recently switched to Debian :D.
More important is, I can reliably reproduce the crash. @intact gave the relevant hint in https://github.com/geany/geany/issues/2813#issuecomment-957352017: it happens when the VTE has never been shown before. If you manually switch to the VTE tab and back to another, then paste text using `Ctrl-Shift-v` it works, without initially switching to the tab, it crashes.
So, even if it might be a bug rather in libvte, we can easily workaround this by manually realizing the VTE widget. #3091 attempts to do this. I'm not sure but I think this should not have any bad consequences or side effects. With this change, I can no longer reproduce the crash.
Another approach could be to switch to the VTE tab when text is pasted, this could be even extended to all actions from the popup menu handler to ensure the VTE is visible if any such action is triggered. However, this would be a bigger change to the user experience and might be unexpected.
I suggest to rather manually realize the widget so it is mapped and fully initialized to fix/workaround the crash and not change Geany's behavior in this regard.
Created an issue for libvte: https://gitlab.gnome.org/GNOME/vte/-/issues/2537
I said "mostly" since many commenters did not even post enough information to identify their OS, let alone the bug.
@elextr I was using Fedora and Debian and experienced the same results.
A more sophisticated workaround was contributed at #3091 but nobody who can reproduce this has tested or if they did have not noted if it works so its just sitting there.
A more sophisticated workaround was contributed at #3091 but nobody who can reproduce this has tested it, or if they did have not noted if it works, so its just sitting there.
I just tested #3091, and it works for me. Geany no longer crashes, and I do not notice side effects.
There are no news on the upstream issue yet.
I'm wondering if we should merge #3091 already even if not 100% sure if it is the correct approach but it seems to workaround the problem at least. If it is actually a bug in libvte, then #3091 might be still good until it is fixed and for users with older unfixed versions.
Closed #2813 via #3091.
github-comments@lists.geany.org