[
https://issues.jboss.org/browse/JBIDE-9144?page=com.atlassian.jira.plugin...
]
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