[jbosstools-issues] [JBoss JIRA] Commented: (JBIDE-9144) VPE crashes with Eclipse 3.7 on some Linux distributions

Snjezana Peco (JIRA) jira-events at lists.jboss.org
Mon Jun 20 10:50:23 EDT 2011


    [ https://issues.jboss.org/browse/JBIDE-9144?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12609748#comment-12609748 ] 

Snjezana Peco commented on JBIDE-9144:
--------------------------------------

Eclipse 3.7 crashes when running VPE tests (or when using XULRunner 1.9.x) because Eclipse 3.7 uses WebKit as the Browser's underlying renderer (see http://www.eclipse.org/swt/faq.php#howusewebkit).
As for Eclipse 3.7 Linux GTK, WebKit  is always used when a browser is created with SWT.NONE (or SWT.WEBKIT). It is used in the Javadoc view, Declaration view, in the Welcome page, etc. The only way to avoid using WebKit is to remove or invalidate it.
The problem happens because XULRunner and WebKit use incompatible versions of the sqlite3 libraries.

The problem can occur on some Linux distribution (32bit  and 64bit) and doesn't depend on the XULRunner version. If a Linux distribution contains WebKit with an incompatible sqlite, Eclipse will crash.

This can be tested in the following way:

- start VPE tests on a machine on which this bug can be reproduced (FC15 64bit or Ubuntu 11.04 32bit with XULRunner 1.9.2.16, for instance)
Ensure that Eclipse crashes when running the VPE tests.

To make sure that WebKit is a problem, do the following:
- move /usr/lib64/libsqlite3* libraries to a directory which isn't on the LD_LIBRARY_PATH (your home directory, for instance). If you are reproducing the bug on a 32bit machine, the sqlite libraries will probably be in the /usr/lib directory. You can also remove the WebKit package.
WebKit renderer won't be started and the tests will be executed correctly.

The SWT team knows about this issue and they created a fix  for it (see the comment in the BrowserFactory.createWebBrowser method). However, the fix doesn't work in Eclipse >=RC3.
It is possible to fix Eclipse 3.7RC4 by loading additional XULRunner libraries, but that fix wouldn't work in Eclipse 3.7 I20110613-1736.
I think it isn't possible that WebKit and XULRunner 1.9.x work simultaneously unless the system's WebKit and system's XULRunner are used. 
The issue can't be solved by compiling XULRunner with the system's sqlite because that wouldn't work on different Linux distributions.

The best solution is to ask the SWT team to add a variable (org.eclipse.swt.browser.UseWebKitGTK, for instance; this variable exists in Eclipse 3.6.2). If the variable is set to false, Eclipse wouldn't try to use WebKit (at least when using SWT.NONE). It would also be necessary to load the org.eclipse.swt.browser.WebKitInitializer or some similar class that could set this variable before showing up the Welcome page. The user should be able to decide whether to use WebKit or not. Attached are patches against SWT and org.jboss.tools.xulrunner.initializer.

We can remove the swt-webkit libraries from the swt fragment using Eclipse Transforms. However, this would work in JBDS only.
We can also advice the users that want to use the VPE editor to remove/move temporary the WebKit package or the system's sqlite libraries.

I have also created patched org.eclipse.swt.gtk.x86_64/org.eclipse.swt.gtk.linux.x86 plugin. If you replace this plugin with the corresponding plugin from your distribution, apply the o.j.t.xulrunner patch, you won't be able to reproduce the Eclipse crash.


> VPE crashes with Eclipse 3.7 on some Linux distributions
> --------------------------------------------------------
>
>                 Key: JBIDE-9144
>                 URL: https://issues.jboss.org/browse/JBIDE-9144
>             Project: Tools (JBoss Tools)
>          Issue Type: Sub-task
>          Components: Visual Page Editor core
>    Affects Versions: 3.3.0.M2
>            Reporter: Denis Maliarevich
>            Assignee: Vlado Pakan
>            Priority: Critical
>             Fix For: 3.3.0.M2
>
>         Attachments: hs_err_pid13234.log, hs_err_pids.tar.gz
>
>
> VPE crashes with Eclipse 3.7 on some Linux distributions:
> ||OS||XULRunner version||Crashes when unit-testing?||Crashes when using?||
> |Ubuntu 10 x86|1.9.1, 1.9.2.16, 1.9.2.17|*YES*|no|
> |Ubuntu 10 x86_64|1.9.2.16|no|no|
> |Ubuntu 10 x86_64|1.9.1|???|YES (no problem while we use 1.9.2)|
> |Fedora 14 x86|1.9.2.16|*YES*|no|
> |Fedora 15 x86_64|1.9.2.16|???|*YES*|
> |Gentoo x86|1.9.2.16|???|no|
> *Steps to reproduce JUnit crash:*
> # Launch VpeAllTests from org.jboss.tools.vpe.ui.test plugin.
> # New instance of Eclipse will be started.
> # On the "Welcome Screen" click on "Workbench" arrow to enter workspace.
> # Tests are about to execute.
> # Eclipse crashes with the message:
> {quote}
> '#
> '# A fatal error has been detected by the Java Runtime Environment:
> '#
> '#  SIGSEGV (0xb) at pc=0x7f11d0c1, pid=3688, tid=2218912624
> '#
> '# JRE version: 6.0_20-b20
> '# Java VM: OpenJDK Server VM (19.0-b09 mixed mode linux-x86 )
> '# Derivative: IcedTea6 1.9.7
> '# Distribution: Ubuntu 10.04.1 LTS, package 6b20-1.9.7-0ubuntu1~10.04.1
> '# Problematic frame:
> '# C  [libsqlite3.so+0x60c1]
> '#
> '# An error report file with more information is saved as:
> '# /home/ubuntu/projects/trunk/vpe/tests/org.jboss.tools.vpe.ui.test/hs_err_pid3688.log
> '#
> '# If you would like to submit a bug report, please include
> '# instructions how to reproduce the bug and visit:
> '#   https://bugs.launchpad.net/ubuntu/+source/openjdk-6/
> '#
> {quote}
> # Note: when the Welcome screen is active -- JUnit tests go fine. Only after it is closed -- fatal error is appeared.
> # Workaround: On "Run Configurations" > "Tracing" > Select plugin "org.eclipse.ui.intro" > Select "flags/noBrowser" checkbox. After that Welcome Screen will be different, tests won't fail.
> *Steps to reproduce the crash manually:*
> # Installed jbds-eap-5.0.0.m2-h657
> # Created Seam war project
> # Opened few pages in VPE
> # Switched to another workspace, after that crash, Log attached
> {quote}
> A fatal error has been detected by the Java Runtime Environment:
> SIGSEGV (0xb) at pc=0x00007fa5c8b86dd0, pid=13234, tid=140351893849856
> Problematic frame:
> C [libsqlite3.so+0x10dd0]
> {quote}

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        


More information about the jbosstools-issues mailing list