Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

overview causes geany to crash when crating a new file and clicking in the file area. #1354

Open
l33tlinuxh4x0r opened this issue Jun 1, 2024 · 6 comments

Comments

@l33tlinuxh4x0r
Copy link

Without overview geany does not crash... when overview is enabled creating a new file in Linux X11 causes geany to crash when the file is clicked. Windows and wayland seem to be unaffected. See bug geany/geany#2736

@elextr
Copy link
Member

elextr commented Jun 1, 2024

Overview plugin uses Scintilla to generate the overview, but there have been no changes to the plugin for many years, but IIRC there have been changes to Scintilla, some of which may be incompatible with such old code.

As nothing has been heard from the "maintainer" of the overview plugin its probably unlikely it will be fixed unless "somebody" does it, or the plugin is shown to be the cause of a crash it may be dropped if nobody cares for it.

@l33tlinuxh4x0r
Copy link
Author

Fwiw I love the plugin... I just don't like the crash :/

@b4n
Copy link
Member

b4n commented Jun 3, 2024

FWIW I can confirm the crash, and got this GDB backtrace and Valgrind log:

GDB backtrace for the crash (nothing new though)
Thread 1 "geany" received signal SIGSEGV, Segmentation fault.
0x00007fffeefb2f51 in ibus_input_context_reset () from /lib/x86_64-linux-gnu/libibus-1.0.so.5
(gdb) bt
#0  0x00007fffeefb2f51 in ibus_input_context_reset () at /lib/x86_64-linux-gnu/libibus-1.0.so.5
#1  0x00007ffff408edc2 in  () at /usr/lib/x86_64-linux-gnu/gtk-3.0/3.0.0/immodules/im-ibus.so
#6  0x00007ffff769ddbf in <emit signal ??? on instance 0x555556ae1920 [ScintillaObject]>
    (instance=instance@entry=0x555556ae1920, signal_id=<optimized out>, detail=detail@entry=0) at ../../../gobject/gsignal.c:3606
    #2  0x00007ffff6e90bc7 in _gtk_marshal_BOOLEAN__BOXED
    (closure=0x555556b229a0, return_value=0x7fffffffd660, n_param_values=<optimized out>, param_values=0x7fffffffd6c0, invocation_hint=<optimized out>, marshal_data=<optimized out>) at gtk/gtkmarshalers.c:84
    #3  0x00007ffff76843b0 in g_closure_invoke
    (closure=0x555556b229a0, return_value=return_value@entry=0x7fffffffd660, n_param_values=2, param_values=param_values@entry=0x7fffffffd6c0, invocation_hint=invocation_hint@entry=0x7fffffffd640) at ../../../gobject/gclosure.c:832
    #4  0x00007ffff7697076 in signal_emit_unlocked_R
    (node=<optimized out>, detail=detail@entry=0, instance=instance@entry=0x555556ae1920, emission_return=emission_return@entry=0x7fffffffd7b0, instance_and_params=instance_and_params@entry=0x7fffffffd6c0) at ../../../gobject/gsignal.c:3796
    #5  0x00007ffff769d42d in g_signal_emit_valist
    (instance=<optimized out>, signal_id=<optimized out>, detail=<optimized out>, var_args=var_args@entry=0x7fffffffd860)
    at ../../../gobject/gsignal.c:3559
#7  0x00007ffff7169844 in gtk_widget_event_internal (widget=widget@entry=0x555556ae1920 [ScintillaObject], event=event@entry=0x555556ad59e0)
    at ../../../gtk/gtkwidget.c:7812
#8  0x00007ffff716c481 in gtk_widget_event_internal (event=0x555556ad59e0, widget=0x555556ae1920 [ScintillaObject])
    at ../../../gtk/gtkwidget.c:7383
#9  0x00007ffff700783e in propagate_event_up (topmost=<optimized out>, event=<optimized out>, widget=0x555556ae1920 [ScintillaObject])
    at ../../../gtk/gtkmain.c:2598
#10 propagate_event
    (widget=widget@entry=0x555556ae1920 [ScintillaObject], event=event@entry=0x555556ad59e0, captured=captured@entry=0, topmost=topmost@entry=0x0)
    at ../../../gtk/gtkmain.c:2701
#11 0x00007ffff7008b7c in gtk_propagate_event (widget=widget@entry=0x555556ae1920 [ScintillaObject], event=event@entry=0x555556ad59e0)
    at ../../../gtk/gtkmain.c:2735
#12 0x00007ffff70092f6 in gtk_main_do_event (event=0x555556ad59e0) at ../../../gtk/gtkmain.c:1921
#13 gtk_main_do_event (event=<optimized out>) at ../../../gtk/gtkmain.c:1691
#14 0x00007ffff7ec6815 in _gdk_event_emit (event=event@entry=0x555556ad59e0) at ../../../gdk/gdkevents.c:73
#15 0x00007ffff7f207a2 in gdk_event_source_dispatch (source=<optimized out>, callback=<optimized out>, user_data=<optimized out>)
    at ../../../gdk/x11/gdkeventsource.c:367
#16 0x00007ffff6b3e7a9 in g_main_dispatch (context=0x555555630ba0) at ../../../glib/gmain.c:3454
#17 g_main_context_dispatch (context=context@entry=0x555555630ba0) at ../../../glib/gmain.c:4172
#18 0x00007ffff6b3ea38 in g_main_context_iterate (context=0x555555630ba0, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>)
    at ../../../glib/gmain.c:4248
