OpenHAB designer causes crash in soup_session_feature_detach

Bug #1406981 reported by Marius B. Kotsbak on 2015-01-01
10
This bug affects 2 people
Affects Status Importance Assigned to Milestone
Eclipse
Fix Released
Medium
libsoup
Unknown
Medium
libsoup2.4 (Debian)
New
Unknown
libsoup2.4 (Ubuntu)
Undecided
Unassigned

Bug Description

Running OpenHAB designer through any Java VM (tried 1.7, 1.8 and Oracle 1.8), causes a crash in libsoup:

#
# A fatal error has been detected by the Java Runtime Environment:
#
# SIGSEGV (0xb) at pc=0x00007fb377829451, pid=11209, tid=140412652816128
#
# JRE version: Java(TM) SE Runtime Environment (8.0_25-b17) (build 1.8.0_25-b17)
# Java VM: Java HotSpot(TM) 64-Bit Server VM (25.25-b02 mixed mode linux-amd64 compressed oops)
# Problematic frame:
# C [libsoup-2.4.so.1+0x6f451] soup_session_feature_detach+0x11
#
# Failed to write core dump. Core dumps have been disabled. To enable core dumping, try "ulimit -c unlimited" before starting Java again
#
# An error report file with more information is saved as:
# /home/marius_priv/projects/openHAB/designer/hs_err_pid11209.log
#
# If you would like to submit a bug report, please visit:
# http://bugreport.sun.com/bugreport/crash.jsp
# The crash happened outside the Java Virtual Machine in native code.
# See problematic frame for where to report the bug.

ProblemType: Bug
DistroRelease: Ubuntu 14.10
Package: libsoup2.4-1 2.46.0-3
ProcVersionSignature: Ubuntu 3.16.0-28.38-generic 3.16.7-ckt1
Uname: Linux 3.16.0-28-generic x86_64
NonfreeKernelModules: nvidia
ApportVersion: 2.14.7-0ubuntu8
Architecture: amd64
CurrentDesktop: KDE
Date: Thu Jan 1 20:51:53 2015
DistributionChannelDescriptor:
 # This is a distribution channel descriptor
 # For more information see http://wiki.ubuntu.com/DistributionChannelDescriptor
 canonical-oem-somerville-precise-amd64-20130203-1
InstallationDate: Installed on 2014-03-12 (295 days ago)
InstallationMedia: Ubuntu 12.04 "Precise" - Build amd64 LIVE Binary 20130203-13:50
SourcePackage: libsoup2.4
UpgradeStatus: No upgrade log present (probably fresh install)

Created attachment 229266
Patch for the crash

With recent versions of WebKitGTK+, Eclipse crashes whenever Javadoc hover help is to be displayed in Java editor.

Looks this happens because WebKit doesn't attach a default Authenticate listener and therefore WebKitGTK.soup_session_get_feature() returns 0 in WebKit.create(). See attached patch for fix.

Reproduced with all 3.8, 4.2 and 4.3 versions of SWT.

Created attachment 229267
Example crash report

Created attachment 229268
Patch for the crash

Thanks for investigating this Jakub, targeting for 4.3. From the crash report:

Stack: [0x00007f3e62e0d000,0x00007f3e62f0e000], sp=0x00007f3e62f0b3a0, free space=1016k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
C [libsoup-2.4.so.1+0x72d59] soup_session_feature_detach+0x19

Java frames: (J=compiled Java code, j=interpreted, Vv=VM code)
j org.eclipse.swt.internal.webkit.WebKitGTK._soup_session_feature_detach(JJ)V+0
j org.eclipse.swt.internal.webkit.WebKitGTK.soup_session_feature_detach(JJ)V+9
j org.eclipse.swt.browser.WebKit.create(Lorg/eclipse/swt/widgets/Composite;I)V+919
j org.eclipse.swt.browser.Browser.<init>(Lorg/eclipse/swt/widgets/Composite;I)V+81
j org.eclipse.jface.internal.text.html.BrowserInformationControl.isAvailable(Lorg/eclipse/swt/widgets/Composite;)Z+12
j org.eclipse.jdt.internal.ui.text.java.hover.JavadocHover$HoverControlCreator.doCreateInformationControl(Lorg/eclipse/swt/widgets/Shell;)Lorg/eclipse/jface/text/IInformationControl;+18
j org.eclipse.jface.text.AbstractReusableInformationControlCreator.createInformationControl(Lorg/eclipse/swt/widgets/Shell;)Lorg/eclipse/jface/text/IInformationControl;+20
j org.eclipse.jface.text.AbstractInformationControlManager.getInformationControl()Lorg/eclipse/jface/text/IInformationControl;+176
j org.eclipse.jface.text.AbstractInformationControlManager.internalShowInformationControl(Lorg/eclipse/swt/graphics/Rectangle;Ljava/lang/Object;)V+18
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

