Internal: Patch available for IDL 8.1 Workbench crash problem caused by GDI object / handle leak
Anonym
Note: This problem has been fixed in IDL 8.2 and later. |
Topic:
While stepping through an IDL program that is running in the IDL 8.1 Workbench, some IDL users have experienced a sudden Workbench hang and then a crash.
An examination of the IDL Workbench session's debug log file includes the following error
org.eclipse.swt.SWTError: No more handles
The Workbench debug log file can be viewed as follows:
- Launch an IDL 8.1 Workbench session.
- From the "Help" menu select "About IDL".
- On the dialog that appears, click on "Installation Details".
- Go to the "Configuration" tab.
- Click on "View Error Log".
Discussion:
This problem is caused by an system resource leak by the IDL Workbench (idlde), which may occur while a user steps through an IDL program that is running in IDL Workbench session while the "Variables" view is open.
On Windows, the leaked system resources are called "GDI objects." When the GDI objects used by the program exceeds 10,000 then the program is unable to continue and crashes.
To view a Windows program's GDI object usage of a Windows process:
- Open the Windows Task Manager utility
- Click on the Processes tab
- Then View > Columns...
- Check the box labeled "GDI Objects" then click OK.
|
Solution:
Note
The following steps may require administrator level privileges to complete. If needed, contact your system administrator for assistance. |
To fix this problem for IDL 8.1 download the following patch file:
and then follow the instructions below to install it.
This patch file is a replacement for an existing file of the same name located in the IDL 8.1 installation. The default location of this file is:
- 32-bit IDL for Windows:
C:\Program Files\ITT\IDL\IDL81\bin\bin.x86\plugins\com.rsi.idldt.ui_8.1.0.jar
- 64-bit IDL for Windows:
C:\Program Files\ITT\IDL\IDL81\bin\bin.x86_64\plugins\com.rsi.idldt.ui_8.1.0.jar
- 32-bit and 64-bit IDL for Linux:
/usr/local/itt/idl/idl81/idlde/plugins/com.rsi.idldt.ui_8.1.0.jar
- 32-bit and 64-bit IDL for Mac OS X:
/Applications/itt/idl/idl81/idlde/plugins/com.rsi.idldt.ui_8.1.0.jar
After obtaining the IDL 8.1 patch file, to install it do the following:
- Quit out of any IDL Workbench sessions.
- Go to the "plugins" directory of the IDL 8.1 installation as indicated above, for your platform.
- In that directory, locate the existing file named: "com.rsi.idldt.ui_8.1.0.jar".
- Rename the file to "com.rsi.idldt.ui_8.1.0.jar.old".
- Copy the replacement patch file into the same folder to replace the renamed file.
After installation of the patch file, IDL 8.1 Workbench should run without the resource leak problem described above.
Workaround for IDL Workbench 8.0x, 7.1x, 7.0x
This problem can occur with previous versions of the IDL Workbench (v8.0, 7.1, 7.0) but the patch is only available for IDL 8.1. For previous versions of the IDL, if it is not possible to upgrade to IDL 8.1, a work-around for this problem is to hide or minimize the Variables view pane except when explicitly needed, in order to minimize the GDI object/handle leaks. Also, periodically exiting and restarting your workbench session can help to avoid a crash caused by this problem. |