Bug 375805 - Crash when going over a Java method with OpenJDK 1.7
Summary: Crash when going over a Java method with OpenJDK 1.7
Status: CLOSED WORKSFORME
Alias: None
Product: Platform
Classification: Eclipse Project
Component: SWT (show other bugs)
Version: 3.7   Edit
Hardware: PC Linux
: P3 major with 1 vote (vote)
Target Milestone: ---   Edit
Assignee: Project Inbox CLA
QA Contact: Grant Gayed CLA
URL:
Whiteboard:
Keywords: needinfo
Depends on:
Blocks:
 
Reported: 2012-04-01 16:16 EDT by Julien Gouesse CLA
Modified: 2016-12-20 11:47 EST (History)
7 users (show)

See Also:


Attachments
crash logs (68.66 KB, text/plain)
2012-04-01 16:17 EDT, Julien Gouesse CLA
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Julien Gouesse CLA 2012-04-01 16:16:24 EDT
Build Identifier: Version: 3.7.0 Build id: I20110613-1736

When I go over a Java method, instead of showing its Java documentation, Eclipse 3.7 simply crashes. I use the following version of Java:
java version "1.7.0_b147-icedtea"
OpenJDK Runtime Environment (mageia-2.0.4.mga2-i386)
OpenJDK Client VM (build 21.0-b17, mixed mode)

