IDL and ENVI may crash on Red Hat 5 or CentOS 5 Linux systems if $TERM is set to "rxvt"
IDL and ENVI may crash on Red Hat 5 or CentOS 5 Linux systems if $TERM is set to "rxvt".
PROBLEM:
Using Red Hat 5 or CentOS 5 Linux, if the system environment variable $TERM is set to "rxvt" in the shell used to start IDL or ENVI, then the IDL or ENVI session can crash.
The actual error message encountered can vary. Here are excerpts from some error messages encountered when attempting to start IDL or ENVI on such systems:
- Segmentation fault
- *** glibc detected *** /usr/local/itt/idl64/bin/bin.linux.x86/idl: free(): invalid next size (normal): 0x0820b2c0 ***
- *** glibc detected *** /usr/local/rsi/idl_6.3/bin/bin.linux.x86_64/idl: malloc(): memory corruption: 0x0000000017733280 ***
(Verbose excerpts of examples error messages are shown in the Discussion section of this article):
Discussion:
To determine the $TERM setting of your shell environment, issue the command:
Starting an IDL or ENVI session from a shell that has the $TERM system variable set to rxvt may result in the IDL or ENVI session crashing, with various error messages. For example:
- % idl
IDL Version 6.4 (linux x86_64 m64). (c) 2007, ITT Visual Information Solutions
Segmentation fault
- % idl -32
IDL Version 6.4 (linux x86 m32). (c) 2007, ITT Visual Information Solutions
*** glibc detected *** /rsi/support/distrib/unix/idl64/idl64/bin/bin.linux.x86/idl: free(): invalid next size (normal): 0x0820b2c0 ***
======= Backtrace: =========
/lib/libc.so.6[0x1acf7d]
/lib/libc.so.6(cfree+0x90)[0x1b05d0]
...
- % idl
IDL Version 6.3 (linux x86_64 m64). (c) 2006, Research Systems, Inc.
*** glibc detected *** /usr/local/itt/idl_6.3/bin/bin.linux.x86_64/idl: malloc(): memory corruption: 0x0000000017733280 ***
======= Backtrace: =========
/lib64/libc.so.6[0x3b1746ef54]
/lib64/libc.so.6(__libc_malloc+0x7d)[0x3b174706dd]
...
WORKAROUND:
A workaround to this problem is to set the TERM variable to an alternative terminal value string (e.g., "xterm") that does not cause IDL or ENVI to crash. For example:
(csh or tcsh)
setenv TERM xterm
(Bash shell)
export TERM=xterm
Additionally, if you are actually using a "rxvt" terminal window, you may instead wish to use a terminal window type that corresponds to the new $TERM setting. In this example, an "xterm" window would be used.
(For information about terminal window applications, refer to your system or application documentation.)