*** Bug 405786 has been marked as a duplicate of this bug. ***

Grant,
Any plans to accept the patch soon? It is impossible to launch Kepler builds on Fedora 19 because of this.

For a workaround add the following to the end of your eclipse.ini

-Dorg.eclipse.swt.browser.DefaultType=mozilla

(In reply to comment #6)
> For a workaround add the following to the end of your eclipse.ini
>
> -Dorg.eclipse.swt.browser.DefaultType=mozilla

Mozilla is even less reliable as it breaks with every firefox update ans SWT doesn't support recent xulrunner versions (20.0 here) -at least it wasn't last I checked.

Works for me on openSUSE 12.3

In , René (rkrell) wrote :

In which environment, the same one with GNOME 3.8 (separate repository GNOME:STABLE) using libsoup 2.42.0? See also bug 405786.
Also in this report there was said "with recent versions of WebkitGTK+" (which is not a standard OpenSUSE 12.3)

(In reply to comment #8)
> Works for me on openSUSE 12.3

Ah I am using GNOME:Stable:3.8 repo.

In , René (rkrell) wrote :

(In reply to comment #10)
> Ah I am using GNOME:Stable:3.8 repo.

I use apparently (almost) the same environment OpenSUSE 12.3 + GNOME:Stable:3.8 and it crashes. Before updating to GNOME:Stable:3.8 it didn't crash for several weeks of intensive work with Eclipse. Therefore I'd rather ask:
- You don't override -Dorg.eclipse.swt.browser.DefaultType in eclipse.ini?
- Did you try the Javadoc hovers in some open Java editor for a while?

(In reply to comment #11)
> (In reply to comment #10)
> > Ah I am using GNOME:Stable:3.8 repo.
>
> I use apparently (almost) the same environment OpenSUSE 12.3 +
> GNOME:Stable:3.8 and it crashes. Before updating to GNOME:Stable:3.8 it
> didn't crash for several weeks of intensive work with Eclipse. Therefore I'd
> rather ask:
> - You don't override -Dorg.eclipse.swt.browser.DefaultType in eclipse.ini?
> - Did you try the Javadoc hovers in some open Java editor for a while?

1. I have -Dorg.eclipse.swt.browser.DefaultType=mozilla in my eclipse.ini
2. Yes I did, I opened an Android project and checked docs for multiple functions. Works fine.

In , René (rkrell) wrote :

Oh Ismail, sorry, I think I got the message after I've noticed your comments above. You tried the workaround, not the standard Eclipse.
The workaround with the "mozilla" default type works for me, too, using Firefox 20 (xulrunner-17.0.5-2.1.x86_64).

(In reply to comment #11)
> (In reply to comment #10)
> > Ah I am using GNOME:Stable:3.8 repo.
>
> I use apparently (almost) the same environment OpenSUSE 12.3 +
> GNOME:Stable:3.8 and it crashes. Before updating to GNOME:Stable:3.8 it
> didn't crash for several weeks of intensive work with Eclipse. Therefore I'd
> rather ask:
> - You don't override -Dorg.eclipse.swt.browser.DefaultType in eclipse.ini?
> - Did you try the Javadoc hovers in some open Java editor for a while?

(In reply to comment #5)
> Any plans to accept the patch soon? It is impossible to launch Kepler builds
> on Fedora 19 because of this.

A fix will be in for 4.3M7. I don't have a built WebKitGTK 2.0 to use yet, and I want to do a good test pass with it.

Fixed > 20130425, commit: http://git.eclipse.org/c/platform/eclipse.platform.swt.git/commit/?id=b22a7d19afbe2a3811a0f8aa54c1e85d92c62a2c .

Logged bug 406605 for new problem with the WebKitGTK 2.0 default authentication prompter.

*** Bug 406736 has been marked as a duplicate of this bug. ***

*** Bug 407076 has been marked as a duplicate of this bug. ***

*** Bug 407208 has been marked as a duplicate of this bug. ***

Just wanted you to know that adding the line to eclipse.ini seems to work for me under Ubuntu Gnome 13.04, upgraded to Gnome 3.8.1. Will the fix be part of this summer's Juno successor?

If not, I think the workaround info needs somehow to be spread, because this bug renders Eclipse totally unusable on newer Gnome-based linux distros, and this entry seems somewhat hard to find using google ... I didn't, which is the reason I created the duplicate, and I fear I won't have been the last.

(In reply to comment #19)
> Will the fix be part of this summer's Juno successor?

Yes, it will be in the June 4.3 release.

In , Jlmoya (jlmoya) wrote :

The workaround didn't do it for me as eclipse 4.2.2 continues to crash. Does anyone have any other suggestion as to how to fix the problem? Would anyone be kind enough to explain how to apply the patch attached?

(In reply to comment #21)

To work around this with 4.2.2 you need to add two lines to the end of your eclipse.ini:

1. the line in comment 6
2. -Dorg.eclipse.swt.browser.XULRunnerPath=<path> where <path> is the full path to a downloaded XULRunner to use (XULRunner 10 is suggested since it's the latest supported release). If for some reason this does not work then you can substitute an invalid path for <path> (eg.- "/dev/null"), which will run with no browser support (base eclipse runs generally fine without browser support).

*** Bug 408680 has been marked as a duplicate of this bug. ***

*** Bug 411745 has been marked as a duplicate of this bug. ***

*** Bug 411948 has been marked as a duplicate of this bug. ***

Using this workaround with fedora 19 removes the crash but displays an empty information window for autocompletes (for ctrl-space); unusable.

-Dorg.eclipse.swt.browser.DefaultType=mozilla
-Dorg.eclipse.swt.browser.XULRunnerPath=/usr/lib64/xulrunner/

(In reply to comment #26)
> Using this workaround with fedora 19 removes the crash but displays an empty
> information window for autocompletes (for ctrl-space); unusable.
>
> -Dorg.eclipse.swt.browser.DefaultType=mozilla
> -Dorg.eclipse.swt.browser.XULRunnerPath=/usr/lib64/xulrunner/

Thomas, do you see this problem with 4.3 final? I don't see the crash with both Eclipse from Fedora(yum install eclipse) and downloaded one from Eclipse.org. Fedora ships with xulrunner 22 which is not supported by swt.

Upgrading to 4.3 works perfectly, thanks.

In , Mpol-l (mpol-l) wrote :

The workaround seems to work on Indigo with xulrunner 17.

*** Bug 417037 has been marked as a duplicate of this bug. ***

*** Bug 417542 has been marked as a duplicate of this bug. ***

Comment on attachment 229268
Patch for the crash

> long /*int*/ originalAuth = WebKitGTK.soup_session_get_feature (session, WebKitGTK.webkit_soup_auth_dialog_get_type ());
>- WebKitGTK.soup_session_feature_detach (originalAuth, session);
>+ if (originalAuth != 0) {
>+ WebKitGTK.soup_session_feature_detach (originalAuth, session);
>+ }
> OS.g_signal_connect (session, WebKitGTK.authenticate, Proc5.getAddress (), webView);
>- WebKitGTK.soup_session_feature_attach (originalAuth, session);
>+ if (originalAuth != 0) {
>+ WebKitGTK.soup_session_feature_attach (originalAuth, session);
>+ }

FWIW, the lookup/detach/attach code there is completely unnecessary anyway... The only line here that actually does anything is the g_signal_connect() line.

FWIW I found this thread because I was getting a similar crash after updating OpenSUSE to 13.1 and eclipse to Kepler (eclipse.buildId=4.3.0.M20130911-1000)

Here is the tail of the console log:

No bp log location saved, using default.
[000:000] Browser XEmbed support present: 1
[000:001] Browser toolkit is Gtk2.
[000:001] Using Gtk2 toolkit
No bp log location saved, using default.

Adding -Dorg.eclipse.swt.browser.DefaultType=mozilla to eclipse.ini seems to have resolved the problem... for now. I only think it is worth mentioning because this was supposedly resolved in 4.3

(In reply to Jeremiah Renfro from comment #33)

Are you sure you're seeing the same crash (the dump file from your JRE indicates that it's in the soup_session_feature_detach() call)? The fix for this was a simple null check, and I haven't heard of anyone else seeing it since the fix went in. Maybe you're seeing bug 400626?

(In reply to Grant Gayed from comment #34)
> (In reply to Jeremiah Renfro from comment #33)
>
> Are you sure you're seeing the same crash (the dump file from your JRE
> indicates that it's in the soup_session_feature_detach() call)? The fix for
> this was a simple null check, and I haven't heard of anyone else seeing it
> since the fix went in. Maybe you're seeing bug 400626?

Maybe I am experiencing 400626, thanks for pointing me there, I'll start tracking that one also.

*** Bug 426031 has been marked as a duplicate of this bug. ***

(In reply to Alexander Kurtakov from comment #7)
> (In reply to comment #6)
> > For a workaround add the following to the end of your eclipse.ini
> >
> > -Dorg.eclipse.swt.browser.DefaultType=mozilla
>
> Mozilla is even less reliable as it breaks with every firefox update ans SWT
> doesn't support recent xulrunner versions (20.0 here) -at least it wasn't
> last I checked.

I had the same problem in LinuxMint (petra), adding Dorg.eclipse.swt.browser.DefaultType=mozilla fixed my it. Thanks for this fix!

*** Bug 434588 has been marked as a duplicate of this bug. ***

*** Bug 439082 has been marked as a duplicate of this bug. ***

In , P-sub (p-sub) wrote :

*** Bug 440571 has been marked as a duplicate of this bug. ***

I can confirm that using Eclipse Luna v4.4 on Ubuntu 14.04 this doesn't happen anymore. For older Eclipse versions (e.g. 3.7.2) the -Dorg.eclipse.swt.browser.DefaultType=mozilla works for me.

*** Bug 442630 has been marked as a duplicate of this bug. ***

*** Bug 443457 has been marked as a duplicate of this bug. ***

*** Bug 454196 has been marked as a duplicate of this bug. ***

Marius B. Kotsbak (mariusko) wrote :
Marius B. Kotsbak (mariusko) wrote :

This is a bug in the packaged version of OpenHAB, which is fixed in newer Eclipse versions.

Changed in libsoup2.4 (Ubuntu):
status: New → Invalid
no longer affects: eclipse (Ubuntu)
Changed in libsoup2.4 (Debian):
status: Unknown → New
Changed in eclipse-eclipsers:
importance: Unknown → Medium
status: Unknown → Fix Released
Changed in libsoup:
importance: Unknown → Medium

This bug (or very similar one) appears to have reappeared in the latest update to Luna (20150219-0600). The same workaround also works there (e.g.
-Dorg.eclipse.swt.browser.DefaultType=mozilla).

*** Bug 468562 has been marked as a duplicate of this bug. ***

(In reply to Marco Rietveld from comment #46)
> This bug (or very similar one) appears to have reappeared in the latest
> update to Luna (20150219-0600). The same workaround also works there (e.g.
> -Dorg.eclipse.swt.browser.DefaultType=mozilla).

Just to let you know, I use the latest Eclipse Luna releases on Ubuntu Gnome 14.04.2 (both the Java and the C/C++ flavors), and have not experienced this problem again since the Juno versions (see comment #19). Therefore, I guess there must be something special in your setup.

Mentioning this 2 years old comment, I was probably right to predict that there'd be tons of duplicates for this bug; the bug description is simply not expressive enough to find it using a standard google search ...

(In reply to Marco Rietveld from comment #46)
> This bug (or very similar one) appears to have reappeared in the latest
> update to Luna (20150219-0600). The same workaround also works there (e.g.
> -Dorg.eclipse.swt.browser.DefaultType=mozilla).

Please provide more details - which OS, what are the versions of GTK+ and webkit etc. and the crash logs too if possible.

*** Bug 474112 has been marked as a duplicate of this bug. ***

To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.