Community
Participate
Working Groups
Exception when launching a SWT process via the IAC on Linux. When launching a SWT process (e.g. enclosed sample SWT process or the TPTP Manual Test View) - probably any process containing a UI - via the IAC on Linux, the following exception is thrown: org.eclipse.swt.SWTError: No more handles [gtk_init_check() failed] Based on https://bugs.eclipse.org/bugs/show_bug.cgi?id=115822#c12, this is caused by the process not being able to connect to the X server. The connection to the X server can fail in the following ways: 1. The DISPLAY environment variable is unset 2. The host/port information is wrong 3. The X server is down 4. The socket to the X server is on too high of a file descriptor I traced this problem to the org.eclipse.hyades.execution/src-local/org/eclipse/tptp/platform/agentcontroller/internal/impl/HyadesMessageProcessorImpl.java#handleLaunchProcess(String,String,Command) method where it is calling /org.eclipse.hyades.execution/src-local/org/eclipse/tptp/platform/agentcontroller/internal/impl/PlatformUtility.java#launchProcess(String,String[],String) which calls java.lang.Runtime#exec(String,String[],File). By passing in the environment array, the launched process does not inherit the environment of the current process (e.g. Eclipse's JVM). As such, the launched process does not have a handle to the local display (despite setting the DISPLAY environment variable) to render the UI. See the enclosed example for more details. Interestingly, setting the DISPLAY environment variable to a remote machine with an accessible X server (e.g. Windows XP running Exceed), the UI is rendered on the remote machine.
Created attachment 45933 [details] Example plugin to reproduce the defect and a possible solution. This example plugin works the TPTP-4.2.0-200606190100B driver on Linux (IA32).
As per discussion with Paul, this will affect any application with a ui that is launched via IAC on Linux. However the problem can be circumvented by using the RAC instead of IAC and therefore, I am asking Paul to change the severity from Blocker to Critical. It is agreed that the best way to fix the problem is to get the JDK to fix Runtime.Exec but we both believe that will take longer than we can afford. In the meantime, it is agreed that the workaround he has described/protoyped (ie: to launch apps via a wrapper shell script that will setup the environment and invoke the actual app) is the most expedient way to fix the problem but it is risky because it affects delicate RAC code that requires Samson's hand if we are to make the risk acceptable. Therefore, we agree to proceed as follows: 1) downgrade severity to critical 1) provide a release note for the problem/workaround for 4.2.0.1 and 4.2.1 2) defer the wrapper fix to 4.3 (so that Samson can do it) 3) pursue JDK (as time permits) to fix Runtime.Exec
Setting priority to P1 as well.
(In reply to comment #2) Created readme entries for the Platform (Java profiling) and Test (Manual Test View). Note, please remove these entries when this defect is fixed. Please open a IBM and/or Sun JVM defect for this issue.
Increasing to blocker since Manual Test execution using the IAC is a very common use case.
Targetting 4.2 i2. Need to fix before exiting this iteration.
removing blocker tag per discussion at AB call. Re-triaging to i3.
Setting this to P2 to make sure bug 159179 is highest in priority.
Not containable in 4.3 and retarget to 4.4. Please let me know if you have any concern.
Set priority to P1 for 4.4 plan closure.
Not containable in 4.4.
(In reply to comment #11) > Not containable in 4.4. How can we defer a defect that is blocking Test Tool function for a very common use case (local Manual Test execution using the IAC on Linux)? Will this be addressed in the new IAC? If not, we need to reconsider for 4.4.
See again when testing the TPTP-4.4.0-200703270100A driver. This defect needs to be reconsidered for 4.4.
Should be resolved with the implementation of the new IAC described in bugzilla 173330.
Confirmed that this defect is not encountered using the stand-alone AC.
plan keyword is only for defects approved officially in the TPTP 4.4 plan
Fixed as a result of bug 173330.
Verified in TPTP-4.4.0-200706140100C.