I get the following crash logs:
J  org.eclipse.swt.internal.gtk.OS._g_main_context_iteration(IZ)Z
J  org.eclipse.swt.internal.gtk.OS.g_main_context_iteration(IZ)Z
j  org.eclipse.swt.widgets.Display.readAndDispatch()Z+36
j  org.eclipse.jface.internal.text.html.BrowserInformationControl.setVisible(Z)V+52
j  org.eclipse.jface.text.AbstractInformationControlManager.showInformationControl(Lorg/eclipse/swt/graphics/Rectangle;)V+5
j  org.eclipse.jface.text.TextViewerHoverManager.showInformationControl(Lorg/eclipse/swt/graphics/Rectangle;)V+21
j  org.eclipse.jface.text.AbstractInformationControlManager.internalShowInformationControl(Lorg/eclipse/swt/graphics/Rectangle;Ljava/lang/Object;)V+344
j  org.eclipse.jface.text.AbstractInformationControlManager.presentInformation()V+70
j  org.eclipse.jface.text.AbstractHoverInformationControlManager.presentInformation()V+64
j  org.eclipse.jface.text.TextViewerHoverManager.doPresentInformation()V+1
j  org.eclipse.jface.text.TextViewerHoverManager$5.run()V+4
j  org.eclipse.swt.widgets.RunnableLock.run()V+11
j  org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Z)Z+29
j  org.eclipse.swt.widgets.Display.runAsyncMessages(Z)Z+5
j  org.eclipse.swt.widgets.Display.readAndDispatch()Z+61
j  org.eclipse.ui.internal.Workbench.runEventLoop(Lorg/eclipse/jface/window/Window$IExceptionHandler;Lorg/eclipse/swt/widgets/Display;)V+9
j  org.eclipse.ui.internal.Workbench.runUI()I+555
j  org.eclipse.ui.internal.Workbench.access$4(Lorg/eclipse/ui/internal/Workbench;)I+1
j  org.eclipse.ui.internal.Workbench$7.run()V+55
j  org.eclipse.core.databinding.observable.Realm.runWithDefault(Lorg/eclipse/core/databinding/observable/Realm;Ljava/lang/Runnable;)V+12
j  org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Lorg/eclipse/swt/widgets/Display;Lorg/eclipse/ui/application/WorkbenchAdvisor;)I+18
j  org.eclipse.ui.PlatformUI.createAndRunWorkbench(Lorg/eclipse/swt/widgets/Display;Lorg/eclipse/ui/application/WorkbenchAdvisor;)I+2
j  org.eclipse.ui.internal.ide.application.IDEApplication.start(Lorg/eclipse/equinox/app/IApplicationContext;)Ljava/lang/Object;+108
j  org.eclipse.equinox.internal.app.EclipseAppHandle.run(Ljava/lang/Object;)Ljava/lang/Object;+135
j  org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(Ljava/lang/Object;)Ljava/lang/Object;+103
j  org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(Ljava/lang/Object;)Ljava/lang/Object;+29
j  org.eclipse.core.runtime.adaptor.EclipseStarter.run(Ljava/lang/Object;)Ljava/lang/Object;+149
j  org.eclipse.core.runtime.adaptor.EclipseStarter.run([Ljava/lang/String;Ljava/lang/Runnable;)Ljava/lang/Object;+183
v  ~StubRoutines::call_stub
j  sun.reflect.NativeMethodAccessorImpl.invoke0(Ljava/lang/reflect/Method;Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;+0
j  sun.reflect.NativeMethodAccessorImpl.invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;+87
j  sun.reflect.DelegatingMethodAccessorImpl.invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;+6
j  java.lang.reflect.Method.invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;+57
j  org.eclipse.equinox.launcher.Main.invokeFramework([Ljava/lang/String;[Ljava/net/URL;)V+211
j  org.eclipse.equinox.launcher.Main.basicRun([Ljava/lang/String;)V+126
j  org.eclipse.equinox.launcher.Main.run([Ljava/lang/String;)I+4
v  ~StubRoutines::call_stub


Reproducible: Always

Steps to Reproduce:
1. Open Eclipse
2. Open a Java class
3. Go over any method of a class
Comment 1 Julien Gouesse CLA 2012-04-01 16:17:36 EDT
Created attachment 213429 [details]
crash logs
Comment 2 Olivier Thomann CLA 2012-04-01 17:27:26 EDT
Move to Platform/SWT
Comment 3 Julien Gouesse CLA 2012-04-02 03:15:11 EDT
This bug is still reproducible with:
Version: 3.7.2
Build id: M20120208-0800
Comment 4 Julien Gouesse CLA 2012-04-02 04:03:13 EDT
This bug is not reproducible with Oracle Java 1.7 update 3. I used the VM argument in command line with another version of Eclipse 3.7:
Version: 3.7.1
Build id: M20110909-1335

It is not reproducible with OpenJDK 1.6:
java version "1.6.0_17"
OpenJDK Runtime Environment (IcedTea6 1.7.5) (rhel-1.16.b17.el5-x86_64)
OpenJDK 64-Bit Server VM (build 14.0-b16, mixed mode)

It is not reproducible with Oracle Java 1.6 update 30.
Comment 5 Silenio Quarti CLA 2012-04-02 16:59:31 EDT
Grant to investigate.  The crash happens in a call to setjmp inside of webkit.  

Julien, this looks like a problem in OpenJDK 1.7.  You probably need to open a bug against OpenJDK.
Comment 6 Julien Gouesse CLA 2012-04-03 04:54:34 EDT
(In reply to comment #5)
> Grant to investigate.  The crash happens in a call to setjmp inside of webkit.  
> 
> Julien, this looks like a problem in OpenJDK 1.7.  You probably need to open a
> bug against OpenJDK.

Hi

As I reproduced this bug only on a beta version of Mageia, I prefer performing some other tests on another GNU Linux distros in order to be sure that this bug comes from a particular version of Webkit or OpenJDK 1.7. I'm going to switch to a stable Debian and when it is done, I will try Eclipse 3.7.2 with several versions of OpenJDK.

Of course, I will open a bug against OpenJDK if necessary.
Comment 7 Grant Gayed CLA 2012-04-04 11:00:48 EDT
Moving bug in the meantime, and changing Importance since it's not clear whether this is an SWT issue.
Comment 8 Julien Gouesse CLA 2012-04-19 04:22:14 EDT
I created a bug report in OpenJDK bug tracker:
https://bugs.openjdk.java.net/show_bug.cgi?id=100246
Comment 9 Matěj Cepl CLA 2012-04-19 20:24:54 EDT
Works for me with 

wycliff:beaker-hosts-selection (master) $ java -version
java version "1.7.0_03-icedtea"
OpenJDK Runtime Environment (rhel-2.1.f17.7-x86_64)
OpenJDK 64-Bit Server VM (build 22.0-b10, mixed mode)

on Fedora 17 with Eclipse from eclipse.org jars (Version: 3.7.2.r37x_v20111213-7Q7xALDPb32vCjY6UACVPdFTz-icPtJkUadz0lMmk4z-8
Build id: M20120208-0800).
Comment 10 Nicholas Hogg CLA 2012-05-06 22:46:40 EDT
Not sure this is an OpenJDK bug.

I have this issue running latest Arch linux with the following Oracle jdk's:
Oracle jdk 7u3-1
Oracle jdk 7.4-1

Eclipse version is:
Eclipse Java EE IDE for Web Developers.
Version: Indigo Service Release 2
Build id: 20120216-1857

This error does not occur when I run the above Oracle JDK's with the previous version of Eclipse I used:
Eclipse Java EE IDE for Web Developers.
Version: Helios Release
Build id: 20100617-1415
Comment 11 Julien Gouesse CLA 2012-05-07 05:29:10 EDT
(In reply to comment #10)
> Not sure this is an OpenJDK bug.
> 
> I have this issue running latest Arch linux with the following Oracle jdk's:
> Oracle jdk 7u3-1
> Oracle jdk 7.4-1
> 
> Eclipse version is:
> Eclipse Java EE IDE for Web Developers.
> Version: Indigo Service Release 2
> Build id: 20120216-1857
> 
> This error does not occur when I run the above Oracle JDK's with the previous
> version of Eclipse I used:
> Eclipse Java EE IDE for Web Developers.
> Version: Helios Release
> Build id: 20100617-1415

Hi

It's strange as it is not reproducible with OpenJDK 1.7 update 3. Do you get exactly the same crash?
Comment 12 Nicholas Hogg CLA 2012-05-07 18:07:21 EDT
Yes, when I mouse-over a method Eclipse crashes with the following at the top of the stack trace:
J  org.eclipse.swt.internal.gtk.OS._g_main_context_iteration(IZ)Z
J  org.eclipse.swt.widgets.Display.readAndDispatch()Z
j  org.eclipse.jface.internal.text.html.BrowserInformationControl.setVisible(Z)V+52
j  org.eclipse.jface.text.AbstractInformationControlManager.showInformationControl(Lorg/eclipse/swt/graphics/Rectangle;)V+5
j  org.eclipse.jface.text.TextViewerHoverManager.showInformationControl(Lorg/eclipse/swt/graphics/Rectangle;)V+21
j  org.eclipse.jface.text.AbstractInformationControlManager.internalShowInformationControl(Lorg/eclipse/swt/graphics/Rectangle;Ljava/lang/Object;)V+344
j  org.eclipse.jface.text.AbstractInformationControlManager.presentInformation()V+70
j  org.eclipse.jface.text.AbstractHoverInformationControlManager.presentInformation()V+64
j  org.eclipse.jface.text.TextViewerHoverManager.doPresentInformation()V+1
j  org.eclipse.jface.text.TextViewerHoverManager$5.run()V+4
J  org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Z)Z
J  org.eclipse.swt.widgets.Display.readAndDispatch()Z
j  org.eclipse.ui.internal.Workbench.runEventLoop(Lorg/eclipse/jface/window/Window$IExceptionHandler;Lorg/eclipse/swt/widgets/Display;)V+9
j  org.eclipse.ui.internal.Workbench.runUI()I+555
j  org.eclipse.ui.internal.Workbench.access$4(Lorg/eclipse/ui/internal/Workbench;)I+1
Comment 13 Nicholas Hogg CLA 2012-05-15 17:44:41 EDT
I've found the cause of my issue.  

I suspected it was a WebKit issue, and found my logs that /usr/lib/libwebkitgtk-1.0.so.0 was being dynamically linked in.  According to http://www.eclipse.org/swt/faq.php#howusewebkit WebKitGTK 1.2.0 or newer must be used.  I found that on my system I had /usr/lib/libwebkitgtk-1.0.so.0 and /usr/lib/libwebkitgtk-3.0.so.0.
I checked package ownership for these libraries and found I had 'libwebkit' and 'libwebkit3' packages installed - the former an orphan.  Removing the 'libwebkit' package resolved the problem as the libwebkitgtk-3.0.so.0 is now being linked.

I am running the latest Arch Linux.  As with my post above, the OP does not include the libraries being linked.  Please check which version of libwebkit/libwebkitgtk are being linked in case the cause is similar to mine.
Comment 14 Grant Gayed CLA 2012-05-16 10:34:50 EDT
(In reply to comment #13)

I suspect that it's not crashing for you because Browser functionality is now disabled.  Can you go to Window > Show View > Other..., then General - Internal Web Browser, and see if you can navigate anywhere?
Comment 15 Nicholas Hogg CLA 2012-05-16 16:27:06 EDT
(In reply to comment #13)

You're right, the internal browser is disabled.  Without going on too much of a tangent from the topic, why is that?

I am able to view javadocs when hovering over methods where previously I couldn't.
Comment 16 Grant Gayed CLA 2012-05-16 16:59:01 EDT
/usr/lib/libwebkitgtk-1.0.so.0 refers to a 1.x-stream WebKitGTK, but not specifically to 1.0, so it likely was a supported WebKitGTK release.  Once it was deleted the Browser startup failed early in the process and recovered (not finding a usable native browser is not so uncommon and needs to be handled).  /usr/lib/libwebkitgtk-3* refers to the WebKitGTK stream for use by GTK 3.x-based apps, which is currently not us.
Comment 17 Julien Gouesse CLA 2012-09-09 11:31:21 EDT
Grant, how can I force Eclipse to use a particular version of WebKit? I cannot do the same thing than Nicholas because Gimp and some other programs under Mageia Linux 2 still use libwebkitgtk-1.0.
Comment 18 Julien Gouesse CLA 2012-09-09 15:31:13 EDT
I have found a workaround. Put the followong lines at the end of eclipse.ini:
-Dorg.eclipse.swt.browser.DefaultType=mozilla
-Dorg.eclipse.swt.browser.XULRunnerPath=/usr/lib/xulrunner-2.0.1/

Of course, you may have to modify it a bit if you use another version of XulRunner. If your version of XulRunner is incompatible with Eclipse, try to install libwebkitgtk 1.2 or later and don't use my previous suggestion.
Comment 19 Eric Williams CLA 2016-12-20 11:47:55 EST
I can't reproduce this issue.