Date: prev next · Thread: first prev next last
2012 Archives by date, by thread · List index


Hi Andrew,

        Sorry to bother you; just visiting some friends at Munich hosting a
hack-fest; and they have an interesting problem with OpenJDK. It -seems-
that even though we initialise X with XInitThreads - before Java gets
involved and all has worked well for a long time; that (as of recently)
we fight over the (apparently global?) XSetErrorHandler and that causes
a nice crash :-)

#0  JNU_CallStaticMethodByName (env=0x0, hasException=0x0, class_name=0x7a3fa571 
"sun/awt/X11/XToolkit", name=0x7a3fa55e "globalErrorHandler", signature=0x7a3fa558 "(JJ)I")
    at ../../../src/share/native/common/jni_util.c:209
#1  0x7a3ca216 in ToolkitErrorHandler (dpy=0x808b1b0, event=0xbfff835c) at 
../../../src/solaris/native/sun/xawt/XlibWrapper.c:1115
#2  0x440c8acb in _XError (dpy=0x808b1b0, rep=0xab53cc0) at ../../src/XlibInt.c:1583
#3  0x440c589d in handle_error (dpy=0x808b1b0, err=0xab53cc0, in_XReply=0) at ../../src/xcb_io.c:212
#4  0x440c58f7 in handle_response (dpy=0x808b1b0, response=0xab53cc0, in_XReply=0) at 
../../src/xcb_io.c:324
#5  0x440c63e8 in _XEventsQueued (dpy=0x808b1b0, mode=1) at ../../src/xcb_io.c:363
#6  0x440b7118 in XEventsQueued (dpy=0x808b1b0, mode=1) at ../../src/Pending.c:43
#7  0x47dace8f in DisplayQueue (fd=14, pDisplay=0x81b50c8) at 
/home/limux/core/vcl/unx/generic/app/saldisp.cxx:407
#8  0x47daa521 in YieldEntry::IsEventQueued (this=0x47e9b250) at 
/home/limux/core/vcl/unx/generic/app/saldata.cxx:593
#9  0x47da9e18 in SalXLib::Yield (this=0x8060c60, bWait=true, bHandleAllCurrentEvents=false) at 
/home/limux/core/vcl/unx/generic/app/saldata.cxx:775
#10 0x464cb7dc in KDEXLib::Yield (this=0x8060c58, bWait=true, bHandleAllCurrentEvents=false) at 
/home/limux/core/vcl/unx/kde4/KDEXLib.cxx:293
#11 0x47dbd7f5 in X11SalInstance::Yield (this=0x804f780, bWait=true, bHandleAllCurrentEvents=false) 
at /home/limux/core/vcl/unx/generic/app/salinst.cxx:164
#12 0x428fe2fa in ImplYield (i_bWait=true, i_bAllEvents=false) at 
/home/limux/core/vcl/source/app/svapp.cxx:425
#13 0x428fa8fe in Application::Yield (i_bAllEvents=false) at 
/home/limux/core/vcl/source/app/svapp.cxx:459
#14 0x428fa898 in Application::Execute () at /home/limux/core/vcl/source/app/svapp.cxx:404
#15 0x4010d1f7 in desktop::Desktop::Main (this=0xbfff8ab8) at 
/home/limux/core/desktop/source/app/app.cxx:1713
#16 0x42905baf in ImplSVMain () at /home/limux/core/vcl/source/app/svmain.cxx:162
#17 0x42905ccd in SVMain () at /home/limux/core/vcl/source/app/svmain.cxx:199
#18 0x4014ef9e in soffice_main () at /home/limux/core/desktop/source/app/sofficemain.cxx:83
#19 0x0804873c in sal_main () at /home/limux/core/desktop/source/app/main.c:48
#20 0x08048713 in main (argc=5, argv=0xbfff8bf4) at /home/limux/core/desktop/source/app/main.c:47

        It seems to me that X's global error handler is the primary design
drop-off here; there should be one per display (?). Having said that - I
wonder if there is some nice way we can clobber Java's XError handler
entirely, and/or stop it mis-behaving ?

        [ the background here is they have some rather funky Java/SWING +
LibreOffice document template management magic going on ].

        Is there some way we can intercept the ToolkitErrorHandler (preferably
without some LD_PRELOAD evil) or should we spend our time calling
XSetErrorHandler to try to clobber Java's with our own ;-)

        Is there even some Java Toolkit interface we can implement that handles
this (grasping at straws ;-).

        Thoughts / pointers much appreciated,

        Thanks :-)

                Michael.

-------- Forwarded Message --------
From: Ignaz Forster <ignaz.forster@muenchen.de>
Subject: Backtrace of LO with WollMux and Java >= 1.6.0_24
Date: Sat, 24 Nov 2012 18:07:14 +0100

