[jbosstools-dev] Re: VPE Tests on dev91-linux

Snjezana Peco snjeza.peco at gmail.com
Fri Feb 29 19:01:30 EST 2008


Denis,

I just executed the tests on Ubuntu 7.10. Eclipse still crashes randomly.
When Eclipse doesn't crash, a different number of the tests (7 or 8) 
fail with SWT 'No more handle' error. This error is always in
TestUtil.delay() (display.readAndDispatch() ).
2 tests (testJBIDE-1615 and testJBIDE-1720-selectOneRadio) report an 
assertion failure.
If you activate the main Eclipse while executing the tests, Eclipse will 
always crash.

I have changed TestUtil.delay() to the following :

public static void delay(long waitTimeMillis) {
    Display display = Display.getCurrent();
    if (display != null) {
        long endTimeMillis = System.currentTimeMillis() + waitTimeMillis;
        while (System.currentTimeMillis() < endTimeMillis) {
            try {
                Thread.sleep(50);  // this value depends on a machine
                                   // a faster machine requires a higher 
value
            } catch (InterruptedException e) {
                // ignore
            }
        if (!display.readAndDispatch())
            display.sleep();
        }
        display.update();
    }
    // Otherwise, perform a simple sleep.
    else {
        try {
        Thread.sleep(waitTimeMillis);
        } catch (InterruptedException e) {
        // Ignored.
        }
    }
    }

and the tests newer fail and 'No more handle' error doesn't happen. The 
testJBIDE-1615 and testJBIDE-1720-selectOneRadio report an assertion 
failure, but that isn't related to this issue.
This workaround is usable on Ubuntu 6.06 as well.

Ubuntu 7.10 is more stable than 6.06, but the tests aren't correct on 
any of these systems.
I believe that 7.10 is more stable because it contains a newer gtk 
(2.12.0).  6.06 contains gtk 2.8.12.

I executed the tests in the following way:

- checked out JBoss Tools trunk
- started JUnit Plug-in Test
- entered the org.jboss.tools.jsf.vpe.jsf.test project and the 
org.jboss.tools.jsf.vpe.jsf.test.JsfAllTests class
- increased the VM arguments (the memory heap size)
- executed the tests

Snjeza

