F20 + Eclipse + Google Talk Plugin = A Bad Time

by rgrunber

A little while ago, a colleague discovered a strange issue that seems to make Eclipse crash fairly predictably. With the release of Fedora 20, I’ve seen others discover this bug. It’s known upstream and the obvious approaches (Comments 18, and 21) don’t seem to work as expected. It seems that disabling plugin support isn’t enough because the API itself is likely calling dlopen to load the plugins and maybe inserting them into some registry. This is sufficient to cause the crash. I was thinking about maybe disabling the dlopen call altogether on the relevant plugins as a temporary workaround / proof of concept, and it seems like a promising approach.

probe process("/lib64/libdl.so").function("__dlopen") {
 f = user_string($file)
 if ( cmdline_str() =~ "org.eclipse" && f =~ "google" ) {
 printf ("disabling dlopen for %s (%d) on %s \n", execname(), pid(), f)
 $file=0
 }
}
stap -v -g --suppress-handler-errors dlopen.stp

f20-eclipse-google-talkplugin

To be honest, I haven’t tried running this for any significant period of time so this is somewhere in between just a toy example and a workaround for people who really need both Eclipse and Google Talk Plugin on their systems. This isn’t ideal, but probably an improvement from ‘yum remove -y google-talkplugin’, and I couldn’t help trying a random hack to “fix” it.

It looks like SystemTap is a really awesome, versatile tool, but maybe I’m pushing square pegs through a round hole as well. I guess I should take on world peace for my next post .. using SystemTap (I’m sure there’s a tapset for that).

About these ads