RVM
  1. RVM
  2. RVM-332

Eclipse 3.2 fails to run on the RVM

    Details

    • Type: Bug Bug
    • Status: Closed Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 3.0
    • Component/s: Infrastructure: Test
    • Labels:
      None
    • Number of attachments :
      0

      Description

      Downloading eclipse 3.2 from:

      http://archive.eclipse.org/eclipse/downloads/drops/R-3.2-200606291905/eclipse-SDK-3.2-linux-gtk.tar.gz

      then running with

      ./eclipse -vm $rvm/dist/development_x86_64-linux/rvm -vmargs -Xmx200M

      results in the following stack trace:

      No threadswitching on proc 2 with addr 0x70000024 because: disabling GC
      vm internal error at:

      – Stack –
      at [0x7132a3e0] Lorg/jikesrvm/VM; _assertionFailure(Ljava/lang/String;Ljava/lang/String;)V at line 539
      at [0x7132a404] Lorg/jikesrvm/VM; _assert(ZLjava/lang/String;Ljava/lang/String;)V at line 522
      at [0x7132a404] Lorg/jikesrvm/VM; _assert(Z)V at line 500
      at [0x7132a404] Lorg/jikesrvm/scheduler/greenthreads/VM_GreenProcessor; failIfThreadSwitchingDisabled()V at line 622
      at [0x7132a428] Lorg/jikesrvm/scheduler/greenthreads/VM_GreenThread; morph(Z)V at line 440
      at [0x7132a444] Lorg/jikesrvm/scheduler/greenthreads/VM_GreenThread; yield(Lorg/jikesrvm/scheduler/greenthreads/VM_AbstractThreadQueue;)V at line 463
      at [0x7132a468] Lorg/jikesrvm/scheduler/greenthreads/VM_GreenThread; ioWaitImpl(Lorg/jikesrvm/scheduler/greenthreads/VM_ThreadIOWaitData;)V at line 671
      at [0x7132a4c8] Lorg/jikesrvm/scheduler/greenthreads/VM_Wait; ioWaitSelect([I[I[IDZ)V at line 153
      at [0x7132a4f4] <invisible method>
      at [0x7132a570] Lorg/jikesrvm/runtime/VM_Reflection; invoke(Lorg/jikesrvm/classloader/VM_Method;Ljava/lang/Object;[Ljava/lang/Object;Z)Ljava/lang/Object; at line 132
      at [0x7132a5b8] Lorg/jikesrvm/jni/ia32/VM_JNIHelpers; packageAndInvoke(Ljava/lang/Object;ILorg/vmmagic/unboxed/Address;Lorg/jikesrvm/classloader/VM_TypeReference;ZZ)Ljava/lang/Object; at line 293
      at [0x7132a5e8] Lorg/jikesrvm/jni/ia32/VM_JNIHelpers; invokeWithVarArg(ILorg/vmmagic/unboxed/Address;Lorg/jikesrvm/classloader/VM_TypeReference;)Ljava/lang/Object; at line 197
      at [0x7132a628] Lorg/jikesrvm/jni/VM_JNIFunctions; CallStaticVoidMethodV(Lorg/jikesrvm/jni/VM_JNIEnvironment;IILorg/vmmagic/unboxed/Address;)V at line 3382
      at [0x7132a658] <native frame>
      at [0x7132a6b8] <native frame>
      at [0x7132a7e8] <native frame>
      at [0x7132a818] <native frame>
      at [0x7132a878] <native frame>
      at [0x7132a8f8] <native frame>
      at [0x7132a918] <native frame>
      at [0x7132a958] <native frame>
      at [0x7132a988] <native frame>
      at [0x7132a9b8] <native frame>
      at [0x7132a9e8] <native frame>
      at [0x7132aa38] <native frame>
      at [0x7132aa68] <native frame>
      at [0x7132aa98] <native frame>
      at [0x7132aad0] Lorg/eclipse/swt/internal/gtk/OS; _gdk_draw_lines(II[II)V
      at [0x7132ab0c] Lorg/eclipse/swt/internal/gtk/OS; gdk_draw_lines(II[II)V at line 2319
      at [0x7132ab3c] Lorg/eclipse/swt/graphics/GC; drawPolyline([I)V at line 950
      at [0x7132ab9c] Lorg/eclipse/swt/custom/CBanner; onPaint(Lorg/eclipse/swt/graphics/GC;)V at line 354
      at [0x7132abc0] Lorg/eclipse/swt/custom/CBanner$1; handleEvent(Lorg/eclipse/swt/widgets/Event;)V at line 117
      at [0x7132ac00] Lorg/eclipse/swt/widgets/EventTable; sendEvent(Lorg/eclipse/swt/widgets/Event;)V at line 66
      at [0x7132ac28] Lorg/eclipse/swt/widgets/Widget; sendEvent(Lorg/eclipse/swt/widgets/Event;)V at line 1085
      at [0x7132ac54] Lorg/eclipse/swt/widgets/Widget; sendEvent(ILorg/eclipse/swt/widgets/Event;Z)V at line 1109
      at [0x7132ac84] Lorg/eclipse/swt/widgets/Widget; sendEvent(ILorg/eclipse/swt/widgets/Event;)V at line 1094
      at [0x7132acc0] Lorg/eclipse/swt/widgets/Control; gtk_expose_event(II)I at line 2024
      at [0x7132ad10] Lorg/eclipse/swt/widgets/Composite; gtk_expose_event(II)I at line 605
      at [0x7132ad4c] Lorg/eclipse/swt/widgets/Widget; windowProc(III)I at line 1430
      at [0x7132ad84] Lorg/eclipse/swt/widgets/Display; windowProc(III)I at line 3796
      at [0x7132ada8] <invisible method>
      at [0x7132ae24] Lorg/jikesrvm/runtime/VM_Reflection; invoke(Lorg/jikesrvm/classloader/VM_Method;Ljava/lang/Object;[Ljava/lang/Object;Z)Ljava/lang/Object; at line 157
      at [0x7132ae6c] Lorg/jikesrvm/jni/ia32/VM_JNIHelpers; packageAndInvoke(Ljava/lang/Object;ILorg/vmmagic/unboxed/Address;Lorg/jikesrvm/classloader/VM_TypeReference;ZZ)Ljava/lang/Object; at line 293
      at [0x7132aea0] Lorg/jikesrvm/jni/ia32/VM_JNIHelpers; invokeWithVarArg(Ljava/lang/Object;ILorg/vmmagic/unboxed/Address;Lorg/jikesrvm/classloader/VM_TypeReference;Z)Ljava/lang/Object; at line 211
      at [0x7132aeec] Lorg/jikesrvm/jni/VM_JNIFunctions; CallIntMethodV(Lorg/jikesrvm/jni/VM_JNIEnvironment;IILorg/vmmagic/unboxed/Address;)I at line 1108
      at [0x7132af2c] <native frame>
      at [0x7132af4c] <native frame>
      at [0x7132af6c] <native frame>
      at [0x7132affc] <native frame>
      at [0x7132b18c] <native frame>
      at [0x7132b41c] <native frame>
      at [0x7132b44c] <native frame>
      at [0x7132b48c] <native frame>
      at [0x7132b4dc] <native frame>
      at [0x7132b4fc] <native frame>
      at [0x7132b528] Lorg/eclipse/swt/internal/gtk/OS; _gtk_main_do_event(I)V
      at [0x7132b54c] Lorg/eclipse/swt/internal/gtk/OS; gtk_main_do_event(I)V at line 5245
      at [0x7132b590] Lorg/eclipse/swt/widgets/Display; eventProc(II)I at line 1133
      at [0x7132b5b0] <invisible method>
      at [0x7132b62c] Lorg/jikesrvm/runtime/VM_Reflection; invoke(Lorg/jikesrvm/classloader/VM_Method;Ljava/lang/Object;[Ljava/lang/Object;Z)Ljava/lang/Object; at line 157
      at [0x7132b674] Lorg/jikesrvm/jni/ia32/VM_JNIHelpers; packageAndInvoke(Ljava/lang/Object;ILorg/vmmagic/unboxed/Address;Lorg/jikesrvm/classloader/VM_TypeReference;ZZ)Ljava/lang/Object; at line 293
      at [0x7132b6a8] Lorg/jikesrvm/jni/ia32/VM_JNIHelpers; invokeWithVarArg(Ljava/lang/Object;ILorg/vmmagic/unboxed/Address;Lorg/jikesrvm/classloader/VM_TypeReference;Z)Ljava/lang/Object; at line 211
      at [0x7132b6f4] Lorg/jikesrvm/jni/VM_JNIFunctions; CallIntMethodV(Lorg/jikesrvm/jni/VM_JNIEnvironment;IILorg/vmmagic/unboxed/Address;)I at line 1108
      at [0x7132b734] <native frame>
      at [0x7132b754] <native frame>
      at [0x7132b7e4] <native frame>
      at [0x7132b804] <native frame>
      at [0x7132b824] <native frame>
      at [0x7132b844] <native frame>
      at [0x7132b874] Lorg/eclipse/swt/internal/gtk/OS; _gdk_window_process_updates(IZ)V
      at [0x7132b8a0] Lorg/eclipse/swt/internal/gtk/OS; gdk_window_process_updates(IZ)V at line 3391
      at [0x7132b8cc] Lorg/eclipse/swt/widgets/Control; update(ZZ)V at line 3703
      at [0x7132b900] Lorg/eclipse/swt/widgets/Shell; setVisible(Z)V at line 1449
      at [0x7132b920] Lorg/eclipse/swt/widgets/Shell; open()V at line 996
      at [0x7132b93c] Lorg/eclipse/jface/window/Window; open()I at line 792
      at [0x7132b95c] Lorg/eclipse/ui/internal/WorkbenchWindow; open()I at line 677
      at [0x7132b988] Lorg/eclipse/ui/internal/Workbench; openWindowsAfterRestore()V at line 2886
      at [0x7132b9c0] Lorg/eclipse/ui/internal/Workbench; restoreState(Lorg/eclipse/ui/IMemento;)Lorg/eclipse/core/runtime/IStatus; at line 1686
      at [0x7132b9e4] Lorg/eclipse/ui/internal/Workbench; access$12(Lorg/eclipse/ui/internal/Workbench;Lorg/eclipse/ui/IMemento;)Lorg/eclipse/core/runtime/IStatus; at line 1650
      at [0x7132ba20] Lorg/eclipse/ui/internal/Workbench$17; run()V at line 1529
      at [0x7132ba40] Lorg/eclipse/core/runtime/SafeRunner; run(Lorg/eclipse/core/runtime/ISafeRunnable;)V at line 37
      at [0x7132ba68] Lorg/eclipse/ui/internal/Workbench; restoreState()Lorg/eclipse/core/runtime/IStatus; at line 1473
      at [0x7132ba84] Lorg/eclipse/ui/internal/WorkbenchConfigurer; restoreState()Lorg/eclipse/core/runtime/IStatus; at line 183
      at [0x7132baa4] Lorg/eclipse/ui/application/WorkbenchAdvisor; openWindows()Z at line 702
      at [0x7132bad0] Lorg/eclipse/ui/internal/Workbench; init()Z at line 1085
      at [0x7132bb0c] Lorg/eclipse/ui/internal/Workbench; runUI()I at line 1847
      at [0x7132bb34] Lorg/eclipse/ui/internal/Workbench; createAndRunWorkbench(Lorg/eclipse/swt/widgets/Display;Lorg/eclipse/ui/application/WorkbenchAdvisor;)I at line 419
      at [0x7132bb58] Lorg/eclipse/ui/PlatformUI; createAndRunWorkbench(Lorg/eclipse/swt/widgets/Display;Lorg/eclipse/ui/application/WorkbenchAdvisor;)I at line 149
      at [0x7132bb9c] Lorg/eclipse/ui/internal/ide/IDEApplication; run(Ljava/lang/Object;)Ljava/lang/Object; at line 95
      at [0x7132bbe0] Lorg/eclipse/core/internal/runtime/PlatformActivator$1; run(Ljava/lang/Object;)Ljava/lang/Object; at line 78
      at [0x7132bc10] Lorg/eclipse/core/runtime/internal/adaptor/EclipseAppLauncher; runApplication(Ljava/lang/Object;)Ljava/lang/Object; at line 92
      at [0x7132bc38] Lorg/eclipse/core/runtime/internal/adaptor/EclipseAppLauncher; start(Ljava/lang/Object;)Ljava/lang/Object; at line 68
      at [0x7132bc5c] Lorg/eclipse/core/runtime/adaptor/EclipseStarter; run(Ljava/lang/Object;)Ljava/lang/Object; at line 400
      at [0x7132bc9c] Lorg/eclipse/core/runtime/adaptor/EclipseStarter; run([Ljava/lang/String;Ljava/lang/Runnable;)Ljava/lang/Object; at line 177
      at [0x7132bcb8] <invisible method>
      at [0x7132bd34] Lorg/jikesrvm/runtime/VM_Reflection; invoke(Lorg/jikesrvm/classloader/VM_Method;Ljava/lang/Object;[Ljava/lang/Object;Z)Ljava/lang/Object; at line 128
      at [0x7132bdc8] Lorg/jikesrvm/runtime/VM_Reflection; invoke(Lorg/jikesrvm/classloader/VM_Method;Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object; at line 45
      at [0x7132bdc8] Ljava/lang/reflect/Method; invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object; at line 140
      at [0x7132be0c] Lorg/eclipse/core/launcher/Main; invokeFramework([Ljava/lang/String;[Ljava/net/URL;)V at line 336
      at [0x7132be3c] Lorg/eclipse/core/launcher/Main; basicRun([Ljava/lang/String;)V at line 280
      at [0x7132be74] Lorg/eclipse/core/launcher/Main; run([Ljava/lang/String;)I at line 977
      at [0x7132bea4] Lorg/eclipse/core/launcher/Main; main([Ljava/lang/String;)V at line 952
      at [0x7132bebc] <invisible method>
      at [0x7132bf38] Lorg/jikesrvm/runtime/VM_Reflection; invoke(Lorg/jikesrvm/classloader/VM_Method;Ljava/lang/Object;[Ljava/lang/Object;Z)Ljava/lang/Object; at line 132
      at [0x7132bfa8] Lorg/jikesrvm/scheduler/VM_MainThread; run()V at line 193
      at [0x7132bfd8] Lorg/jikesrvm/scheduler/VM_Thread; run()V at line 586
      at [0x7132c000] Lorg/jikesrvm/scheduler/VM_Thread; startoff()V at line 611

        Activity

        Hide
        Ian Rogers added a comment -

        Eclipse 3.2 will run if it is run on a local machine. 1 problem is that the JTOC gets filled. Solving that in the usual way gives this stack trace. What is happening is that eclipse calls the GetPrimitiveArrayCritical JNI function, which disables GC, then the native code calls select (that is hijacked by syswrap), that for a long select calls ioWaitSelect, tries to yield and dies.

        Show
        Ian Rogers added a comment - Eclipse 3.2 will run if it is run on a local machine. 1 problem is that the JTOC gets filled. Solving that in the usual way gives this stack trace. What is happening is that eclipse calls the GetPrimitiveArrayCritical JNI function, which disables GC, then the native code calls select (that is hijacked by syswrap), that for a long select calls ioWaitSelect, tries to yield and dies.
        Hide
        Ian Rogers added a comment -

        Modifying the select code to only do a green thread IO wait only when the VM has thread switching and GC enabled allows eclipse 3.2 to run stably. The JTOC also needs its size increasing.

        Show
        Ian Rogers added a comment - Modifying the select code to only do a green thread IO wait only when the VM has thread switching and GC enabled allows eclipse 3.2 to run stably. The JTOC also needs its size increasing.
        Hide
        Ian Rogers added a comment -

        Related fixes in r14736 and r14737.

        Show
        Ian Rogers added a comment - Related fixes in r14736 and r14737.

          People

          • Assignee:
            Ian Rogers
            Reporter:
            Ian Rogers
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved: