Wizard crashes when trying to view HERE terms and conditions

Bug #1439829 reported by Michael Terry on 2015-04-02
This bug affects 5 people
Affects Status Importance Assigned to Milestone
Canonical System Image
David Barth
Michael Terry
oxide-qt (Ubuntu)
oxide-qt (Ubuntu RTM)

Bug Description

Flash like so:

ubuntu-device-flash touch --channel=ubuntu-touch/devel-proposed-customized-here --wipe

And you'll have the HERE bits on your phone. Now go through the wizard, click on the "terms and conditions" link on the location screen to see the Nokia terms. Your screen will seem frozen and unity8 will crash.

This is what we see in the logs:

[0402/192155:WARNING:oxide_qt_browser_startup.cc(161)] Unrecognized Qt platform: mirserver
[0402/192155:ERROR:gl_implementation_osmesa.cc(22)] Failed to load /usr/lib/arm-linux-gnueabihf/oxide-qt/libosmesa.so: /usr/lib/arm-linux-gnueabihf/oxide-qt/libosmesa.so: cannot open shared object file: No such file or directory

And it's because oxide expects the platform to start with "ubuntu" but unity8 translates "ubuntumirclient" to "mirserver" which oxide does not expect. So it falls back to non-GLES2 mode and can't find libosmesa.so, crashing.

It's not clear to me *why* unity8 is doing that. But until we sort that out, oxide can simply support "mirserver" too.

Related branches

Michael Terry (mterry) wrote :

Gerry, assigning unity8 task to you, just for a comment on why we filter ubuntumirclient to just mirserver (I get why we might be interested in the client->server conversion, but is dropping ubuntu also important?)

Changed in unity8 (Ubuntu):
assignee: nobody → Gerry Boland (gerboland)
status: New → Incomplete
Gerry Boland (gerboland) wrote :

It was called "mirserver" because it's not necessarily ubuntu specific.

I'm more curious why it reads the QPA name, as it's not good to have code so specific for one platform

Gerry Boland (gerboland) wrote :

Ok code is doing platform specific things (reading GRID_UNIT_PX, getting a shared gl context is very QPA plugin), so yeah the qpa name is a good way to distinguish them. Figuring out if it should GL or GLES really should be something Qt can communicate. We're exclusively using GLES for now, but desktop will gain GL support in time, so this fix isn't future-proof

Changed in unity8 (Ubuntu):
assignee: Gerry Boland (gerboland) → Michael Terry (mterry)
status: Incomplete → In Progress
Michael Terry (mterry) wrote :

(To clarify, we don't have a more future-proof solution yet. So when the situation changes, we'll just have to come back and edit oxide again.)

Changed in unity8 (Ubuntu):
status: In Progress → Invalid
Changed in oxide-qt (Ubuntu):
assignee: nobody → Michael Terry (mterry)
status: New → In Progress
Changed in unity8 (Ubuntu):
assignee: Michael Terry (mterry) → nobody
Chris Coulson (chrisccoulson) wrote :

The desktop using GL rather than GLES shouldn't affect Oxide - I don't think it cares too much what API the application is using (and Chromium only supports GLES with EGL in any case. "GL" in Chromium refers to one of the windowing-system specific desktop GL API's - GLX on Linux and WGL on Windows). Given that all GL access in Chromium happens on a dedicated thread, it can use a different API without affecting the rest of the application.

Changed in oxide:
assignee: nobody → Michael Terry (mterry)
milestone: none → branch-1.7
status: New → Fix Released
importance: Undecided → High
Michael Terry (mterry) on 2015-04-03
Changed in oxide-qt (Ubuntu):
status: In Progress → Fix Committed
assignee: Michael Terry (mterry) → nobody
Changed in oxide-qt (Ubuntu RTM):
status: New → Confirmed
importance: Undecided → High
Michael Terry (mterry) on 2015-04-08
Changed in oxide-qt (Ubuntu RTM):
status: Confirmed → Won't Fix
no longer affects: unity8 (Ubuntu)
Chris Coulson (chrisccoulson) wrote :

Note that the crash is fixed in 1.6 by http://bazaar.launchpad.net/~oxide-developers/oxide/1.6/revision/944 - in this case, Oxide will run in software compositing mode.

Marking 1.6 as Won't Fix, as the change in http://bazaar.launchpad.net/~oxide-developers/oxide/oxide.trunk/revision/1025 won't change that behaviour. This is because the mirserver QPA plugin doesn't allow Oxide to access the platform handle for the share context if one is provided (see https://code.launchpad.net/~mterry/oxide/mirserver/+merge/255128/comments/634515), which is required for GPU compositing.

On trunk (1.7), Michael's change enables Oxide to use the EGLImage compositing path, but that doesn't exist in 1.6 (it requires http://bazaar.launchpad.net/~oxide-developers/oxide/oxide.trunk/revision/1017).

Changed in oxide:
status: Fix Released → Fix Committed
Changed in oxide:
status: Fix Committed → Fix Released
Changed in canonical-devices-system-image:
assignee: nobody → David Barth (dbarth)
importance: Undecided → Critical
milestone: none → ww17-2015
status: New → Confirmed
David Barth (dbarth) on 2015-04-24
Changed in canonical-devices-system-image:
status: Confirmed → Fix Committed
Changed in canonical-devices-system-image:
status: Fix Committed → Fix Released
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package oxide-qt - 1.7.8-0ubuntu0.14.10.1

oxide-qt (1.7.8-0ubuntu0.14.10.1) utopic-security; urgency=medium

  * Update to v1.7.8
    - see USN-2610-1
    - Bump Chromium rev to 43.0.2357.65
    - Fix LP: #1452407 - Shutdown abort due to BrowserContext leak
    - Fix LP: #1449660 - Shutdown deadlock due to a race condition in
    - Fix LP: #1435831 - Support EGLImage compositing path
    - Fix LP: #1435835 - Improve synchronization between webview and UI
    - Fix LP: #1422408 - Enable accelerated canvas on Arale
    - Fix LP: #1426567 - Enable pinch-viewport on desktop
    - Fix LP: #1439829 - Select the correct GL platform when the Qt platform
      is "mirserver"
    - Fix LP: #1399195 - Improve network callback event tests
    - Fix LP: #1415662 - Cancelling a network request in onBeforeRedirect has
      no effect
    - Fix LP: #1422920 - Add LocationBarController.show(),
      LocationBarController.hide() and LocationBarController.animated
    - Fix LP: #1433472 - navigator.language doesn't work
    - Fix LP: #1435418 - Clean up the classes related to the private interfaces
      between the core library and the QtQuick library, making it more obvious
      where code should live
    - Fix LP: #1438902 - Enable webgl on mako
    - Fix LP: #1446864 - OxideQQuickScriptMessage::reply doesn't work with
      Qt 5.4
    - Use the simple backend for the network cache
    - Add EGLFS QPA support
    - Fix cross-compiling armhf builds on x86
  * Make sure that liboxideqtquick0 is stripped correctly

 -- Chris Coulson <email address hidden> Tue, 19 May 2015 17:43:04 +0100

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

Duplicates of this bug

Other bug subscribers