webbrowser's tst_QmlTest fails on armhf and i386 with Qt 5.2

Bug #1271033 reported by Timo Jyrinki
8
This bug affects 1 person
Affects Status Importance Assigned to Milestone
webbrowser-app
Invalid
Critical
Olivier Tilloy
qtdeclarative-opensource-src (Ubuntu)
Fix Released
Critical
Timo Jyrinki
qtwebkit-opensource-src (Ubuntu)
Fix Released
Critical
Unassigned

Bug Description

As visible at https://launchpad.net/~canonical-qt5-edgers/+archive/qt5-beta2/+sourcepub/3836415/+listing-archive-extra - webbrowser-app's tst_QmlTest seems to fail for some reaosn on armhf and i386, but not on amd64.

This is the first build of webbrowser-app against Qt 5.2 for some time, since only now Ubuntu UI Toolkit rebuild became available.

Update: i386 fixed by a qtdeclarative patch, armhf still failing

Tags: qt5.2

Related branches

summary: - webbrowser's tst_QmlTest fails on armhf and i386
+ webbrowser's tst_QmlTest fails on armhf and i386 with Qt 5.2
description: updated
Revision history for this message
Olivier Tilloy (osomon) wrote :

The logs for i386 don’t include any details on what could have caused the tests to segfault. On armhf however, we’re getting this error:

ASSERTION FAILED: isPointerTypeAlignmentOkay(reinterpret_cast<TypePtr>(ptr))
../WTF/wtf/StdLibExtras.h(95) : TypePtr reinterpret_cast_ptr(void*) [with TypePtr = long long unsigned int*]

Revision history for this message
Olivier Tilloy (osomon) wrote :

@Timo: I spent some time trying to reproduce the issue on arm today, with no luck. In order to temporarily unblock the situation, could you maybe push a version of webbrowser-app to this PPA with this test disabled? That would allow us to actually test the application on devices and spot issues. I’ll get back to this issue later, but I’ve got other priorities to work on this week.

The following patch would disable the test that is segfaulting:

=== modified file 'tests/unittests/CMakeLists.txt'
--- tests/unittests/CMakeLists.txt 2013-11-12 22:18:49 +0000
+++ tests/unittests/CMakeLists.txt 2014-01-21 15:29:46 +0000
@@ -1,4 +1,4 @@
-add_subdirectory(qml)
+#add_subdirectory(qml)
 add_subdirectory(domain-utils)
 add_subdirectory(history-model)
 add_subdirectory(history-matches-model)

Revision history for this message
Albert Astals Cid (aacid) wrote :
Download full text (14.7 KiB)

Done a quick test run on i386 and i'd say we are hitting two issues.

First there's a crash that seems similar to https://bugreports.qt-project.org/browse/QTBUG-36289 since it goes away when using QV4_FORCE_INTERPRETER=1

The other crash happens when proc is not mounted since it goes away when it is mounted (by default is unmounted in my chroot)

*** proc not mounted and QV4_FORCE_INTERPRETER not set ***
$ gdb -arg /home/webbrowser-app/obj-i686-linux-gnu/tests/unittests/qml/tst_QmlTests -import /home/webbrowser-app/obj-i686-linux-gnu/src -platform minimal
Program received signal SIGSEGV, Segmentation fault.
0xf66af590 in ?? ()
(gdb) bt
#0 0xf66af590 in ?? ()
#1 0x01000486 in ?? ()
#2 0x00000008 in ?? ()
#3 0x56687c08 in ?? ()

*** proc not mounted and QV4_FORCE_INTERPRETER set ***
$ gdb -arg /home/webbrowser-app/obj-i686-linux-gnu/tests/unittests/qml/tst_QmlTests -import /home/webbrowser-app/obj-i686-linux-gnu/src -platform minimal
********* Start testing of QmlTests *********
Config: Using QtTest library 5.2.0, Qt 5.2.0
PASS : QmlTests::AddressBar::initTestCase()
PASS : QmlTests::AddressBar::test_file_no_rewrite()
PASS : QmlTests::AddressBar::test_http_no_rewrite()
PASS : QmlTests::AddressBar::test_https_no_rewrite()
PASS : QmlTests::AddressBar::test_no_ipadress_scheme_rewrite()
PASS : QmlTests::AddressBar::test_no_scheme_rewrite()
PASS : QmlTests::AddressBar::test_search_escape_html_entities()
PASS : QmlTests::AddressBar::test_search_url()
PASS : QmlTests::AddressBar::test_search_url_single_word()
PASS : QmlTests::AddressBar::test_trim_whitespaces()
PASS : QmlTests::AddressBar::test_unhandled_scheme_no_rewrite()
PASS : QmlTests::AddressBar::test_url_uppercase_rewrite()
PASS : QmlTests::AddressBar::cleanupTestCase()
QWARN : QmlTests::UnknownTestFunc() file:///home/webbrowser-app/obj-i686-linux-gnu/tests/unittests/qml/undertest/Chrome.qml:143:5: QML QQuickImage: Cannot open: file:///home/webbrowser-app/obj-i686-linux-gnu/tests/unittests/qml/undertest/assets/toolbar_dropshadow.png
QWARN : QmlTests::UnknownTestFunc() QFontDatabase: Cannot find font directory '/usr/lib/i386-linux-gnu/fonts' - is Qt installed correctly?
QWARN : QmlTests::UnknownTestFunc() QFontDatabase: Cannot find font directory '/usr/lib/i386-linux-gnu/fonts' - is Qt installed correctly?
QWARN : QmlTests::UnknownTestFunc() QFontDatabase: Cannot find font directory '/usr/lib/i386-linux-gnu/fonts' - is Qt installed correctly?
QWARN : QmlTests::UnknownTestFunc() QFontDatabase: Cannot find font directory '/usr/lib/i386-linux-gnu/fonts' - is Qt installed correctly?
QWARN : QmlTests::UnknownTestFunc() QFontDatabase: Cannot find font directory '/usr/lib/i386-linux-gnu/fonts' - is Qt installed correctly?
QWARN : QmlTests::UnknownTestFunc() QFontDatabase: Cannot find font directory '/usr/lib/i386-linux-gnu/fonts' - is Qt installed correctly?
QWARN : QmlTests::UnknownTestFunc() file:///usr/lib/i386-linux-gnu/qt5/qml/Ubuntu/Components/Themes/Ambiance/ToolbarButtonStyle.qml:33:9: QML QQuickImage: Cannot open: file:///home/webbrowser-app/obj-i686-linux-gnu/tests/unittests/qml/undertest/assets/browser-tabs.png
QWARN : QmlTests::UnknownTestFunc() file:...

