You might run into this too: when using Eclipse Helios (3.6.2 here), it sometimes crashes on an alleged double free in the JVM, detected by glibc.
That's actually a feature of glibc that serves to detect bugs and security issues, which kills a process that tries to free a previously allocated memory area that has already been freed.
In this case, however, it is most probably a false positive, but glibc still decides to kill the process.
The workaround is to run Eclipse with the environment variable MALLOC_CHECK_
set to 0
. There are several ways to achieve this:
- when you run eclipse from a shell, run it like this:
MALLOC_CHECK_=0 eclipse
- if you prefer to just run
eclipse
or by clicking on an icon, create the following file in your $HOME/bin, e.g. like this (just copy/paste into a shell):
cat<<EOF >"$HOME/bin/eclipse"
#!/bin/bash
export MALLOC_CHECK_=0
exec /usr/bin/eclipse "$@"
EOF
chmod 0755 "$HOME/bin/eclipse"
Note that with the latter option, you obviously need to adapt the fully qualified path to the
eclipse
script depending on how and where you installed it. If it comes from RPM packages, than
/usr/bin/eclipse
is fine. If, like me, you downloaded the tarball from eclipse.org and unpacked it somewhere under your home, you must change it accordingly -- e.g. to
$HOME/apps/eclipse/eclipse
In any case, you should NOT add export MALLOC_CHECK_=0
to your ~/.profile
or ~/.bashrc
as that would turn off that glibc check for ALL the applications and processes you would run. And that's a bad idea.
Labels: eclipse, java, linux, opensuse