So after three days of debugging I've been able to figure out why it is
crashing, why it's random and i can provide a quick workaround in unity8
code.


## Why is it crashing? ##

The problem exists because we use the QML cache and because Qt has this
bug https://bugreports.qt.io/browse/QTBUG-47709

The bug in Qt means that if for types with extended properties (Image
and "source" in our case coming from the SDK) an Item  is created before
the type is extended, all subsquent items of the same type won't see the
extended property either.

Since we're using the QML cache this means that the code loaded from the
cache expects the extended property to be there, so when it access such
property, it will crash.


## Why is it random? ##

It's random because the QML file loading is not always done in the
*exact* same order, and thus in some cases the first Image is created in
a file that imports Ubuntu.Components and in some cases the first image
is created in a file that does not.


## How to workaround it? ##

A quick workaround is making sure  Ubuntu.Components is imported in the
first file that is imported, in unity8's case UnityInputInfo.qml that is
a singleton imported from the root file (OrientedShell.qml)

** Changed in: unity8 (Ubuntu)
       Status: Confirmed => In Progress

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1473471

Title:
  unity8 crashes on boot

To manage notifications about this bug go to:
https://bugs.launchpad.net/canonical-devices-system-image/+bug/1473471/+subscriptions

-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to