Revision history for this message
Bill Filler (bfiller) wrote :

+1 on disabling the tests for now to continue with the Qt5.2 progress and we'll get back to this

Changed in webbrowser-app:
assignee: nobody → Olivier Tilloy (osomon)
Revision history for this message
Timo Jyrinki (timo-jyrinki) wrote :

Commenting out the qml tests temporarily resulted in a successful build:
https://launchpad.net/%7Ecanonical-qt5-edgers/+archive/qt5-beta2/+sourcepub/3840327/+listing-archive-extra

description: updated
Revision history for this message
Albert Astals Cid (aacid) wrote :

FWIW the i386 crash goes away with a qtdeclarative patched with https://codereview.qt-project.org/#change,76374 and the other crash (shared by all arches) goes away when mounting proc. I've looked at it and it's not going to be trivial (maybe not even possible) to fix it so i'd suggest we just mount /proc on the machines :D

Revision history for this message
Timo Jyrinki (timo-jyrinki) wrote :

According to info I got proc should be mounted on the builders (unlike in a no thrills chroot), so I'll try just with the qtdeclarative patch.

Olivier Tilloy (osomon)
Changed in webbrowser-app:
status: New → Triaged
Revision history for this message
Timo Jyrinki (timo-jyrinki) wrote :

So, with the qtdeclarative patch we are now in a situation that i386 + amd64 succeed but armhf fails:

https://launchpad.net/~canonical-qt5-edgers/+archive/qt5-beta2/+sourcepub/3845830/+listing-archive-extra

Changed in qtdeclarative-opensource-src (Ubuntu):
assignee: nobody → Timo Jyrinki (timo-jyrinki)
importance: Undecided → Critical
status: New → In Progress
status: In Progress → Fix Committed
description: updated
Revision history for this message
Timo Jyrinki (timo-jyrinki) wrote :

The same qtwebkit patch that fixes bug #1275961 seems to fix the unit test as well.

Changed in qtwebkit-opensource-src (Ubuntu):
status: New → Fix Committed
importance: Undecided → Critical
Changed in webbrowser-app:
status: Triaged → Invalid
Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package qtdeclarative-opensource-src - 5.2.1-3ubuntu10

---------------
qtdeclarative-opensource-src (5.2.1-3ubuntu10) trusty; urgency=medium

  * debian/patches/Fix-crash-when-appending-arrays-to-sub-models-in-lis.patch
    - Backport from upstream https://codereview.qt-project.org/#change,80934
      (LP: #1291602)
 -- Timo Jyrinki <email address hidden> Fri, 14 Mar 2014 09:37:56 +0000

Changed in qtdeclarative-opensource-src (Ubuntu):
status: Fix Committed → Fix Released
Changed in qtwebkit-opensource-src (Ubuntu):
status: Fix Committed → Fix Released
Changed in qtdeclarative-opensource-src (Ubuntu):
status: Fix Released → Fix Committed
Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package qtdeclarative-opensource-src - 5.2.1-3ubuntu11

---------------
qtdeclarative-opensource-src (5.2.1-3ubuntu11) trusty; urgency=medium

  * debian/patches/Don-t-crash-on-Runtime-getQmlImportedScripts.patch
    - Backport from upstream code submittal (LP: #1294181)
  * debian/patches/Fix-global-object-handling-in-worker-script-JS-files.patch
    - Backport a fix from upstream (LP: #1294019)
  * debian/patches/V4-JIT-save-restore-ebx-GOT-ptr-on-linux-x86.patch
    debian/patches/V4-fix-range-sorting.patch
    debian/patches/V4-regalloc-fix-interval-splitting-when-register-pre.patch
    - Replace Don-t-use-ebx-in-the-x86-register-allocator.patch with a newer
      set of fixes from upstream (LP: #1271033)
 -- Timo Jyrinki <email address hidden> Mon, 24 Mar 2014 06:27:18 +0000

Changed in qtdeclarative-opensource-src (Ubuntu):
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

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