Bug 227245

Summary: [a11y] openoffice.org segfaults on exit in at-spi atexit
Product: [Fedora] Fedora Reporter: Michal Jaegermann <michal>
Component: openoffice.orgAssignee: Caolan McNamara <caolanm>
Status: CLOSED RAWHIDE QA Contact:
Severity: medium Docs Contact:
Priority: medium    
Version: rawhideCC: mclasen
Target Milestone: ---   
Target Release: ---   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: 2.2.0-5.2 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2007-02-06 11:09:02 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Attachments:
Description Flags
OOo bandaid none

Description Michal Jaegermann 2007-02-03 22:12:26 UTC
Description of problem:

Running in a terminal window one gets:
/usr/lib64/openoffice.org/program/soffice: line 222: 23556 Segmentation fault
which happens every time when program exits.

I did not check what happens if exiting the program exits with anything
but an empty writer window; the above was "open-and-exit".

To see this with more detail one can try:
$ sh -x /usr/lib64/openoffice.org/program/soffice -writer
+ '[' -z ']'
+ export SAL_USE_VCLPLUGIN=gtk
+ SAL_USE_VCLPLUGIN=gtk
+ export SAL_ENABLE_NATIVE_XFONTS=0
+ SAL_ENABLE_NATIVE_XFONTS=0
+ SAL_ENABLE_FILE_LOCKING=1
+ export SAL_ENABLE_FILE_LOCKING
++ uname -s
+ sd_platform=Linux
++ uname -m
+ '[' Linux = Linux -a x86_64 = ppc ']'
++ pwd
+ sd_cwd=/root
+ '[' -h /usr/lib64/openoffice.org/program/soffice ']'
++ dirname /usr/lib64/openoffice.org/program/soffice
+ cd /usr/lib64/openoffice.org/program
++ pwd
+ sd_prog=/usr/lib64/openoffice.org/program
+ cd ..
++ basename /usr/lib64/openoffice.org/program/soffice
+ sd_binary=soffice.bin
++ pwd
+ sd_inst=/usr/lib64/openoffice.org
+ cd /root
+ case $sd_platform in
+ '[' ']'
+ LD_LIBRARY_PATH=/usr/lib64/openoffice.org/program
+ export LD_LIBRARY_PATH
+ for arg in '$@'
+ case "$arg" in
+ '[' -x /usr/lib64/openoffice.org/program/javaldx ']'
++ /usr/lib64/openoffice.org/program/javaldx
+ java_ld_library_path=
+ '[' '' '!=' '' ']'
+ OPENOFFICE_MOZILLA_FIVE_HOME=/usr/lib64/openoffice.org/program
+ export OPENOFFICE_MOZILLA_FIVE_HOME
+ unset XENVIRONMENT
+ for sd_arg in '${1+"$@"}'
+ case ${sd_arg} in
+ sd_binary=swriter.bin
+ break
+ '['
/usr/lib64/qt-3.3/bin:/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin:/root/bin
']'
+
PATH=/usr/lib64/openoffice.org/program:/usr/lib64/qt-3.3/bin:/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin:/root/bin
+ export PATH
+ /usr/lib64/openoffice.org/program/swriter.bin -writer
+ trap 'kill -9 $!' TERM
+ wait 23556
GTK Accessibility Module initialized
libGL warning: 3D driver claims to not support visual 0x4b
GTK Accessibility Module shutdown
/usr/lib64/openoffice.org/program/soffice: line 222: 23556 Segmentation fault  
 "$sd_prog/$sd_binary" "$@"
+ '[' 139 -eq 79 ']'
+ exit

The above does not dump core even if 'ulimit' for the account sets
core size to unlimited.

With a script modified to run binaries under gdb this is not much more
illuminating:

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 46912496327472 (LWP 23841)]
0x00002aaaaaf0225e in main ()
   from /usr/lib64/openoffice.org/program/libvclplug_gtk680lx.so
(gdb) where
#0  0x00002aaaaaf0225e in main ()
   from /usr/lib64/openoffice.org/program/libvclplug_gtk680lx.so
(gdb) c
Continuing.

Program terminated with signal SIGSEGV, Segmentation fault.
The program no longer exists.
(gdb) q

I have no idea of a 32-bit version does the same or not.

Version-Release number of selected component (if applicable):
openoffice.org-2.2.0-5.1

How reproducible:
always

Comment 1 Caolan McNamara 2007-02-05 12:01:01 UTC
This is triggered by an at-spi change where there are some glib thread stuff is
now called in an atexit function. OOo has overridden the g_thread lock functions
and OOo tried to shutdown a11y before shutting down it's gtk vcl plugin which
destroys stuff which the g_thread_lock overrides requires but OOo can't cancel
the execution of the registered at-spi atexit which will try and use the thread
lockers. I can hack around this in the thread lockers to check to see if their
requirements have disappeared when they get called after the fact in the at-spi
shutdown but it's ugly.

caolanm->mclasen: I suspect you'll begin seeing upstream bugreports about
vanilla OOo crashing against the newer at-spis.

Comment 2 Caolan McNamara 2007-02-05 12:03:27 UTC
Created attachment 147348 [details]
OOo bandaid

Comment 3 Matthias Clasen 2007-02-05 13:47:33 UTC
the atexit function in atk-bridge/bridge.c has the following comment:

  /*
   *  FIXME: this may be incorrect for apps that do their own bonobo
   *  shutdown, until we can explicitly shutdown to get the ordering
   *  right.
   */

So at least there is some awareness of ordering issues. Did you file
an upstream bug for this ?


Comment 4 Caolan McNamara 2007-02-05 14:06:12 UTC
logged as http://bugzilla.gnome.org/show_bug.cgi?id=404592

Comment 5 Caolan McNamara 2007-02-06 11:09:02 UTC
Should be a non-crasher in openoffice.org-2.2.0-5.2