#19 0x00007ffff6b3ecef in g_main_loop_run (loop=loop@entry=0x5555566c7470) at ../../../glib/gmain.c:4448
#20 0x00007ffff7008495 in gtk_main () at ../../../gtk/gtkmain.c:1329
#21 0x00007ffff7a9cf1e in main_lib (argc=<optimized out>, argv=<optimized out>) at ../../src/libmain.c:1260
#22 0x0000555555555142 in main (argc=<optimized out>, argv=<optimized out>) at ../../src/main.c:27
Memcheck report for the crash:
==3332905== Invalid read of size 8
==3332905==    at 0xB697DA6: ??? (in /usr/lib/x86_64-linux-gnu/gtk-3.0/3.0.0/immodules/im-ibus.so)
==3332905==    by 0x4ED2BC6: _gtk_marshal_BOOLEAN__BOXED (gtkmarshalers.c:84)
==3332905==    by 0x5B5A3AF: g_closure_invoke (gclosure.c:832)
==3332905==    by 0x5B6D075: signal_emit_unlocked_R.isra.0 (gsignal.c:3796)
==3332905==    by 0x5B7342C: g_signal_emit_valist (gsignal.c:3559)
==3332905==    by 0x5B73DBE: g_signal_emit (gsignal.c:3606)
==3332905==    by 0x51AB843: gtk_widget_event_internal.part.0 (gtkwidget.c:7812)
==3332905==    by 0x504983D: propagate_event_up (gtkmain.c:2598)
==3332905==    by 0x504983D: propagate_event (gtkmain.c:2701)
==3332905==    by 0x504B2F5: gtk_main_do_event (gtkmain.c:1921)
==3332905==    by 0x504B2F5: gtk_main_do_event (gtkmain.c:1691)
==3332905==    by 0x569F814: _gdk_event_emit (gdkevents.c:73)
==3332905==    by 0x56F97A1: gdk_event_source_dispatch (gdkeventsource.c:367)
==3332905==    by 0x5BFD7A8: g_main_dispatch (gmain.c:3454)
==3332905==    by 0x5BFD7A8: g_main_context_dispatch (gmain.c:4172)
==3332905==  Address 0x315ff7e8 is 72 bytes inside a block of size 176 free'd
==3332905==    at 0x484317B: free (vg_replace_malloc.c:872)
==3332905==    by 0x5B7C213: g_type_free_instance (gtype.c:2003)
==3332905==    by 0x5BF9A28: g_source_callback_unref (gmain.c:1739)
==3332905==    by 0x5BF9A28: g_source_callback_unref (gmain.c:1732)
==3332905==    by 0x5BF9F0E: g_source_destroy_internal (gmain.c:1404)
==3332905==    by 0x5BFD70F: g_main_dispatch (gmain.c:3484)
==3332905==    by 0x5BFD70F: g_main_context_dispatch (gmain.c:4172)
==3332905==    by 0x5BFDA37: g_main_context_iterate.constprop.0 (gmain.c:4248)
==3332905==    by 0x5BFDCEE: g_main_loop_run (gmain.c:4448)
==3332905==    by 0x504A494: gtk_main (gtkmain.c:1329)
==3332905==    by 0x48EDF1D: main_lib (libmain.c:1260)
==3332905==    by 0x109141: main (main.c:27)
==3332905==  Block was alloc'd at
==3332905==    at 0x48407B4: malloc (vg_replace_malloc.c:381)
==3332905==    by 0x5C03678: g_malloc (gmem.c:130)
==3332905==    by 0x5C1C011: g_slice_alloc (gslice.c:1074)
==3332905==    by 0x5C1C648: g_slice_alloc0 (gslice.c:1100)
==3332905==    by 0x5B7BE8C: g_type_create_instance (gtype.c:1903)
==3332905==    by 0x5B5FD2F: g_object_new_internal (gobject.c:2228)
==3332905==    by 0x5B613FB: g_object_new_with_properties (gobject.c:2391)
==3332905==    by 0x5B62000: g_object_new (gobject.c:2037)
==3332905==    by 0xB699591: ibus_im_context_new (in /usr/lib/x86_64-linux-gnu/gtk-3.0/3.0.0/immodules/im-ibus.so)
==3332905==    by 0x5027241: _gtk_im_module_create (gtkimmodule.c:656)
==3332905==    by 0x5027EBB: gtk_im_multicontext_get_slave (gtkimmulticontext.c:281)
==3332905==    by 0x502840D: gtk_im_multicontext_set_client_window (gtkimmulticontext.c:331)
==3332905== 

I however have for now no clue what the issue is or even where (is it Scintilla doing something problematic with multiple concurrent views, is it a timing bug in IBus or GTK?).

@b4n b4n added the bug label Jun 3, 2024
@b4n
Copy link
Member

b4n commented Jun 3, 2024

BTW, somebody motivated enough could try and find what broke this plugin, it could help debug the issue. Be it testing various Geany versions or even better, using git bisect.

@elextr
Copy link
Member

elextr commented Jun 4, 2024

@l33tlinuxh4x0r in this context "care" means "does the work to fix it", as in care and feeding, not just "like" it 😁

@l33tlinuxh4x0r
Copy link
Author

@l33tlinuxh4x0r in this context "care" means "does the work to fix it", as in care and feeding, not just "like" it 😁

If I had the skills I would fix it, however I don't so hoping that someone else will take this up.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants