RCPTT/Common problems on Linux
Linux users sometimes encounter bugs of Indigo platform. RCPTT indicates such problems. In the following table there are log snippets, which you can find in AUT’s or RCPTT IDE’s console log. Most of these problems are solved by adding startup arguments into eclipse configuration file. If an exception is found in RCPTT IDE log (it is located in {rcpttWorkspace}/.metadata/.log) then startup flag from the second column should be added to rcptt.ini, if it is found in AUT.log (it is located in {rcpttWorkspace}/.metadata/.plugins/org.eclipse.pde.core/{AUT_NAME}/console.log) then flag should be added to AUT’s ini file.
Symptoms | Solution |
---|---|
Eclipse shows splash screen and then falls. | Replace -showsplash with -nosplash |
https://bugs.eclipse.org/bugs/show_bug.cgi?id=404776 # A fatal error has been detected by the Java Runtime Environment: # # SIGSEGV (0xb) at pc=0x00007f272b1e7718, pid=9183, tid=139806513141504<br/> # # JRE version: Java(TM) SE Runtime Environment (7.0_71-b14) (build 1.7.0_71-b14) # Java VM: Java HotSpot(TM) 64-Bit Server VM (24.71-b01 mixed mode linux-amd64 compressed oops) # Problematic frame: # C [libgobject-2.0.so.0+0x19718] g_object_get_qdata+0x18 OR # Problematic frame: # C [libsoup-2.4.so.1+0x6f451] soup_session_feature_detach+0x11
|
Add to vmarg:
-Dorg.eclipse.swt.browser.DefaultType=mozilla |
https://bugs.eclipse.org/bugs/show_bug.cgi?id=441705 java: cairo-misc.c:380: _cairo_operator_bounded_by_source: Assertion `NOT_REACHED' failed. |
Add to vmarg:
-Dorg.eclipse.swt.internal.gtk.cairoGraphics=false |
https://bugs.eclipse.org/bugs/show_bug.cgi?id=430736 (java:3312): GLib-GObject-WARNING **: cannot register existing type `GdkDisplayManager' (java:3312): GLib-CRITICAL **: g_once_init_leave: assertion `initialization_value != 0' failed (java:3312): GLib-GObject-CRITICAL **: g_object_new: assertion `G_TYPE_IS_OBJECT (object_type)' failed (java:3312): GLib-GObject-WARNING **: invalid (NULL) pointer instance (java:3312): GLib-GObject-CRITICAL **: g_signal_connect_data: assertion `G_TYPE_CHECK_INSTANCE (instance)' failed (java:3312): GLib-GObject-WARNING **: invalid (NULL) pointer instance (java:3312): GLib-GObject-CRITICAL **: g_signal_connect_data: assertion `G_TYPE_CHECK_INSTANCE (instance)' failed (java:3312): GLib-GObject-WARNING **: cannot register existing type `GdkDisplay' (java:3312): GLib-CRITICAL **: g_once_init_leave: assertion `initialization_value != 0' failed (java:3312): GLib-GObject-CRITICAL **: g_type_register_static: assertion `parent_type > 0' failed (java:3312): GLib-CRITICAL **: g_once_init_leave: assertion `initialization_value != 0' failed (java:3312): GLib-GObject-CRITICAL **: g_object_new: assertion `G_TYPE_IS_OBJECT (object_type)' failed # # A fatal error has been detected by the Java Runtime Environment: # # SIGSEGV (0xb) at pc=0x00007f10648bfd41, pid=3312, tid=139708783437568 # # JRE version: 7.0_21-b02 # Java VM: OpenJDK 64-Bit Server VM (23.7-b01 mixed mode linux-amd64 compressed oops) # Problematic frame: # C [libgdk-x11-2.0.so.0+0x4fd41] gdk_display_open+0x41 |
Add to application arguments:
--launcher.GTK_version |
!STACK 1 org.eclipse.core.runtime.CoreException: Broken pipe ---- org.eclipse.ecl.core.impl.SaveStateImpl@5070dd7c (host: null) at com.xored.q7.internal.launching.aut.BaseAutLaunch.executeAndTakeAll(BaseAutLaunch.java:229) at com.xored.q7.internal.launching.aut.BaseAutLaunch.dumpState(BaseAutLaunch.java:776) at com.xored.q7.internal.launching.aut.BaseAutLaunch.internalExecute(BaseAutLaunch.java:814) Caused by: java.net.SocketException: Broken pipe at java.net.SocketOutputStream.socketWrite0(Native Method) at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:113) at java.net.SocketOutputStream.write(SocketOutputStream.java:138) at java.io.DataOutputStream.writeByte(DataOutputStream.java:153) at org.eclipse.ecl.internal.core.EMFStreamPipe.write(EMFStreamPipe.java:146) at org.eclipse.ecl.client.tcp.EclTcpSession$1.run(EclTcpSession.java:93) OR !MESSAGE Couldn't open ECL session !STACK 0 java.net.ConnectException: Connection refused at java.net.PlainSocketImpl.socketConnect(Native Method) at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:339) at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:200) at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:182) at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392) at java.net.Socket.connect(Socket.java:579) at java.net.Socket.connect(Socket.java:528) |
It means that the root cause of problem is in the AUT and it is useful to investigate it's log. Most likely, one of the problems described above will be found. To solve the problem, you need to add the corresponding flag to the configuration file of the AUT. After editing AUT.ini, it is necessary to add the AUT to the RCPTT again or manually add flags to AUT configuration. |
After adding all the mentioned flags rcptt.ini for Linux RCPTT will include the following lines:
... -nosplash --launcher.GTK_version 2 --launcher.appendVmargs -vmargs -Dorg.eclipse.swt.browser.DefaultType=mozilla -Dorg.eclipse.swt.internal.gtk.cairoGraphics=false ...