Hi Michael,

thanks a lot for your time!

I've attached the backtrace of one of the crashes (including debug symbols).

Ingredients of this backtrace:
- LibreOffice HEAD (using the KDE4 frontend)
- OpenJDK 1.6.0_24
- WollMux (which is using a Swing based UI)

The crash happens since Java 1.6.0_24 (rev. 20 is know to still work, 
and it happens with both Sun/Oracle and OpenJDK)

Reproducability is somewhat random. An easy method to provoke it is to 
open up the extension manager a few times when the WollMux plugin is 
loaded (i.e. when a Writer document is open).
I'll have to wait until Monday to get a link to the exact patch in Java 
which we think was introducing the problem on our side.

Greetings,
Ignaz

-- 
michael.meeks@suse.com  <><, Pseudo Engineer, itinerant idiot
#0  JNU_CallStaticMethodByName (env=0x0, hasException=0x0, class_name=0x7a3fa571 
"sun/awt/X11/XToolkit", name=0x7a3fa55e "globalErrorHandler", signature=0x7a3fa558 "(JJ)I")
    at ../../../src/share/native/common/jni_util.c:209
#1  0x7a3ca216 in ToolkitErrorHandler (dpy=0x808b1b0, event=0xbfff835c) at 
../../../src/solaris/native/sun/xawt/XlibWrapper.c:1115
#2  0x440c8acb in _XError (dpy=0x808b1b0, rep=0xab53cc0) at ../../src/XlibInt.c:1583
#3  0x440c589d in handle_error (dpy=0x808b1b0, err=0xab53cc0, in_XReply=0) at ../../src/xcb_io.c:212
#4  0x440c58f7 in handle_response (dpy=0x808b1b0, response=0xab53cc0, in_XReply=0) at 
../../src/xcb_io.c:324
#5  0x440c63e8 in _XEventsQueued (dpy=0x808b1b0, mode=1) at ../../src/xcb_io.c:363
#6  0x440b7118 in XEventsQueued (dpy=0x808b1b0, mode=1) at ../../src/Pending.c:43
#7  0x47dace8f in DisplayQueue (fd=14, pDisplay=0x81b50c8) at 
/home/limux/core/vcl/unx/generic/app/saldisp.cxx:407
#8  0x47daa521 in YieldEntry::IsEventQueued (this=0x47e9b250) at 
/home/limux/core/vcl/unx/generic/app/saldata.cxx:593
#9  0x47da9e18 in SalXLib::Yield (this=0x8060c60, bWait=true, bHandleAllCurrentEvents=false) at 
/home/limux/core/vcl/unx/generic/app/saldata.cxx:775
#10 0x464cb7dc in KDEXLib::Yield (this=0x8060c58, bWait=true, bHandleAllCurrentEvents=false) at 
/home/limux/core/vcl/unx/kde4/KDEXLib.cxx:293
#11 0x47dbd7f5 in X11SalInstance::Yield (this=0x804f780, bWait=true, bHandleAllCurrentEvents=false) 
at /home/limux/core/vcl/unx/generic/app/salinst.cxx:164
#12 0x428fe2fa in ImplYield (i_bWait=true, i_bAllEvents=false) at 
/home/limux/core/vcl/source/app/svapp.cxx:425
#13 0x428fa8fe in Application::Yield (i_bAllEvents=false) at 
/home/limux/core/vcl/source/app/svapp.cxx:459
#14 0x428fa898 in Application::Execute () at /home/limux/core/vcl/source/app/svapp.cxx:404
#15 0x4010d1f7 in desktop::Desktop::Main (this=0xbfff8ab8) at 
/home/limux/core/desktop/source/app/app.cxx:1713
#16 0x42905baf in ImplSVMain () at /home/limux/core/vcl/source/app/svmain.cxx:162
#17 0x42905ccd in SVMain () at /home/limux/core/vcl/source/app/svmain.cxx:199
#18 0x4014ef9e in soffice_main () at /home/limux/core/desktop/source/app/sofficemain.cxx:83
#19 0x0804873c in sal_main () at /home/limux/core/desktop/source/app/main.c:48
#20 0x08048713 in main (argc=5, argv=0xbfff8bf4) at /home/limux/core/desktop/source/app/main.c:47

Context


Privacy Policy | Impressum (Legal Info) | Copyright information: Unless otherwise specified, all text and images on this website are licensed under the Creative Commons Attribution-Share Alike 3.0 License. This does not include the source code of LibreOffice, which is licensed under the Mozilla Public License (MPLv2). "LibreOffice" and "The Document Foundation" are registered trademarks of their corresponding registered owners or are in actual use as trademarks in one or more countries. Their respective logos and icons are also subject to international copyright laws. Use thereof is explained in our trademark policy.