Bug 202165
Summary: | openoffice.org segfaults on startup [incompatible /usr/local/lib/libstdc++] | ||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Product: | [Fedora] Fedora | Reporter: | Roberto Bagnara <bagnara> | ||||||||||||||||||
Component: | openoffice.org | Assignee: | Caolan McNamara <caolanm> | ||||||||||||||||||
Status: | CLOSED UPSTREAM | QA Contact: | |||||||||||||||||||
Severity: | medium | Docs Contact: | |||||||||||||||||||
Priority: | medium | ||||||||||||||||||||
Version: | 5 | ||||||||||||||||||||
Target Milestone: | --- | ||||||||||||||||||||
Target Release: | --- | ||||||||||||||||||||
Hardware: | athlon | ||||||||||||||||||||
OS: | Linux | ||||||||||||||||||||
Whiteboard: | |||||||||||||||||||||
Fixed In Version: | Doc Type: | Bug Fix | |||||||||||||||||||
Doc Text: | Story Points: | --- | |||||||||||||||||||
Clone Of: | Environment: | ||||||||||||||||||||
Last Closed: | 2006-09-04 14:29:33 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
Roberto Bagnara
2006-08-11 07:44:34 UTC
Well, that's a crash on the very first UNO exception, which points to a selinux related problem, what's the output of /usr/sbin/sestatus $ /usr/sbin/sestatus SELinux status: disabled that's a headscratcher then Does this happen to you still, and on every start up ? Sometimes I wonder about e.g. interrupted prelinking operations, if it was that, then removing OOo and reinstalling it would clear the problem. Otherwise I'll sit down and do a full valgrind of OOo startup It still happens, on every startup: $ ooffice /usr/lib/openoffice.org2.0/program/soffice: line 151: 20232 Segmentation fault "$sd_prog/$sd_binary" "$@" Is there a way to redu the prelinking without reinstalling? Reinstalling, for me and right now, would mean two days of download. Concerning valgrind, should I use some specific options? Without any option, what I get is: $ valgrind /usr/lib/openoffice.org2.0/program/soffice ==20243== Memcheck, a memory error detector. ==20243== Copyright (C) 2002-2006, and GNU GPL'd, by Julian Seward et al. ==20243== Using LibVEX rev 1606, a library for dynamic binary translation. ==20243== Copyright (C) 2004-2006, and GNU GPL'd, by OpenWorks LLP. ==20243== Using valgrind-3.2.0, a dynamic binary instrumentation framework. ==20243== Copyright (C) 2000-2006, and GNU GPL'd, by Julian Seward et al. ==20243== For more details, rerun with: -v ==20243== ==20247== ==20247== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 17 from 1) ==20247== malloc/free: in use at exit: 17,483 bytes in 617 blocks. ==20247== malloc/free: 1,020 allocs, 403 frees, 35,311 bytes allocated. ==20247== For counts of detected errors, rerun with: -v ==20247== searching for pointers to 617 not-freed blocks. ==20247== checked 109,488 bytes. ==20247== ==20247== LEAK SUMMARY: ==20247== definitely lost: 0 bytes in 0 blocks. ==20247== possibly lost: 0 bytes in 0 blocks. ==20247== still reachable: 17,483 bytes in 617 blocks. ==20247== suppressed: 0 bytes in 0 blocks. ==20247== Reachable blocks (those to which a pointer was found) are not shown. ==20247== To see them, rerun with: --show-reachable=yes ==20249== ==20249== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 17 from 1) ==20249== malloc/free: in use at exit: 17,745 bytes in 636 blocks. ==20249== malloc/free: 1,201 allocs, 565 frees, 40,844 bytes allocated. ==20249== For counts of detected errors, rerun with: -v ==20249== searching for pointers to 636 not-freed blocks. ==20249== checked 109,832 bytes. ==20249== ==20249== LEAK SUMMARY: ==20249== definitely lost: 0 bytes in 0 blocks. ==20249== possibly lost: 0 bytes in 0 blocks. ==20249== still reachable: 17,745 bytes in 636 blocks. ==20249== suppressed: 0 bytes in 0 blocks. ==20249== Reachable blocks (those to which a pointer was found) are not shown. ==20249== To see them, rerun with: --show-reachable=yes ==20251== ==20251== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 17 from 1) ==20251== malloc/free: in use at exit: 17,974 bytes in 650 blocks. ==20251== malloc/free: 1,308 allocs, 658 frees, 43,868 bytes allocated. ==20251== For counts of detected errors, rerun with: -v ==20251== searching for pointers to 650 not-freed blocks. ==20251== checked 110,068 bytes. ==20251== ==20251== LEAK SUMMARY: ==20251== definitely lost: 0 bytes in 0 blocks. ==20251== possibly lost: 0 bytes in 0 blocks. ==20251== still reachable: 17,974 bytes in 650 blocks. ==20251== suppressed: 0 bytes in 0 blocks. ==20251== Reachable blocks (those to which a pointer was found) are not shown. ==20251== To see them, rerun with: --show-reachable=yes /usr/lib/openoffice.org2.0/program/soffice: line 151: 20254 Segmentation fault "$sd_prog/$sd_binary" "$@" ==20243== ==20243== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 17 from 1) ==20243== malloc/free: in use at exit: 22,960 bytes in 691 blocks. ==20243== malloc/free: 2,315 allocs, 1,624 frees, 79,348 bytes allocated. ==20243== For counts of detected errors, rerun with: -v ==20243== searching for pointers to 691 not-freed blocks. ==20243== checked 114,632 bytes. ==20243== ==20243== LEAK SUMMARY: ==20243== definitely lost: 0 bytes in 0 blocks. ==20243== possibly lost: 0 bytes in 0 blocks. ==20243== still reachable: 22,960 bytes in 691 blocks. ==20243== suppressed: 0 bytes in 0 blocks. ==20243== Reachable blocks (those to which a pointer was found) are not shown. ==20243== To see them, rerun with: --show-reachable=yes $ Please let me know if I can help with a slow Internet connection. soffice is a script, so try... valgrind /usr/lib/openoffice.org2.0/program/soffice.bin -writer undoing prelink on the OOo binaries should (in theory) be possible as root with prelink -u /usr/lib/openoffice.org2.0/program/* I did the prelink and it seemed not to change anything. With valgrind I got the following: $ valgrind /usr/lib/openoffice.org2.0/program/soffice.bin -writer ==21338== Memcheck, a memory error detector. ==21338== Copyright (C) 2002-2006, and GNU GPL'd, by Julian Seward et al. ==21338== Using LibVEX rev 1606, a library for dynamic binary translation. ==21338== Copyright (C) 2004-2006, and GNU GPL'd, by OpenWorks LLP. ==21338== Using valgrind-3.2.0, a dynamic binary instrumentation framework. ==21338== Copyright (C) 2000-2006, and GNU GPL'd, by Julian Seward et al. ==21338== For more details, rerun with: -v ==21338== ==21338== Syscall param write(buf) points to uninitialised byte(s) ==21338== at 0x4254023: __write_nocancel (in /lib/libc-2.4.so) ==21338== by 0x4F4950E: _X11TransWrite (in /usr/lib/libX11.so.6.2.0) ==21338== by 0x4F4F436: (within /usr/lib/libX11.so.6.2.0) ==21338== by 0x4F4F53A: _XReply (in /usr/lib/libX11.so.6.2.0) ==21338== by 0x4F35351: XInternAtom (in /usr/lib/libX11.so.6.2.0) ==21338== by 0x4F48FEB: XSetWMProperties (in /usr/lib/libX11.so.6.2.0) ==21338== by 0x6EDE287: (within /usr/lib/libgdk-x11-2.0.so.0.800.20) ==21338== by 0x6EE09E3: gdk_window_new (in /usr/lib/libgdk-x11-2.0.so.0.800.20) ==21338== by 0x6EBDF4C: gdk_display_open (in /usr/lib/libgdk-x11-2.0.so.0.800.20) ==21338== by 0x6E9CAEE: gdk_display_open_default_libgtk_only (in /usr/lib/libgdk-x11-2.0.so.0.800.20) ==21338== by 0x6C7FBFE: gtk_init_check (in /usr/lib/libgtk-x11-2.0.so.0.800.20) ==21338== by 0x6B19EB8: (within /usr/lib/openoffice.org2.0/program/libvclplug_gtk680li.so) ==21338== Address 0x6A61870 is 128 bytes inside a block of size 16,384 alloc'd ==21338== at 0x4020A06: calloc (vg_replace_malloc.c:279) ==21338== by 0x4F3A1A6: XOpenDisplay (in /usr/lib/libX11.so.6.2.0) ==21338== by 0x6EBDE11: gdk_display_open (in /usr/lib/libgdk-x11-2.0.so.0.800.20) ==21338== by 0x6E9CAEE: gdk_display_open_default_libgtk_only (in /usr/lib/libgdk-x11-2.0.so.0.800.20) ==21338== by 0x6C7FBFE: gtk_init_check (in /usr/lib/libgtk-x11-2.0.so.0.800.20) ==21338== by 0x6B19EB8: (within /usr/lib/openoffice.org2.0/program/libvclplug_gtk680li.so) ==21338== by 0x6B18FDD: (within /usr/lib/openoffice.org2.0/program/libvclplug_gtk680li.so) ==21338== by 0x6B1ACD0: create_SalInstance (in /usr/lib/openoffice.org2.0/program/libvclplug_gtk680li.so) ==21338== by 0x44E1FB0: (within /usr/lib/openoffice.org2.0/program/libvcl680li.so) ==21338== by 0x44E20B3: (within /usr/lib/openoffice.org2.0/program/libvcl680li.so) ==21338== by 0x43546C6: InitVCL(com::sun::star::uno::Reference<com::sun::star::lang::XMultiServiceFactory> const&) (in /usr/lib/openoffice.org2.0/program/libvcl680li.so) ==21338== by 0x4354831: (within /usr/lib/openoffice.org2.0/program/libvcl680li.so) ==21338== ==21338== Invalid read of size 4 ==21338== at 0x4B1A4FD: (within /usr/lib/openoffice.org2.0/program/libuno_cppuhelpergcc3.so.3) ==21338== by 0x4B1AB4C: (within /usr/lib/openoffice.org2.0/program/libuno_cppuhelpergcc3.so.3) ==21338== by 0x4B1B061: cppu::defaultBootstrap_InitialComponentContext() (in /usr/lib/openoffice.org2.0/program/libuno_cppuhelpergcc3.so.3) ==21338== by 0x4053BCB: desktop::Desktop::CreateApplicationServiceManager() (in /usr/lib/openoffice.org2.0/program/libsoffice.so) ==21338== by 0x40462A4: desktop::Desktop::Init() (in /usr/lib/openoffice.org2.0/program/libsoffice.so) ==21338== by 0x43546DE: InitVCL(com::sun::star::uno::Reference<com::sun::star::lang::XMultiServiceFactory> const&) (in /usr/lib/openoffice.org2.0/program/libvcl680li.so) ==21338== by 0x4354831: (within /usr/lib/openoffice.org2.0/program/libvcl680li.so) ==21338== by 0x43548FC: SVMain() (in /usr/lib/openoffice.org2.0/program/libvcl680li.so) ==21338== by 0x4041E52: sal_main (in /usr/lib/openoffice.org2.0/program/libsoffice.so) ==21338== by 0x4041E9E: main (in /usr/lib/openoffice.org2.0/program/libsoffice.so) ==21338== Address 0x0 is not stack'd, malloc'd or (recently) free'd ==21338== ==21338== Process terminating with default action of signal 11 (SIGSEGV) ==21338== Access not within mapped region at address 0x0 ==21338== at 0x4B1A4FD: (within /usr/lib/openoffice.org2.0/program/libuno_cppuhelpergcc3.so.3) ==21338== by 0x4B1AB4C: (within /usr/lib/openoffice.org2.0/program/libuno_cppuhelpergcc3.so.3) ==21338== by 0x4B1B061: cppu::defaultBootstrap_InitialComponentContext() (in /usr/lib/openoffice.org2.0/program/libuno_cppuhelpergcc3.so.3) ==21338== by 0x4053BCB: desktop::Desktop::CreateApplicationServiceManager() (in /usr/lib/openoffice.org2.0/program/libsoffice.so) ==21338== by 0x40462A4: desktop::Desktop::Init() (in /usr/lib/openoffice.org2.0/program/libsoffice.so) ==21338== by 0x43546DE: InitVCL(com::sun::star::uno::Reference<com::sun::star::lang::XMultiServiceFactory> const&) (in /usr/lib/openoffice.org2.0/program/libvcl680li.so) ==21338== by 0x4354831: (within /usr/lib/openoffice.org2.0/program/libvcl680li.so) ==21338== by 0x43548FC: SVMain() (in /usr/lib/openoffice.org2.0/program/libvcl680li.so) ==21338== by 0x4041E52: sal_main (in /usr/lib/openoffice.org2.0/program/libsoffice.so) ==21338== by 0x4041E9E: main (in /usr/lib/openoffice.org2.0/program/libsoffice.so) ==21338== ==21338== ERROR SUMMARY: 3 errors from 2 contexts (suppressed: 198 from 1) ==21338== malloc/free: in use at exit: 158,231 bytes in 1,803 blocks. ==21338== malloc/free: 2,667 allocs, 864 frees, 475,170 bytes allocated. ==21338== For counts of detected errors, rerun with: -v ==21338== searching for pointers to 1,803 not-freed blocks. ==21338== checked 2,511,932 bytes. ==21338== ==21338== LEAK SUMMARY: ==21338== definitely lost: 0 bytes in 0 blocks. ==21338== possibly lost: 17,848 bytes in 33 blocks. ==21338== still reachable: 140,383 bytes in 1,770 blocks. ==21338== suppressed: 0 bytes in 0 blocks. ==21338== Reachable blocks (those to which a pointer was found) are not shown. ==21338== To see them, rerun with: --show-reachable=yes Segmentation fault $ ok, that's great work. I'll see if I can find this place now Odd, that I'm still not seeing this, can you attach the file /usr/lib/openoffice.org2.0/program/libuno_cppuhelpergcc3.so.3 to this issue ? Created attachment 135374 [details]
As requested by Caolan.
Created attachment 135379 [details]
replacement
Your one still didn't crash it for me, or give valgrind warnings. This one has
some debuginfo as part of the lib. Perhaps replacing your one with this might
give some hint as to what is going on, especially with the output of...
gdb /usr/lib/openoffice.org/program/soffice.bin
(gdb) run -writer
(gdb) bt
$ gdb /usr/lib/openoffice.org2.0/program/soffice.bin GNU gdb Red Hat Linux (6.3.0.0-1.122rh) Copyright 2004 Free Software Foundation, Inc. GDB is free software, covered by the GNU General Public License, and you are welcome to change it and/or distribute copies of it under certain conditions. Type "show copying" to see the conditions. There is absolutely no warranty for GDB. Type "show warranty" for details. This GDB was configured as "i386-redhat-linux-gnu"... (no debugging symbols found) Using host libthread_db library "/lib/libthread_db.so.1". (gdb) r -writer Starting program: /usr/lib/openoffice.org2.0/program/soffice.bin -writer Reading symbols from shared object read from target memory...(no debugging symbols found)...done. Loaded system supplied DSO at 0xac1000 (no debugging symbols found) (no debugging symbols found) [Thread debugging using libthread_db enabled] [New Thread -1217755456 (LWP 28407)] warning: Lowest section in /usr/lib/libicudata.so.34 is .hash at 000000b4 Program received signal SIGSEGV, Segmentation fault. [Switching to Thread -1217755456 (LWP 28407)] nestRegistries (baseDir=@0xbf8a0c6c, xSimRegFac=@0xbf8a0c30, xNesRegFac=@0xbf8a0c2c, csl_rdbs=@0xbf8a0c68, write_rdb=@0xbf8a0c64, forceWrite_rdb=0 '\0', bFallenBack=0 '\0', bootstrap=@0xbac538) at /usr/src/redhat/BUILD/OOB680_m5/cppuhelper/source/bootstrap.cxx:334 334 /usr/src/redhat/BUILD/OOB680_m5/cppuhelper/source/bootstrap.cxx: No such file or directory. in /usr/src/redhat/BUILD/OOB680_m5/cppuhelper/source/bootstrap.cxx Current language: auto; currently c++ (gdb) bt #0 nestRegistries (baseDir=@0xbf8a0c6c, xSimRegFac=@0xbf8a0c30, xNesRegFac=@0xbf8a0c2c, csl_rdbs=@0xbf8a0c68, write_rdb=@0xbf8a0c64, forceWrite_rdb=0 '\0', bFallenBack=0 '\0', bootstrap=@0xbac538) at /usr/src/redhat/BUILD/OOB680_m5/cppuhelper/source/bootstrap.cxx:334 #1 0x00b73b2d in defaultBootstrap_InitialComponentContext ( bootstrap=@0xbac538) at /usr/src/redhat/BUILD/OOB680_m5/cppuhelper/source/bootstrap.cxx:419 #2 0x00b74042 in cppu::defaultBootstrap_InitialComponentContext () at /usr/src/redhat/BUILD/OOB680_m5/cppuhelper/source/bootstrap.cxx:472 #3 0x00d42bcc in desktop::Desktop::CreateApplicationServiceManager () from /usr/lib/openoffice.org2.0/program/libsoffice.so #4 0x00d352a5 in desktop::Desktop::Init () from /usr/lib/openoffice.org2.0/program/libsoffice.so #5 0x003b26df in InitVCL () from /usr/lib/openoffice.org2.0/program/libvcl680li.so #6 0x003b2832 in InitVCL () from /usr/lib/openoffice.org2.0/program/libvcl680li.so #7 0x003b28fd in SVMain () from /usr/lib/openoffice.org2.0/program/libvcl680li.so #8 0x00d30e53 in sal_main () from /usr/lib/openoffice.org2.0/program/libsoffice.so #9 0x00d30e9f in main () from /usr/lib/openoffice.org2.0/program/libsoffice.so #10 0x0020e724 in __libc_start_main () from /lib/libc.so.6 ---Type <return> to continue, or q <return> to quit--- #11 0x080484b1 in _start () (gdb) Created attachment 135389 [details]
new replacement
Thanks for your patience, this is all very strange. Here's a new replacement
which should cause OOo to spit out some text on stdout. Can you try this one
and report what it says. I'm thinking a possibly corrupt .rdb file somewhere.
Created attachment 135390 [details]
new replacement
Thanks for your patience, this is all very strange. Here's a new replacement
which should cause OOo to spit out some text on stdout. Can you try this one
and report what it says. I'm thinking a possibly corrupt .rdb file somewhere.
$ ooffice > implementation com.sun.star.comp.stoc.OServiceManagerWrapper supports: com.sun.star.lang.MultiServiceFactory > implementation com.sun.star.comp.stoc.DLLComponentLoader supports: com.sun.star.loader.SharedLibrary > implementation com.sun.star.comp.stoc.SimpleRegistry supports: com.sun.star.registry.SimpleRegistry > implementation com.sun.star.comp.stoc.NestedRegistry supports: com.sun.star.registry.NestedRegistry > implementation com.sun.star.comp.stoc.TypeDescriptionManager supports: com.sun.star.reflection.TypeDescriptionManager > implementation com.sun.star.comp.stoc.ImplementationRegistration supports: com.sun.star.registry.ImplementationRegistration > implementation com.sun.star.security.comp.stoc.AccessController supports: com.sun.star.security.AccessController > implementation com.sun.star.security.comp.stoc.FilePolicy supports: com.sun.star.security.Policy Thread: 1 :cppuhelper::findBoostrapArgument - found UNO_TYPES in env: file:///usr/lib/openoffice.org2.0/program/types.rdb simpleRegistry result is 0, expecting 1 Thread: 1 :cppuhelper::findBoostrapArgument - found UNO_SERVICES in env: file:///usr/lib/openoffice.org2.0/program/services.rdb Thread: 1 :cppuhelper::findBoostrapArgument - setting WRITERDB relative to executable: file:///usr/lib/openoffice.org2.0/program/uno_writerdb.rdb simpleRegistry result is 0, expecting 1 $ gdb /usr/lib/openoffice.org2.0/program/soffice.bin GNU gdb Red Hat Linux (6.3.0.0-1.122rh) Copyright 2004 Free Software Foundation, Inc. GDB is free software, covered by the GNU General Public License, and you are welcome to change it and/or distribute copies of it under certain conditions. Type "show copying" to see the conditions. There is absolutely no warranty for GDB. Type "show warranty" for details. This GDB was configured as "i386-redhat-linux-gnu"... (no debugging symbols found) Using host libthread_db library "/lib/libthread_db.so.1". (gdb) run -writer Starting program: /usr/lib/openoffice.org2.0/program/soffice.bin -writer Reading symbols from shared object read from target memory...(no debugging symbols found)...done. Loaded system supplied DSO at 0x862000 (no debugging symbols found) (no debugging symbols found) [Thread debugging using libthread_db enabled] [New Thread -1217923392 (LWP 30875)] warning: Lowest section in /usr/lib/libicudata.so.34 is .hash at 000000b4 > implementation com.sun.star.comp.stoc.OServiceManagerWrapper supports: com.sun.star.lang.MultiServiceFactory > implementation com.sun.star.comp.stoc.DLLComponentLoader supports: com.sun.star.loader.SharedLibrary > implementation com.sun.star.comp.stoc.SimpleRegistry supports: com.sun.star.registry.SimpleRegistry > implementation com.sun.star.comp.stoc.NestedRegistry supports: com.sun.star.registry.NestedRegistry > implementation com.sun.star.comp.stoc.TypeDescriptionManager supports: com.sun.star.reflection.TypeDescriptionManager > implementation com.sun.star.comp.stoc.ImplementationRegistration supports: com.sun.star.registry.ImplementationRegistration > implementation com.sun.star.security.comp.stoc.AccessController supports: com.sun.star.security.AccessController > implementation com.sun.star.security.comp.stoc.FilePolicy supports: com.sun.star.security.Policy Thread: 1 :cppuhelper::findBoostrapArgument - found UNO_TYPES in env: file:///usr/lib/openoffice.org2.0/program/types.rdb simpleRegistry result is 0, expecting 1 Thread: 1 :cppuhelper::findBoostrapArgument - found UNO_SERVICES in env: file:///usr/lib/openoffice.org2.0/program/services.rdb Thread: 1 :cppuhelper::findBoostrapArgument - setting WRITERDB relative to executable: file:///usr/lib/openoffice.org2.0/program/uno_writerdb.rdb simpleRegistry result is 0, expecting 1 [New Thread -1219658848 (LWP 30898)] [New Thread -1230148704 (LWP 30899)] [Thread -1230148704 (LWP 30899) exited] [Thread -1219658848 (LWP 30898) exited] Program exited normally. (gdb) "simpleRegistry result is 0, expecting 1" is where our focus is now, on a working installation this should be have been "simpleRegistry result is 1, expecting 1" Created attachment 135483 [details]
replacement simplereg.uno.so
can you make a backup of simplereg.uno.so, and copy this one in instead. Also
can you zip up /usr/lib/openoffice.org2.0/program/*.rdb (the registry files
which may be corrupt of something like that, thus causing this), and attach
that zip here.
Here is what I get with the replacement simplereg.uno.so: $ ooffice > implementation com.sun.star.comp.stoc.OServiceManagerWrapper supports: com.sun.star.lang.MultiServiceFactory > implementation com.sun.star.comp.stoc.DLLComponentLoader supports: com.sun.star.loader.SharedLibrary > implementation com.sun.star.comp.stoc.SimpleRegistry supports: com.sun.star.registry.SimpleRegistry > implementation com.sun.star.comp.stoc.NestedRegistry supports: com.sun.star.registry.NestedRegistry > implementation com.sun.star.comp.stoc.TypeDescriptionManager supports: com.sun.star.reflection.TypeDescriptionManager > implementation com.sun.star.comp.stoc.ImplementationRegistration supports: com.sun.star.registry.ImplementationRegistration > implementation com.sun.star.security.comp.stoc.AccessController supports: com.sun.star.security.AccessController > implementation com.sun.star.security.comp.stoc.FilePolicy supports: com.sun.star.security.Policy Thread: 1 :cppuhelper::findBoostrapArgument - found UNO_TYPES in env: file:///usr/lib/openoffice.org2.0/program/types.rdb SimpleRegistry_CreateInstance simpleRegistry result is 0, expecting 1 Thread: 1 :cppuhelper::findBoostrapArgument - found UNO_SERVICES in env: file:///usr/lib/openoffice.org2.0/program/services.rdb Thread: 1 :cppuhelper::findBoostrapArgument - setting WRITERDB relative to executable: file:///usr/lib/openoffice.org2.0/program/uno_writerdb.rdb SimpleRegistry_CreateInstance simpleRegistry result is 0, expecting 1 Created attachment 135486 [details]
/usr/lib/openoffice.org2.0/program/*.rdb files
Created attachment 135487 [details]
new replacement simplereg.uno.so
Those are exactly the same as mine, and work for me.
This is quite bizarre. Do you know of anything unusual that may have occured at
any stage. I attach yet another simplereg.uno.so which will trace things down a
bit further, clearly the correct SimpleRegistry_CreateInstance is being called,
but is not returning a registry object, so something is failing here.
a nfs-mounted homedir ? No, I have no nfs-mounted directories anywhere in the system. Nothing unusual occurred as far as I know: openoffice worked until the day I upgraded from FC4 to FC5. In /root/upgrade.log there is nothing that gives an indication something may have gone wrong in the process. Here is what I get with the new replacement simplereg.uno.so: $ ooffice > implementation com.sun.star.comp.stoc.OServiceManagerWrapper supports: com.sun.star.lang.MultiServiceFactory > implementation com.sun.star.comp.stoc.DLLComponentLoader supports: com.sun.star.loader.SharedLibrary > implementation com.sun.star.comp.stoc.SimpleRegistry supports: com.sun.star.registry.SimpleRegistry > implementation com.sun.star.comp.stoc.NestedRegistry supports: com.sun.star.registry.NestedRegistry > implementation com.sun.star.comp.stoc.TypeDescriptionManager supports: com.sun.star.reflection.TypeDescriptionManager > implementation com.sun.star.comp.stoc.ImplementationRegistration supports: com.sun.star.registry.ImplementationRegistration > implementation com.sun.star.security.comp.stoc.AccessController supports: com.sun.star.security.AccessController > implementation com.sun.star.security.comp.stoc.FilePolicy supports: com.sun.star.security.Policy Thread: 1 :cppuhelper::findBoostrapArgument - found UNO_TYPES in env: file:///usr/lib/openoffice.org2.0/program/types.rdb SimpleRegistry_CreateInstance RegistryLoader doesn't work simpleRegistry result is 0, expecting 1 Thread: 1 :cppuhelper::findBoostrapArgument - found UNO_SERVICES in env: file:///usr/lib/openoffice.org2.0/program/services.rdb Thread: 1 :cppuhelper::findBoostrapArgument - setting WRITERDB relative to executable: file:///usr/lib/openoffice.org2.0/program/uno_writerdb.rdb SimpleRegistry_CreateInstance RegistryLoader doesn't work simpleRegistry result is 0, expecting 1 Created attachment 135490 [details]
another different debugging library replacement
Well "RegistryLoader doesn't work" is our problem, so lets go a little more
deeper! This is (yet another) replacement lib which will take us another level
closer to the cause.
Have you got a libreg.so.3 in /usr/lib/openoffice.org2.0/program ?
and (if you have it installed) what does
objdump -T /usr/lib/openoffice.org2.0/program/libreg.so.3 | grep
initRegistry_Api
say ?
$ ls -l /usr/lib/openoffice.org2.0/program/libreg.so lrwxrwxrwx 1 root root 11 Aug 11 03:10 /usr/lib/openoffice.org2.0/program/libreg.so -> libreg.so.3 $ md5sum /usr/lib/openoffice.org2.0/program/libreg.so.3 b1a454c7e7f8e952b83a288a83837bd7 /usr/lib/openoffice.org2.0/program/libreg.so.3 $ objdump -T /usr/lib/openoffice.org2.0/program/libreg.so.3 | grep initRegistry_Api 0000c9ac g DF .text 00000016 UDK_3_0_0 initRegistry_Api Here is what I get with the replacement libuno_salhelpergcc3.so.3: $ ooffice > implementation com.sun.star.comp.stoc.OServiceManagerWrapper supports: com.sun.star.lang.MultiServiceFactory > implementation com.sun.star.comp.stoc.DLLComponentLoader supports: com.sun.star.loader.SharedLibrary > implementation com.sun.star.comp.stoc.SimpleRegistry supports: com.sun.star.registry.SimpleRegistry > implementation com.sun.star.comp.stoc.NestedRegistry supports: com.sun.star.registry.NestedRegistry > implementation com.sun.star.comp.stoc.TypeDescriptionManager supports: com.sun.star.reflection.TypeDescriptionManager > implementation com.sun.star.comp.stoc.ImplementationRegistration supports: com.sun.star.registry.ImplementationRegistration > implementation com.sun.star.security.comp.stoc.AccessController supports: com.sun.star.security.AccessController > implementation com.sun.star.security.comp.stoc.FilePolicy supports: com.sun.star.security.Policy Thread: 1 :cppuhelper::findBoostrapArgument - found UNO_TYPES in env: file:///usr/lib/openoffice.org2.0/program/types.rdb SimpleRegistry_CreateInstance looking for function initRegistry_Api in module libreg.so.3 failed to find module libreg.so.3 RegistryLoader doesn't work simpleRegistry result is 0, expecting 1 Thread: 1 :cppuhelper::findBoostrapArgument - found UNO_SERVICES in env: file:///usr/lib/openoffice.org2.0/program/services.rdb Thread: 1 :cppuhelper::findBoostrapArgument - setting WRITERDB relative to executable: file:///usr/lib/openoffice.org2.0/program/uno_writerdb.rdb SimpleRegistry_CreateInstance looking for function initRegistry_Api in module libreg.so.3 failed to find module libreg.so.3 RegistryLoader doesn't work simpleRegistry result is 0, expecting 1 ok, we're getting somewhere, we failed to find libreg.so.3 for some reason, but your md5sum matches mine, so can you do... ldd /usr/lib/openoffice.org2.0/program/libreg.so.3 and insert the output, perhaps something it depends on has gone missing also the output of echo $LD_LIBRARY_PATH and echo $LD_ASSUME_KERNEL and ls -asl /usr/lib/openoffice.org2.0/program/libreg.so.3 in case it's permissions of it or something. $ ldd /usr/lib/openoffice.org2.0/program/libreg.so.3 /usr/lib/openoffice.org2.0/program/libreg.so.3: /usr/local/lib/libgcc_s.so.1: version `GCC_4.2.0' not found (required by /usr/lib/openoffice.org2.0/program/libstore.so.3) linux-gate.so.1 => (0x009e3000) libuno_sal.so.3 => /usr/lib/openoffice.org2.0/program/libuno_sal.so.3 (0x00111000) libuno_salhelpergcc3.so.3 => /usr/lib/openoffice.org2.0/program/libuno_salhelpergcc3.so.3 (0x00f1e000) libstore.so.3 => /usr/lib/openoffice.org2.0/program/libstore.so.3 (0x00c50000) libdl.so.2 => /lib/libdl.so.2 (0x00ea3000) libpthread.so.0 => /lib/libpthread.so.0 (0x00778000) libstlport_gcc.so => /usr/lib/openoffice.org2.0/program/libstlport_gcc.so (0x008ba000) libstdc++.so.6 => /usr/local/lib/libstdc++.so.6 (0x00656000) libm.so.6 => /lib/libm.so.6 (0x00fb4000) libgcc_s.so.1 => /usr/local/lib/libgcc_s.so.1 (0x0031c000) libc.so.6 => /lib/libc.so.6 (0x00327000) libcrypt.so.1 => /lib/libcrypt.so.1 (0x0054f000) /lib/ld-linux.so.2 (0x009e4000) $ echo $LD_LIBRARY_PATH $ echo $LD_ASSUME_KERNEL $ ls -asl /usr/lib/openoffice.org2.0/program/libreg.so.3 112 -rwxr-xr-x 1 root root 109680 Jul 15 01:26 /usr/lib/openoffice.org2.0/program/libreg.so.3 $ rpm -q gcc gcc-4.1.1-1.fc5 Aha! what's this -> libstdc++.so.6 => /usr/local/lib/libstdc++.so.6 (0x00656000) /usr/local/lib has a libstdc++ in it, and we're linking against that one, and not against /usr/lib/libstdc++ like we should be. Do you have a /usr/lib/libstdc++.so.6 ? ls -asl /usr/lib/libstdc++.so.6 should link to e.g. /usr/lib/libstdc++.so.6.0.8 and rpm -qf /usr/lib/libstdc++.so.6 should say basically something like... libstdc++-4.1.1-1.fc5 Either the normal libstdc++ isn't installed, in which case installing it will likely fix this problem, or there's a newer locally installed libstdc++ into /usr/local/lib which is causing the problem, in which case move it out of the way or delete it. Yes, there is /usr/local/lib/libstdc++.so.6 because I need to use GCC 4.0.3 for my development work. But I have also /us/lib/libstdc++.so.6: $ ls -asl /usr/lib/libstdc++.so.6 0 lrwxrwxrwx 1 root root 18 Aug 11 02:55 /usr/lib/libstdc++.so.6 -> libstdc++.so.6.0.8 $ rpm -qf /usr/lib/libstdc++.so.6 libstdc++-4.1.1-1.fc5 However, how is it that the one in /usr/local/lib is selected? $ ls -asl /usr/local/lib/libstdc++.so.6 0 lrwxrwxrwx 1 root root 18 Apr 7 10:31 /usr/local/lib/libstdc++.so.6 -> libstdc++.so.6.0.7 Do I really need to remove the one in /usr/local/lib? Why is the "wrong" version selected? I mean, if openoffice is dependent on libstdc++.so.6.0.8 otherwise it dies badly, why is libstdc++.so.6.0.7 picked up? $ echo $LD_LIBRARY_PATH $ cat /etc/ld.so.conf include ld.so.conf.d/*.conf /usr/kerberos/lib /usr/lib/qt-3.1/lib /usr/lib/mysql /usr/X11R6/lib /usr/local/lib Add /usr/lib above /usr/local/lib in ld.so.conf, rerun ldconfig and then try again. If I understand correctly stuff explictly listed in the ld.so.conf will get searched in first, before the other locations. Thanks Caolan. The problem is now solved. However, I wonder if dying like that was the right behavior for OOo. Well, dying should be avoided, and we should at least have noticed that loading libreg.so.3 failed and exit more gracefully. I've submitted that patch upstream, hence closed->upstream as the actual crash is avoided. I'll also add checking for what libstdc++ got used to the crash-reporting script to detect this problem a bit sooner in the bug triage process if a similiar problem arises again. But as to whether OOo itself can do much about this I don't really think so, I'm not sure what mismatch really caused this problem. I'd be tempted to blame libstdc++ for having an ABI difference between the one OOo was compiled against, and the one you have in /usr/local/lib which caused the problem, but that libstdc++ is out of my control, so I can't really say in which one the problem lies. |