rgrunber

EclipseCon NA 2014

As I was working on some upcoming blog posts, I realized I’d completely forgotten to mention EclipseCon!┬áIt’s always nice to put a name to a face, and meet in person to discuss things. I gave a talk on Delivering Native Eclipse Software Packages , but this was mainly an opportunity to introduce the p2 Droplets work that was done by Krzysztof Daniel. This will be part of Eclipse Luna (4.4) but there’s still some improvements that could be made. It’s really a promising way forward for allowing distributions to package, and install their own Eclipse plugins without the deprecated (and unreliable) dropins approach.

Zombie Drive

I had a hard disk fail a while ago after about 2 years of use. It wasn’t even being detected as a physical device. It wasn’t that big of a deal as everything was backed up, but I was curious if there was any way to access it once again. I heard a suggestion from a colleague to try freezing the disk in the hopes of getting a last chance to access the data.

Solution : I placed the drive in a ziplock bag, and placed that bag into a larger plastic bag (I couldn’t find another ziplock bag). I left that in the fridge for about 3 hours. I then removed the drive from the bags and reconnected it. The first few times, it failed. Given that it was likely dead, a colleague decided to give it a few bashes (I believe the technical term is ‘kickstarts’). I don’t know if it was the freezing, or just the bashing but the combination allowed me to boot from the disk.

I did not expect that to work.

I tried booting from the drive a few days later, and it also seemed to work. I haven’t connected that drive back in a while, and it may indeed be back to normal but I wouldn’t trust it with anything.

F20 + Eclipse + Google Talk Plugin = A Bad Time

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).

Follow

Get every new post delivered to your Inbox.