Bug 145339 - [gtk3] Crash on closing Asian Phonetic Guide window
Summary: [gtk3] Crash on closing Asian Phonetic Guide window
Status: RESOLVED NOTOURBUG
Alias: None
Product: LibreOffice
Classification: Unclassified
Component: framework (show other bugs)
Version:
(earliest affected)
7.2.2.2 release
Hardware: x86-64 (AMD64) Linux (All)
: medium normal
Assignee: Not Assigned
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2021-10-27 09:07 UTC by David Gow
Modified: 2021-12-06 19:23 UTC (History)
3 users (show)

See Also:
Crash report or crash signature:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description David Gow 2021-10-27 09:07:55 UTC
[Note: this seems like is could be related to bug #141967, which seems to be basically the same thing. I'm seeing this in 7.2.2.2 (as packaged by openSUSE Tumbleweed), however, and I can reproduce the crash even when closing the window manually — not just when using Esc. Regardless, look at: https://bugs.documentfoundation.org/show_bug.cgi?id=141967 ]

LibreOffice Writer crashes completely after closing the "Asian Phonetic Guide" (Ruby) window. I'm running under KDE/KWin Wayland, but with SAL_USE_VCLPLUGIN=gtk3 to work around bug #137924 — the crash is in gtk_widget_Set_sensitive, called by SvxRubyDialog::EnableControls(), so it's possible this is gtk3-specific (though I haven't tested it).

Stacktrace:
#0  0x00007feb629ead25 in gtk_widget_set_sensitive (widget=0x559907b1d600, sensitive=1) at /usr/src/debug/gtk3-3.24.30-2.3.x86_64/gtk/gtkwidget.c:9511
#1  0x00007feb69866304 in SvxRubyDialog::EnableControls(bool) () at /usr/src/debug/libreoffice-7.2.2.2-1.4.x86_64/svx/source/dialog/rubydialog.cxx:682
#2  SvxRubyDialog::Activate() (this=0x559907b1d600) at /usr/src/debug/libreoffice-7.2.2.2-1.4.x86_64/svx/source/dialog/rubydialog.cxx:288
#6  0x00007feb6600dd9f in <emit signal ??? on instance 0x5598fe2d0e70 [GtkDialog]> (instance=<optimized out>, signal_id=<optimized out>, detail=<optimized out>) at ../gobject/gsignal.c:3553
    #3  0x00007feb65ff473f in g_closure_invoke
    (closure=0x5598fee0fe70, return_value=return_value@entry=0x0, n_param_values=2, param_values=param_values@entry=0x7ffd82b77660, invocation_hint=invocation_hint@entry=0x7ffd82b775e0) at ../gobject/gclosure.c:830
    #4  0x00007feb66007086 in signal_emit_unlocked_R
    (node=node@entry=0x5598fd8e2740, detail=detail@entry=0, instance=instance@entry=0x5598fe2d0e70, emission_return=emission_return@entry=0x0, instance_and_params=instance_and_params@entry=0x7ffd82b77660)
    at ../gobject/gsignal.c:3742
    #5  0x00007feb6600dc47 in g_signal_emit_valist (instance=<optimized out>, signal_id=<optimized out>, detail=<optimized out>, var_args=var_args@entry=0x7ffd82b77800) at ../gobject/gsignal.c:3497
#7  0x00007feb62a02322 in gtk_window_set_focus (window=0x5598fe2d0e70 [GtkDialog], focus=0x0) at /usr/src/debug/gtk3-3.24.30-2.3.x86_64/gtk/gtkwindow.c:2620
#8  0x00007feb62a0bd07 in _gtk_window_unset_focus_and_default (window=0x5598fe2d0e70 [GtkDialog], widget=0x5598fdf48fa0 [GtkGrid]) at /usr/src/debug/gtk3-3.24.30-2.3.x86_64/gtk/gtkwindow.c:9125
#9  0x00007feb629f0fdb in gtk_widget_unparent (widget=0x5598fdf48fa0 [GtkGrid]) at /usr/src/debug/gtk3-3.24.30-2.3.x86_64/gtk/gtkwidget.c:4650
#10 0x00007feb6277e158 in gtk_bin_remove (container=0x559907a14800 [ImmobilizedViewport], child=0x5598fdf48fa0 [GtkGrid]) at /usr/src/debug/gtk3-3.24.30-2.3.x86_64/gtk/gtkbin.c:151
#11 0x00007feb629df528 in gtk_viewport_remove (container=0x559907a14800 [ImmobilizedViewport], child=0x5598fdf48fa0 [GtkGrid]) at /usr/src/debug/gtk3-3.24.30-2.3.x86_64/gtk/gtkviewport.c:975
#12 0x00007feb65ff7cca in g_cclosure_marshal_VOID__OBJECTv
    (closure=0x5598fd8c0aa0, return_value=<optimized out>, instance=<optimized out>, args=<optimized out>, marshal_data=<optimized out>, n_params=<optimized out>, param_types=0x5598fd8ce300) at ../gobject/gmarshal.c:1910
#13 0x00007feb65ff4969 in _g_closure_invoke_va
    (closure=closure@entry=0x5598fd8c0aa0, return_value=return_value@entry=0x0, instance=instance@entry=0x559907a14800, args=args@entry=0x7ffd82b77c00, n_params=1, param_types=0x5598fd8ce300) at ../gobject/gclosure.c:893
#14 0x00007feb6600d832 in g_signal_emit_valist (instance=0x559907a14800, signal_id=<optimized out>, detail=0, var_args=var_args@entry=0x7ffd82b77c00) at ../gobject/gsignal.c:3406
#15 0x00007feb6600dd9f in g_signal_emit (instance=instance@entry=0x559907a14800, signal_id=<optimized out>, detail=detail@entry=0) at ../gobject/gsignal.c:3553
#16 0x00007feb627cc5dd in gtk_container_remove (container=0x559907a14800 [ImmobilizedViewport], widget=0x5598fdf48fa0 [GtkGrid]) at /usr/src/debug/gtk3-3.24.30-2.3.x86_64/gtk/gtkcontainer.c:1906
#17 0x00007feb62f9f31e in ~GtkInstanceScrolledWindow() () at /usr/src/debug/libreoffice-7.2.2.2-1.4.x86_64/vcl/unx/gtk3/gtkinst.cxx:7757
#18 0x00007feb62f9f446 in virtual thunk to (anonymous namespace)::GtkInstanceScrolledWindow::~GtkInstanceScrolledWindow() () at /usr/src/debug/libreoffice-7.2.2.2-1.4.x86_64/vcl/unx/gtk3/gtkinst.cxx:7785
#19 0x00007feb69849dc5 in std::default_delete<weld::ScrolledWindow>::operator()(weld::ScrolledWindow*) const () at /usr/include/c++/11/bits/unique_ptr.h:85
#20 std::unique_ptr<weld::ScrolledWindow, std::default_delete<weld::ScrolledWindow> >::~unique_ptr() () at /usr/include/c++/11/bits/unique_ptr.h:361
#21 SvxRubyDialog::~SvxRubyDialog() () at /usr/src/debug/libreoffice-7.2.2.2-1.4.x86_64/svx/source/dialog/rubydialog.cxx:258
#22 0x00007feb688794fa in std::_Sp_counted_base<(__gnu_cxx::_Lock_policy)2>::_M_release() () at /usr/include/c++/11/bits/shared_ptr_base.h:168
#23 0x00007feb6934caf2 in std::__shared_count<(__gnu_cxx::_Lock_policy)2>::~__shared_count() () at /usr/include/c++/11/bits/shared_ptr_base.h:705
#24 std::__shared_ptr<SfxDialogController, (__gnu_cxx::_Lock_policy)2>::~__shared_ptr() () at /usr/include/c++/11/bits/shared_ptr_base.h:1154
#25 std::shared_ptr<SfxDialogController>::~shared_ptr() () at /usr/include/c++/11/bits/shared_ptr.h:122
#26 ~<lambda> () at /usr/src/debug/libreoffice-7.2.2.2-1.4.x86_64/sfx2/source/appl/workwin.cxx:1010
#27 _M_destroy () at /usr/include/c++/11/bits/std_function.h:174
#28 _M_manager () at /usr/include/c++/11/bits/std_function.h:200
#29 _M_manager(std::_Any_data&, std::_Any_data const&, std::_Manager_operation) (__dest=..., __source=..., __op=0) at /usr/include/c++/11/bits/std_function.h:283
#30 0x00007feb62fa2672 in std::_Function_base::~_Function_base() () at /usr/include/c++/11/bits/std_function.h:245
#31 std::function<void (int)>::~function() () at /usr/include/c++/11/bits/std_function.h:328
#32 asyncresponse(gint) (this=0x559907f07800, ret=-2101903904) at /usr/src/debug/libreoffice-7.2.2.2-1.4.x86_64/vcl/unx/gtk3/gtkinst.cxx:8850
#33 0x00007feb65ff6ba8 in g_cclosure_marshal_VOID__BOOLEANv
    (closure=<optimized out>, return_value=<optimized out>, instance=<optimized out>, args=<optimized out>, marshal_data=<optimized out>, n_params=<optimized out>, param_types=0x5598fe06faa0) at ../gobject/gmarshal.c:272
#34 0x00007feb65ff4969 in _g_closure_invoke_va
    (closure=closure@entry=0x559907f18020, return_value=return_value@entry=0x0, instance=instance@entry=0x5598fe2d0e70, args=args@entry=0x7ffd82b78070, n_params=1, param_types=0x5598fe06faa0) at ../gobject/gclosure.c:893
#35 0x00007feb6600d832 in g_signal_emit_valist (instance=0x5598fe2d0e70, signal_id=<optimized out>, detail=0, var_args=var_args@entry=0x7ffd82b78070) at ../gobject/gsignal.c:3406
#36 0x00007feb6600dd9f in g_signal_emit (instance=<optimized out>, signal_id=<optimized out>, detail=<optimized out>) at ../gobject/gsignal.c:3553
#38 0x00007feb66007086 in <emit signal ??? on instance 0x5598fe2d0e70 [GtkDialog]> (node=<optimized out>, detail=0, instance=0x5598fe2d0e70, emission_return=0x0, instance_and_params=0x5599048a4470)
    at ../gobject/gsignal.c:3742
    #37 0x00007feb65ff473f in g_closure_invoke
    (closure=0x5598fdf27bf0, return_value=return_value@entry=0x0, n_param_values=1, param_values=param_values@entry=0x5599048a4470, invocation_hint=invocation_hint@entry=0x7ffd82b78260) at ../gobject/gclosure.c:830
#39 0x00007feb6277e784 in gtk_binding_entry_activate (entry=0x5598fda25ee0, object=object@entry=0x5598fe2d0e70 [GtkDialog]) at /usr/src/debug/gtk3-3.24.30-2.3.x86_64/gtk/gtkbindings.c:646
--Type <RET> for more, q to quit, c to continue without paging--
#40 0x00007feb6277ec18 in binding_activate
    (binding_set=binding_set@entry=0x5598fd959800, entries=entries@entry=0x559907df2cb0 = {...}, object=object@entry=0x5598fe2d0e70 [GtkDialog], is_release=is_release@entry=0, unbound=unbound@entry=0x7ffd82b7841c)
    at /usr/src/debug/gtk3-3.24.30-2.3.x86_64/gtk/gtkbindings.c:1455
#41 0x00007feb62780701 in gtk_bindings_activate_list (object=object@entry=0x5598fe2d0e70 [GtkDialog], entries=entries@entry=0x559907df2cb0 = {...}, is_release=0)
    at /usr/src/debug/gtk3-3.24.30-2.3.x86_64/gtk/gtkbindings.c:1514
#42 0x00007feb627809a2 in gtk_bindings_activate_event (event=0x559903a66c70, object=0x5598fe2d0e70 [GtkDialog]) at /usr/src/debug/gtk3-3.24.30-2.3.x86_64/gtk/gtkbindings.c:1601
#43 gtk_bindings_activate_event (object=0x5598fe2d0e70 [GtkDialog], event=0x559903a66c70) at /usr/src/debug/gtk3-3.24.30-2.3.x86_64/gtk/gtkbindings.c:1581
#48 0x00007feb6600dd9f in <emit signal ??? on instance 0x5598fe2d0e70 [GtkDialog]> (instance=instance@entry=0x5598fe2d0e70, signal_id=<optimized out>, detail=detail@entry=0) at ../gobject/gsignal.c:3553
    #44 0x00007feb62a351d7 in _gtk_marshal_BOOLEAN__BOXED
    (closure=0x5598fd8c3fc0, return_value=0x7ffd82b78600, n_param_values=<optimized out>, param_values=0x7ffd82b78660, invocation_hint=<optimized out>, marshal_data=<optimized out>)
    at /usr/src/debug/gtk3-3.24.30-2.3.x86_64/gtk/gtkmarshalers.c:83
    #45 0x00007feb65ff473f in g_closure_invoke
    (closure=closure@entry=0x5598fd8c3fc0, return_value=return_value@entry=0x7ffd82b78600, n_param_values=2, param_values=param_values@entry=0x7ffd82b78660, invocation_hint=invocation_hint@entry=0x7ffd82b785e0)
    at ../gobject/gclosure.c:830
    #46 0x00007feb66006a74 in signal_emit_unlocked_R
    (node=<optimized out>, detail=detail@entry=0, instance=instance@entry=0x5598fe2d0e70, emission_return=emission_return@entry=0x7ffd82b78750, instance_and_params=instance_and_params@entry=0x7ffd82b78660)
    at ../gobject/gsignal.c:3781
    #47 0x00007feb6600d4fb in g_signal_emit_valist (instance=<optimized out>, signal_id=<optimized out>, detail=<optimized out>, var_args=var_args@entry=0x7ffd82b78800) at ../gobject/gsignal.c:3507
#49 0x00007feb629fc7a4 in gtk_widget_event_internal.part.0.lto_priv.0 (widget=0x5598fe2d0e70 [GtkDialog], event=0x559903a66c70) at /usr/src/debug/gtk3-3.24.30-2.3.x86_64/gtk/gtkwidget.c:7808
#50 0x00007feb628a469f in propagate_event (widget=widget@entry=0x5598fe2d0e70 [GtkDialog], event=event@entry=0x559903a66c70, captured=captured@entry=0, topmost=topmost@entry=0x0)
    at /usr/src/debug/gtk3-3.24.30-2.3.x86_64/gtk/gtkmain.c:2681
#51 0x00007feb628a470f in gtk_propagate_event (widget=widget@entry=0x5598fe2d0e70 [GtkDialog], event=event@entry=0x559903a66c70) at /usr/src/debug/gtk3-3.24.30-2.3.x86_64/gtk/gtkmain.c:2725
#52 0x00007feb628a548a in gtk_main_do_event (event=<optimized out>) at /usr/src/debug/gtk3-3.24.30-2.3.x86_64/gtk/gtkmain.c:1921
#53 gtk_main_do_event (event=<optimized out>) at /usr/src/debug/gtk3-3.24.30-2.3.x86_64/gtk/gtkmain.c:1691
#54 0x00007feb6258d103 in _gdk_event_emit (event=0x559903a66c70) at /usr/src/debug/gtk3-3.24.30-2.3.x86_64/gdk/gdkevents.c:73
#55 _gdk_event_emit (event=0x559903a66c70) at /usr/src/debug/gtk3-3.24.30-2.3.x86_64/gdk/gdkevents.c:67
#56 0x00007feb625f2232 in gdk_event_source_dispatch (base=base@entry=0x5598fd87f830, callback=<optimized out>, data=<optimized out>) at wayland/gdkeventsource.c:124
#57 0x00007feb65efed5f in g_main_dispatch (context=0x5598fd869a80) at ../glib/gmain.c:3381
#58 g_main_context_dispatch (context=0x5598fd869a80) at ../glib/gmain.c:4099
#59 0x00007feb65eff0e8 in g_main_context_iterate (context=context@entry=0x5598fd869a80, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/gmain.c:4175
#60 0x00007feb65eff19f in g_main_context_iteration (context=0x5598fd869a80, may_block=1) at ../glib/gmain.c:4240
#61 0x00007feb62f80883 in GtkSalData::Yield(bool, bool) () at /usr/src/debug/libreoffice-7.2.2.2-1.4.x86_64/vcl/unx/gtk3/gtkdata.cxx:391
#62 GtkInstance::DoYield(bool, bool) (this=0x559907b1d600, bWait=true, bHandleAllCurrentEvents=false) at /usr/src/debug/libreoffice-7.2.2.2-1.4.x86_64/vcl/unx/gtk3/gtkinst.cxx:422
#63 0x00007feb6a3fbdf2 in ImplYield(bool, bool) (i_bWait=false, i_bAllEvents=192) at /usr/src/debug/libreoffice-7.2.2.2-1.4.x86_64/vcl/source/app/svapp.cxx:465
#64 0x00007feb6a423d85 in Application::Execute() () at /usr/src/debug/libreoffice-7.2.2.2-1.4.x86_64/vcl/source/app/svapp.cxx:444
#65 0x00007feb695b88fe in desktop::Desktop::Main() (this=0x7ffd82b78f90) at /usr/src/debug/libreoffice-7.2.2.2-1.4.x86_64/desktop/source/app/app.cxx:1587
#66 0x00007feb6a426b52 in ImplSVMain() () at /usr/src/debug/libreoffice-7.2.2.2-1.4.x86_64/vcl/source/app/svmain.cxx:199
#67 0x00007feb695b5e7b in soffice_main() () at /usr/src/debug/libreoffice-7.2.2.2-1.4.x86_64/desktop/source/app/sofficemain.cxx:98
#68 0x00005598fa9f87cc in sal_main () at /usr/src/debug/libreoffice-7.2.2.2-1.4.x86_64/desktop/source/app/main.c:49
#69 main (argc=129095168, argv=0x5598fd8b44c0) at /usr/src/debug/libreoffice-7.2.2.2-1.4.x86_64/desktop/source/app/main.c:47
Comment 1 Xisco Faulí 2021-10-27 09:56:08 UTC
I can't reproduce it in

Version: 7.3.0.0.alpha0+ / LibreOffice Community
Build ID: ca74611acfef50280a2c1f785448d9a09cca5a0d
CPU threads: 4; OS: Linux 5.10; UI render: default; VCL: gtk3
Locale: en-US (en_US.UTF-8); UI: en-US
Calc: threaded
Comment 2 Julien Nabet 2021-10-27 18:37:06 UTC
On pc Debian x86-64 with master sources updated today + gtk3 rendering, I don't have a crash or log about gtk_widget_Set_sensitive.

I launched Writer then Format/Asian Phonetic Guide..., then closed directly.

Could you give a try at https://wiki.documentfoundation.org/QA/FirstSteps#Corrupted_user_profile ?
Comment 3 David Gow 2021-10-28 09:49:23 UTC
Alas, this still occurs for me even with a fresh user profile.

I've also tested it under X11: the issue still occurs. Using the kf5 VCL backend (under X11), the ruby dialog works fine: no crash.

Maybe this is an OpenSUSE or GTK+ issue, though, as I can't seem to reproduce it on Ubuntu's 7.2.2.2 package.

(I'm going to be away for the next few days, so won't have a chance to test any further right now, though…)
Comment 4 Julien Nabet 2021-10-29 14:44:50 UTC
If you can't reproduce this on Ubuntu and since we can't reproduce this too, I think you should submit a bugtracker on OpenSUSE.
Comment 5 Ben.Engbers@Be-Logical.nl 2021-12-01 15:31:05 UTC
This also happens on my Fedora35 installation.
When I close the dialog with the "Close"-button at the bottom, mosty nothing happens.
When I close with the cross in the upper right corner or if I hit the ESC, it is nearly certain that LO crashes
Comment 6 Julien Nabet 2021-12-01 20:25:03 UTC
(In reply to Ben.Engbers@Be-Logical.nl from comment #5)
> This also happens on my Fedora35 installation.
> When I close the dialog with the "Close"-button at the bottom, mosty nothing
> happens.
> When I close with the cross in the upper right corner or if I hit the ESC,
> it is nearly certain that LO crashes

What's your precise LO version in Fedora 35 + could you rename your LO directory profile (see https://wiki.documentfoundation.org/QA/FirstSteps#Corrupted_user_profile) and give a new try?
Comment 7 David Gow 2021-12-02 05:43:19 UTC
FYI: I can no longer reproduce this, some OpenSUSE update likely fixed it.
Comment 8 Ben.Engbers@Be-Logical.nl 2021-12-05 17:51:49 UTC
I use LO 7.2.3.2
After creating a new profile, my first impression was that the problem was solved.
But after adding the following extensions:
chorddiagrams-1-1-1-libreoffice.oxt
chordtransposer-1-1-6-libreoffice.oxt
Grammalecte (pack) 7.4
LanguageTool-5.1.3.oxt

LO crashed again after closing the Phonetic guide with the escape.
Comment 9 Julien Nabet 2021-12-05 19:30:07 UTC
(In reply to Ben.Engbers@Be-Logical.nl from comment #8)
> ...
> LO crashed again after closing the Phonetic guide with the escape.
Since it's ok for the reporter, please submit a new bugtracker.
After this you can try to remove (or perhaps disabling would be sufficient?) 1 by one each extension to pinpoint the one which triggers the pb + provide a backtrace (see https://wiki.documentfoundation.org/QA/BugReport/Debug_Information)
Comment 10 Ben.Engbers@Be-Logical.nl 2021-12-06 09:41:04 UTC
Disabling all the extensions didn't help..
Comment 11 Julien Nabet 2021-12-06 19:23:09 UTC
(In reply to Ben.Engbers@Be-Logical.nl from comment #10)
> Disabling all the extensions didn't help..

Like this one where OpenSuse was the culprit, the pb might be in Fedora.
Now you can still submit a new bugtracker on LO just in case it's not Fedora's fault.