Denis Golovin wrote:
> Snjezana,
>
> I thought the same way, but when I got the jvm error report (see 
> below) I changed my mind :)
>
> The problem is in XULRunner, as soon as it added to build you always 
> get the same error (see below)
> I cannot reproduce it under  Ubuntu 7.10 (kernel 2.6.22.14) and RedHat 
> Enterprise Linux 5 Desktop (kernel 2.6.18-53).
> That's why I'd like to try it under RHEL5.
>
>
> Thanks
> Denis
> #
> # An unexpected error has been detected by Java Runtime Environment:
> #
> #  SIGSEGV (0xb) at pc=0xcbda2ff4, pid=7680, tid=4160576432
> #
> # Java VM: Java HotSpot(TM) Server VM (1.6.0_02-b05 mixed mode)
> # Problematic frame:
> # C  [libexpat.so.0+0xeff4]
> #
> # If you would like to submit a bug report, please visit:
> #   http://java.sun.com/webapps/bugreport/crash.jsp
> #
>
> ---------------  T H R E A D  ---------------
>
> Current thread (0x08058800):  JavaThread "main" [_thread_in_native, 
> id=7684]
>
> siginfo:si_signo=11, si_errno=0, si_code=1, si_addr=0x00000876
>
> Registers:
> EAX=0x00000022, EBX=0xcbdae7dc, ECX=0xcbdadd40, EDX=0xca103800
> ESP=0xf7fd2cf0, EBP=0xf7fd2d08, ESI=0xca10389c, EDI=0x00000808
> EIP=0xcbda2ff4, CR2=0x00000876, EFLAGS=0x00010246
>
> Top of Stack: (sp=0xf7fd2cf0)
> 0xf7fd2cf0:   c8cd8998 ca138e70 ca10389c c8cd8998
> 0xf7fd2d00:   ca138e70 caab7098 f7fd2da8 c8412ad9
> 0xf7fd2d10:   00000808 ca10389c f7fd2d38 0053dfd4
> 0xf7fd2d20:   ca542dd0 00000001 f7fd2d60 0053dfd4
> 0xf7fd2d30:   ca138f94 ca138f90 ca540270 00533c66
> 0xf7fd2d40:   ca139b28 00000000 00000001 c86e2732
> 0xf7fd2d50:   00000000 c8cd8998 f7fd2d88 ca103a22
> 0xf7fd2d60:   ca8f90c8 c8bd7900 00000001 c83f1742
> Instructions: (pc=0xcbda2ff4)
> 0xcbda2fe4:   8b 7d 08 89 75 f0 8a 56 01 84 d2 75 43 0f b6 06
> 0xcbda2ff4:   0f b6 44 07 4c 83 e8 05 83 f8 18 77 1b 8b 84 83
> Stack: [0xf7f85000,0xf7fd6000),  sp=0xf7fd2cf0,  free space=311k
> Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, 
> C=native code)
> C  [libexpat.so.0+0xeff4]
> C  [libxul.so+0x6acad9]
> C  [libxul.so+0x6ac414]
> C  [libxul.so+0x6af258]
> C  [libxul.so+0x6aec64]
> C  [libxul.so+0x6ae952]
> C  [libxul.so+0x6abec1]  MOZ_XML_Parse+0x104
> C  [libxul.so+0x68c9e4]  _ZN13nsExpatDriver11ParseBufferEPKcji+0x3e
> C  [libxul.so+0x68cc71]
> C  [libxul.so+0x6a364a]  _ZN8nsParser8TokenizeEi+0xfa
> C  [libxul.so+0x6a225c]  _ZN8nsParser11ResumeParseEiii+0x102
> C  [libxul.so+0x6a3391]
> C  [libxul.so+0x8cfd86]  
> _ZN17nsSyncLoadService24PushSyncStreamToListenerEP14nsIInputStreamP17nsIStreamListenerP10nsIChannel+0x102 
>
> C  [libxul.so+0x8cfbc2]
> C  [libxul.so+0x998a2a]  
> _ZN12nsXBLService20FetchBindingDocumentEP10nsIContentP11nsIDocumentP6nsIURIP6nsIURLiPS3_+0x5d4 
>
> C  [libxul.so+0x9982ed]
> C  [libxul.so+0x997332]  
> _ZN12nsXBLService10GetBindingEP10nsIContentP6nsIURIiPiPP12nsXBLBinding+0x134 
>
> C  [libxul.so+0x996954]
> C  [libxul.so+0x7008b1]  
> _ZN21nsCSSFrameConstructor22ConstructFrameInternalER23nsFrameConstructorStateP10nsIContentP8nsIFrameP7nsIAtomiP14nsStyleContextR12nsFrameItemsi+0x103 
>
> C  [libxul.so+0x70075a]  
> _ZN21nsCSSFrameConstructor14ConstructFrameER23nsFrameConstructorStateP10nsIContentP8nsIFrameR12nsFrameItems+0x108 
>
> C  [libxul.so+0x6fd43e]  
> _ZN21nsCSSFrameConstructor21CreateAnonymousFramesER23nsFrameConstructorStateP10nsIContentP11nsIDocumentP8nsIFrameiiR12nsFrameItemsS7_S3_i+0x358 
>
> C  [libxul.so+0x6fe5a0]  
> _ZN21nsCSSFrameConstructor24BeginBuildingScrollFrameER23nsFrameConstructorStateP10nsIContentP14nsStyleContextP8nsIFrameS7_P7nsIAtomiRS7_+0x12e 
>
> C  [libxul.so+0x6fb3f9]  
> _ZN21nsCSSFrameConstructor18ConstructRootFrameEP10nsIContentPP8nsIFrame+0x405 
>
> C  [libxul.so+0x72b650]
> C  [libxul.so+0x885db9]  _ZN13nsContentSink11StartLayoutEi+0xb1
> C  [libxul.so+0x95ee26]  _ZN15HTMLContentSink11StartLayoutEv+0x5c
> C  [libxul.so+0x95d5cb]
> C  [libxul.so+0x691a3f]  _ZN7CNavDTD8OpenBodyEPK13nsCParserNode+0x51
> C  [libxul.so+0x691d56]  
> _ZN7CNavDTD13OpenContainerEPK13nsCParserNode9nsHTMLTagiP12nsEntryStack+0xd4 
>
> C  [libxul.so+0x68ef59]  
> _ZN7CNavDTD23HandleDefaultStartTokenEP6CToken9nsHTMLTagP13nsCParserNode+0x285 
>
> C  [libxul.so+0x68fb66]  _ZN7CNavDTD16HandleStartTokenEP6CToken+0x28c
> C  [libxul.so+0x68e7d6]
> C  [libxul.so+0x68dd3e]
> C  [libxul.so+0x6a250b]
> C  [libxul.so+0x6a2274]  _ZN8nsParser11ResumeParseEiii+0x11a
> C  [libxul.so+0x6a3391]
> C  [libxul.so+0xb047d9]
> C  [libxul.so+0x592ef8]
> C  [libxul.so+0x593e29]  _ZN17nsInputStreamPump15OnStateTransferEv+0x11d
> C  [libxul.so+0x593c61]
> C  [libxul.so+0x4c874d]  
> _ZN23nsInputStreamReadyEvent12EventHandlerEP7PLEvent+0x37
> C  [libxul.so+0x4e2e48]  PL_HandleEvent+0x23
> C  [libxul.so+0x4e2d74]  PL_ProcessPendingEvents+0x86
> C  [libxul.so+0x4e475e]
> C  [libxul.so+0xcb84da]
> C  [libglib-2.0.so.0+0x47907]
> C  [libglib-2.0.so.0+0x2374b]  g_main_context_dispatch+0x1cb
> C  [libglib-2.0.so.0+0x251d2]
> C  [libglib-2.0.so.0+0x256b8]  g_main_context_iteration+0x63
> C  [libswt-pi-gtk-3347.so+0x30829]  
> Java_org_eclipse_swt_internal_gtk_OS__1g_1main_1context_1iteration+0x20
> j  org.eclipse.swt.internal.gtk.OS._g_main_context_iteration(IZ)Z+0
> j  org.eclipse.swt.internal.gtk.OS.g_main_context_iteration(IZ)Z+9
> j  org.eclipse.swt.widgets.Display.readAndDispatch()Z+23
> j  
> org.eclipse.ui.internal.Workbench.runEventLoop(Lorg/eclipse/jface/window/Window$IExceptionHandler;Lorg/eclipse/swt/widgets/Display;)V+9 
>
> j  org.eclipse.ui.internal.Workbench.runUI()I+336
> j  
> org.eclipse.ui.internal.Workbench.access$4(Lorg/eclipse/ui/internal/Workbench;)I+1 
>
> j  org.eclipse.ui.internal.Workbench$4.run()V+23
> j  
> org.eclipse.core.databinding.observable.Realm.runWithDefault(Lorg/eclipse/core/databinding/observable/Realm;Ljava/lang/Runnable;)V+12 
>
> j  
> org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Lorg/eclipse/swt/widgets/Display;Lorg/eclipse/ui/application/WorkbenchAdvisor;)I+18 
>
> j  
> org.eclipse.ui.PlatformUI.createAndRunWorkbench(Lorg/eclipse/swt/widgets/Display;Lorg/eclipse/ui/application/WorkbenchAdvisor;)I+2 
>
> j  
> org.eclipse.ui.internal.ide.application.IDEApplication.start(Lorg/eclipse/equinox/app/IApplicationContext;)Ljava/lang/Object;+81 
>
> j  
> org.eclipse.test.UITestApplication.runApplication(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;+41 
>
> j  
> org.eclipse.test.UITestApplication.run(Ljava/lang/Object;)Ljava/lang/Object;+43 
>
> j  
> org.eclipse.test.UITestApplication.start(Lorg/eclipse/equinox/app/IApplicationContext;)Ljava/lang/Object;+36 
>
> j  
> org.eclipse.equinox.internal.app.EclipseAppHandle.run(Ljava/lang/Object;)Ljava/lang/Object;+102 
>
> j  
> org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(Ljava/lang/Object;)Ljava/lang/Object;+103 
>
> j  
> org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(Ljava/lang/Object;)Ljava/lang/Object;+29 
>
> j  
> org.eclipse.core.runtime.adaptor.EclipseStarter.run(Ljava/lang/Object;)Ljava/lang/Object;+149 
>
> j  
> org.eclipse.core.runtime.adaptor.EclipseStarter.run([Ljava/lang/String;Ljava/lang/Runnable;)Ljava/lang/Object;+183 
>
> v  ~StubRoutines::call_stub
> V  [libjvm.so+0x2c5e1d]
> V  [libjvm.so+0x452248]
> V  [libjvm.so+0x2c5cb0]
> V  [libjvm.so+0x499f1f]
> V  [libjvm.so+0x49c91c]
> V  [libjvm.so+0x331dd8]
> C  [libjava.so+0x15224]  
> Java_sun_reflect_NativeMethodAccessorImpl_invoke0+0x34
> j  
> sun.reflect.NativeMethodAccessorImpl.invoke0(Ljava/lang/reflect/Method;Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;+0 
>
> j  
> sun.reflect.NativeMethodAccessorImpl.invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;+87 
>
> j  
> sun.reflect.DelegatingMethodAccessorImpl.invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;+6 
>
> j  
> java.lang.reflect.Method.invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;+161 
>
> j  
> org.eclipse.equinox.launcher.Main.invokeFramework([Ljava/lang/String;[Ljava/net/URL;)V+210 
>
> j  org.eclipse.equinox.launcher.Main.basicRun([Ljava/lang/String;)V+114
> j  org.eclipse.equinox.launcher.Main.run([Ljava/lang/String;)I+4
> j  org.eclipse.equinox.launcher.Main.main([Ljava/lang/String;)V+10
> j  org.eclipse.core.launcher.Main.main([Ljava/lang/String;)V+1
> v  ~StubRoutines::call_stub
> V  [libjvm.so+0x2c5e1d]
> V  [libjvm.so+0x452248]
> V  [libjvm.so+0x2c5cb0]
> V  [libjvm.so+0x2ef0d6]
> V  [libjvm.so+0x2e077b]
> C  [java+0x1b98]  JavaMain+0x2c8
> C  [libpthread.so.0+0x5371]
>
> Java frames: (J=compiled Java code, j=interpreted, Vv=VM code)
> j  org.eclipse.swt.internal.gtk.OS._g_main_context_iteration(IZ)Z+0
> j  org.eclipse.swt.internal.gtk.OS.g_main_context_iteration(IZ)Z+9
> j  org.eclipse.swt.widgets.Display.readAndDispatch()Z+23
> j  
> org.eclipse.ui.internal.Workbench.runEventLoop(Lorg/eclipse/jface/window/Window$IExceptionHandler;Lorg/eclipse/swt/widgets/Display;)V+9 
>
> j  org.eclipse.ui.internal.Workbench.runUI()I+336
> j  
> org.eclipse.ui.internal.Workbench.access$4(Lorg/eclipse/ui/internal/Workbench;)I+1 
>
> j  org.eclipse.ui.internal.Workbench$4.run()V+23
> j  
> org.eclipse.core.databinding.observable.Realm.runWithDefault(Lorg/eclipse/core/databinding/observable/Realm;Ljava/lang/Runnable;)V+12 
>
> j  
> org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Lorg/eclipse/swt/widgets/Display;Lorg/eclipse/ui/application/WorkbenchAdvisor;)I+18 
>
> j  
> org.eclipse.ui.PlatformUI.createAndRunWorkbench(Lorg/eclipse/swt/widgets/Display;Lorg/eclipse/ui/application/WorkbenchAdvisor;)I+2 
>
> j  
> org.eclipse.ui.internal.ide.application.IDEApplication.start(Lorg/eclipse/equinox/app/IApplicationContext;)Ljava/lang/Object;+81 
>
> j  
> org.eclipse.test.UITestApplication.runApplication(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;+41 
>
> j  
> org.eclipse.test.UITestApplication.run(Ljava/lang/Object;)Ljava/lang/Object;+43 
>
> j  
> org.eclipse.test.UITestApplication.start(Lorg/eclipse/equinox/app/IApplicationContext;)Ljava/lang/Object;+36 
>
> j  
> org.eclipse.equinox.internal.app.EclipseAppHandle.run(Ljava/lang/Object;)Ljava/lang/Object;+102 
>
> j  
> org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(Ljava/lang/Object;)Ljava/lang/Object;+103 
>
> j  
> org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(Ljava/lang/Object;)Ljava/lang/Object;+29 
>
> j  
> org.eclipse.core.runtime.adaptor.EclipseStarter.run(Ljava/lang/Object;)Ljava/lang/Object;+149 
>
> j  
> org.eclipse.core.runtime.adaptor.EclipseStarter.run([Ljava/lang/String;Ljava/lang/Runnable;)Ljava/lang/Object;+183 
>
> v  ~StubRoutines::call_stub
> j  
> sun.reflect.NativeMethodAccessorImpl.invoke0(Ljava/lang/reflect/Method;Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;+0 
>
> j  
> sun.reflect.NativeMethodAccessorImpl.invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;+87 
>
> j  
> sun.reflect.DelegatingMethodAccessorImpl.invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;+6 
>
> j  
> java.lang.reflect.Method.invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;+161 
>
> j  
> org.eclipse.equinox.launcher.Main.invokeFramework([Ljava/lang/String;[Ljava/net/URL;)V+210 
>
> j  org.eclipse.equinox.launcher.Main.basicRun([Ljava/lang/String;)V+114
> j  org.eclipse.equinox.launcher.Main.run([Ljava/lang/String;)I+4
> j  org.eclipse.equinox.launcher.Main.main([Ljava/lang/String;)V+10
> j  org.eclipse.core.launcher.Main.main([Ljava/lang/String;)V+1
> v  ~StubRoutines::call_stub
>
> ---------------  P R O C E S S  ---------------
>
> Java Threads: ( => current thread )
>  0x08205400 JavaThread "Worker-4" [_thread_blocked, id=7708]
>  0x08204800 JavaThread "Worker-3" [_thread_blocked, id=7707]
>  0x08204000 JavaThread "Worker-2" [_thread_blocked, id=7706]
>  0xca8ff800 JavaThread "WorkbenchTestable" [_thread_blocked, id=7705]
>  0x08203c00 JavaThread "Worker-1" [_thread_blocked, id=7704]
>  0x08920c00 JavaThread "Java indexing" daemon [_thread_blocked, id=7703]
>  0xcbf57000 JavaThread "Worker-0" [_thread_blocked, id=7701]
>  0x081ec800 JavaThread "Start Level Event Dispatcher" daemon 
> [_thread_blocked, id=7699]
>  0x084b4400 JavaThread "Framework Event Dispatcher" daemon 
> [_thread_blocked, id=7698]
>  0x08314400 JavaThread "State Data Manager" daemon [_thread_blocked, 
> id=7697]
>  0xcc8f0800 JavaThread "Low Memory Detector" daemon [_thread_blocked, 
> id=7695]
>  0xcc8eec00 JavaThread "CompilerThread1" daemon [_thread_blocked, 
> id=7694]
>  0xcc8ed800 JavaThread "CompilerThread0" daemon [_thread_in_native, 
> id=7693]
>  0xcc8ec400 JavaThread "Signal Dispatcher" daemon [_thread_blocked, 
> id=7692]
>  0xcc8dc800 JavaThread "Finalizer" daemon [_thread_blocked, id=7691]
>  0xcc8dc000 JavaThread "Reference Handler" daemon [_thread_blocked, 
> id=7690]
> =>0x08058800 JavaThread "main" [_thread_in_native, id=7684]
>
>
>
> Snjezana Peco wrote:
>> Hi,
>>
>> I have tried to execute JBoss tests using Ubuntu 6.06 (kernel 
>> 2.6.16.14 - compiled from source). The tests crash as well.
>> This is Linux/GTK problem, but I think that the version/distribution 
>> of Linux isn't important. I believe that the problem is the 
>> interaction between the source editor and XULRunner.
>> When replacing an event loop in the TestUtil.delay() method with 
>> Thread.sleep(), the tests pass.
>> I have tried to add the event loop to a simple Mozilla snippet, but 
>> haven't succeeded to reproduce the crash.
>> That's why I think that the crash happens somewhere in the event 
>> handling logic within the source editor.
>>
>> This issue isn't so easy to solve because the crash happens randomly 
>> and it doesn't happen when debugging.
>> I will try to find the solution for this issue.
>>
>> Snjeza
>>
>> Marshall Culpepper wrote:
>>> Hey Prabhat..
>>>
>>> It looks like our builds are running on the dev91-slave.. is it 
>>> possible to move to dev-65? Denis suspects an OS/configuration problem
>>>
>>> Denis Golovin wrote:
>>>> Max, Marshall,
>>>>
>>>> I tested all available JVM to get it up, but nothing helped. Next 
>>>> reason why it fails the OS. I noticed that dev91-linux is running 
>>>> under
>>>>
>>>> os.version 2.6.9-42.0.10.ELsmp
>>>>
>>>> I'd like to try it on dev65-linux or any other host that have 
>>>> Enterprise Linux 5
>>>>
>>>> Should we ask QA permission for that?
>>>>
>>>> Thanks
>>>> Denis
>>>
>>>
>>
>
>




More information about the jbosstools-dev mailing list