Apache OpenOffice (AOO) Bugzilla – Issue 80589
[a11y] OOo simpress crashes when trying to change view modes.
Last modified: 2008-05-22 11:46:54 UTC
See also Orca bug #465449, which is blocked by this issue. http://bugzilla.gnome.org/show_bug.cgi?id=465449 (There doesn't seem to be a "Found in version:" entry for OOo-dev 2.3.0 on this bug report web page). This is with OOo-dev 2.3.0 (build #223) Linux RPMs on Ubuntu Gutsy (with all the latest updates and with Orca from SVN HEAD). I've been working through the simpress tutorial at: http://www.ischool.utexas.edu/technology/tutorials/office/impress/ I got as far as the instructions on: http://www.ischool.utexas.edu/technology/tutorials/office/impress/01c_alt_view.html The slide presentation area has tabs for Normal, Outline, Notes, Handout and Slide Sorter. By default, the Normal view is shown. I was trying to change the view to outline mode via the View->Outline menu ite. simpress crashed: ** ERROR **: file base.c: line 74 (spi_base_construct): assertion failed: (G_IS_OBJECT (gobject)) aborting... Fatal exception: Signal 5 Stack: /opt/ooo-dev2.3/program/libuno_sal.so.3[0xb726abc8] /opt/ooo-dev2.3/program/libuno_sal.so.3[0xb726acf2] /opt/ooo-dev2.3/program/libuno_sal.so.3[0xb726ad9f] [0xffffe420] /usr/lib/libglib-2.0.so.0(g_log+0x29)[0xb52ddfa9] /usr/lib/libglib-2.0.so.0(g_assert_warning+0x76)[0xb52de026] /usr/lib/libspi.so.0[0xb4edf667] /usr/lib/libspi.so.0(spi_state_set_new+0x63)[0xb4ee3bb3] /usr/lib/libspi.so.0[0xb4ede5a8] /usr/lib/libspi.so.0(_ORBIT_skel_small_Accessibility_Accessible_getState+0x16)[0xb4eda8c6] /usr/lib/libORBit-2.so.0[0xb4e16d37] /usr/lib/libORBit-2.so.0(ORBit_OAObject_invoke+0x35)[0xb4e1cea5] /usr/lib/libORBit-2.so.0(ORBit_small_invoke_adaptor+0x53c)[0xb4e09fcc] /usr/lib/libORBit-2.so.0[0xb4e1ab46] /usr/lib/libORBit-2.so.0[0xb4e1b1f2] /usr/lib/libORBit-2.so.0[0xb4e1bc63] /usr/lib/libORBit-2.so.0(ORBit_handle_request+0xa2)[0xb4e1d042] /usr/lib/libORBit-2.so.0(giop_connection_handle_input+0x2c7)[0xb4e06257] /usr/lib/libORBit-2.so.0[0xb4e23d8d] /usr/lib/libORBit-2.so.0[0xb4e26c8e] /usr/lib/libglib-2.0.so.0(g_main_context_dispatch+0x17c)[0xb52d518c] /usr/lib/libglib-2.0.so.0[0xb52d85cf] /usr/lib/libglib-2.0.so.0(g_main_context_iteration+0x65)[0xb52d8b35] /usr/lib/libORBit-2.so.0(link_main_iteration+0x27)[0xb4e224e7] /usr/lib/libORBit-2.so.0(giop_recv_buffer_get+0x5e)[0xb4e059ae] /usr/lib/libORBit-2.so.0(ORBit_small_invoke_stub+0x118)[0xb4e0a558] /usr/lib/libORBit-2.so.0(ORBit_small_invoke_stub_n+0x7e)[0xb4e0a77e] /usr/lib/libORBit-2.so.0(ORBit_c_stub_invoke+0x182)[0xb4e16f62] /usr/lib/libspi.so.0(Accessibility_EventListener_notifyEvent+0x74)[0xb4ecb624] /usr/lib/gtk-2.0/modules/libatk-bridge.so[0xb4f97fc8] /usr/lib/gtk-2.0/modules/libatk-bridge.so[0xb4f98fdc] /usr/lib/libgobject-2.0.so.0[0xb53864a1] /usr/lib/libgobject-2.0.so.0(g_signal_emit_valist+0x823)[0xb5387b83] /usr/lib/libgobject-2.0.so.0(g_signal_emit+0x29)[0xb5387e29] /usr/lib/libatk-1.0.so.0(atk_object_notify_state_change+0x87)[0xb54154d7] /opt/ooo-dev2.3/program/libvclplug_gtk680li.so(_ZN11AtkListener9disposingERKN3com3sun4star4lang11EventObjectE+0x3d)[0xb58958dd] /opt/ooo-dev2.3/program/libuno_cppuhelpergcc3.so.3(_ZN4cppu25OInterfaceContainerHelper15disposeAndClearERKN3com3sun4star4lang11EventObjectE+0xef)[0xb7481f77] /opt/ooo-dev2.3/program/libcomphelp4gcc3.so(_ZN10comphelper23AccessibleEventNotifier27revokeClientNotifyDisposingEmRKN3com3sun4star3uno9ReferenceINS4_10XInterfaceEEE+0x1cd)[0xb75f9545] /opt/ooo-dev2.3/program/libcomphelp4gcc3.so(_ZN10comphelper24OAccessibleContextHelper9disposingEv+0x4c)[0xb75e6362] /opt/ooo-dev2.3/program/libtk680li.so(_ZN23VCLXAccessibleComponent9disposingEv+0x66)[0xb70d9bde] /opt/ooo-dev2.3/program/libacc680li.so[0xae1f63cb] /opt/ooo-dev2.3/program/libuno_cppuhelpergcc3.so.3(_ZN4cppu30WeakAggComponentImplHelperBase7disposeEv+0x8a)[0xb746d3e8] /opt/ooo-dev2.3/program/libtk680li.so(_ZN10VCLXWindow7disposeEv+0x1f0)[0xb70fafea] /opt/ooo-dev2.3/program/libvcl680li.so(_ZN6WindowD2Ev+0x7d0)[0xb7e46644] /opt/ooo-dev2.3/program/libvcl680li.so(_ZN13DockingWindowD2Ev+0x68)[0xb7df0162] /opt/ooo-dev2.3/program/libvcl680li.so(_ZN7ToolBoxD2Ev+0x196)[0xb7e1ea9a] /opt/ooo-dev2.3/program/libfwk680li.so[0xb1a18ea8] /opt/ooo-dev2.3/program/libfwk680li.so[0xb1a07676] /opt/ooo-dev2.3/program/libfwk680li.so[0xb1a0d98a] /opt/ooo-dev2.3/program/libfwk680li.so[0xb1a0624d] /opt/ooo-dev2.3/program/libfwk680li.so[0xb1958530] /opt/ooo-dev2.3/program/libsd680li.so[0xb054254c] /opt/ooo-dev2.3/program/libsd680li.so[0xb05426c3] /opt/ooo-dev2.3/program/libsd680li.so[0xb080172d] /opt/ooo-dev2.3/program/libsd680li.so[0xb07e195c] /opt/ooo-dev2.3/program/libsd680li.so[0xb07e202f] /opt/ooo-dev2.3/program/libsd680li.so[0xb07e21f0] /opt/ooo-dev2.3/program/libsd680li.so[0xb07e28f6] /opt/ooo-dev2.3/program/libsd680li.so[0xb07d6e95] /opt/ooo-dev2.3/program/libsd680li.so[0xb07d6ef8] /opt/ooo-dev2.3/program/libvcl680li.so[0xb7e4b9ca] /opt/ooo-dev2.3/program/libvclplug_gen680li.so(_ZN10SalDisplay21DispatchInternalEventEv+0xb6)[0xb526aef6] /opt/ooo-dev2.3/program/libvclplug_gtk680li.so[0xb5891c63] /opt/ooo-dev2.3/program/libvclplug_gtk680li.so[0xb5891c8d] /usr/lib/libglib-2.0.so.0[0xb52d35c1] /usr/lib/libglib-2.0.so.0(g_main_context_dispatch+0x17c)[0xb52d518c] /usr/lib/libglib-2.0.so.0[0xb52d85cf] /usr/lib/libglib-2.0.so.0(g_main_context_iteration+0x65)[0xb52d8b35] /opt/ooo-dev2.3/program/libvclplug_gtk680li.so[0xb58910d6] /opt/ooo-dev2.3/program/libvclplug_gen680li.so(_ZN14X11SalInstance5YieldEbb+0x2c)[0xb52724a6] /opt/ooo-dev2.3/program/libvcl680li.so(_ZN11Application5YieldEb+0x5f)[0xb7c84113] /opt/ooo-dev2.3/program/libvcl680li.so(_ZN11Application7ExecuteEv+0x2f)[0xb7c84165] /opt/ooo-dev2.3/program/soffice.bin(_ZN7desktop7Desktop4MainEv+0x2124)[0x806c4d8] /opt/ooo-dev2.3/program/libvcl680li.so[0xb7c89ac8] /opt/ooo-dev2.3/program/libvcl680li.so(_Z6SVMainv+0x29)[0xb7c89c53] /opt/ooo-dev2.3/program/soffice.bin(main+0xe2)[0x805ed76] /lib/tls/i686/cmov/libc.so.6(__libc_start_main+0xe0)[0xb6c26050] /opt/ooo-dev2.3/program/soffice.bin(_ZN6Window11RequestHelpERK9HelpEvent+0x39)[0x805ec01]
There is no stabile build of 2.3 yet. The version, you found that bug first, has to be set to 680m223. I change the version.
Reassigned
This works here in m222 but crashes m225 and also OOG-m1. Lowered prio to p2. This seems to be a showstopper...
The ID of the error report is r9mtfn.
It took some time but I know now what happens. When the views are switched toolbars are exchanged. Some are disposed while others are created and displayed. For some reason, maybe a due to a timing problem, one of the just disposed toolbars (or one that is being disposed (not yet finished)) is asked by GTK accessibility for its state set. This leads to a call to wrapper_ref_state_set() in vcl/unx/gtk/a11y/atkwrapper.cxx. An AtkStateSet object is created to be filled with the appropriate values. Calling getAccessibleStateSet() at the accessibility object of the toolbar, however, leads to a DisposedException being thrown. This exception is caught, but not the empty state set object is returned but a NULL pointer (empty reference). Although this seems to be a valid return value for _AtkObjectClass.ref_state_set, the returned NULL pointer is not handled gracefully by imp_accessibility_accessible_get_state() in at-spi-1.*/libspi/accessible.c. Instead of handling it like a missing object it is passed to spi_state_set_new() and then to spi_base_construct() where a g_assert(G_IS_OBJECT(gobject)) leads to a sudden termination. Possible fixes are: 1. wrapper_ref_state_set() should not return a NULL pointer but an empty AtkStateSet instead. 2. imp_accessibility_accessible_get_state() should handle the NULL pointer (without crashing) instead of just passing it on.
I'll try to change the OOo code to returns a state set with DEFUNCT state only, which is probably the right thing to do here. But as libspi should not cause the application to crash, I filed http://bugzilla.gnome.org/show_bug.cgi?id=467612 .
Fix commited in CWS atkbridge7.
please verify.
Verified in CWS.
Closed.