As an experiment I ran all unit tests with QV4_MM_AGGRESSIVE_GC=1. Bearing in mind that this could trigger bugs in the QML engine rather than the components, it might be worth going through the affected cases.
tst_adaptivepagelayout.qml: FAIL! : components::test_change_primaryPageSource(Component) 'wait for signal primaryPageChanged' returned FALSE. ()
tst_adaptivepagelayout.qml: FAIL! : components::test_change_primaryPageSource(Document) 'verify()' returned FALSE. ()
tst_adaptivepagelayout.qml: FAIL! : components::test_primaryPageSource_precedence_over_primaryPage() 'wait for signal primaryPageChanged' returned FALSE. ()
tst_adaptivepagelayout.qml: FAIL! : components::test_primaryPage_change_clears_primaryPageSource() Uncaught exception: Cannot read property 'header' of null
tst_listitem.qml: FAIL! : components::ListItemAPI::test_rtl_selection_panel_position() 'Selection panel not found.' returned FALSE. ()
tst_listitem.qml: FAIL! : components::ListItemAPI::test_verify_action_value(ListView, item index 0) 'wait for signal onTriggered' returned FALSE. ()
tst_listitem.qml: FAIL! : components::ListItemAPI::test_verify_action_value(ListView, item index 1) 'wait for signal onTriggered' returned FALSE. ()
tst_listitem13.qml: FAIL! : components::ListItem13API::test_rtl_selection_panel_position() 'Selection panel not found.' returned FALSE. ()
tst_listitem13.qml: FAIL! : components::ListItem13API::test_verify_action_value(ListView, item index 0) 'wait for signal onTriggered' returned FALSE. ()
tst_listitem13.qml: FAIL! : components::ListItem13API::test_verify_action_value(ListView, item index 1) 'wait for signal onTriggered' returned FALSE. ()
tst_textinput_touch.qml: FAIL! : components::TextInputTouchTests::test_select_text_on_doubletap(TextField) 'No text selected!' returned FALSE. ()
tst_textinput_touch.qml: FAIL! : components::TextInputTouchTests::test_select_text_on_doubletap(TextArea) 'No text selected!' returned FALSE. ()
tst_ubuntulistview.qml: FAIL! : components::UbuntuListView::test_dimOthers() Compared values are not the same
tst_layouts: FAIL! : tst_Layouts::testCase_NestedLayouts_ExtraLarge() Not all expected messages were received
tst_layouts: FAIL! : tst_Layouts::testCase_NestedVisibility(landscape) 'nestedActiveLayout' returned FALSE. ()
tst_asyncloader: FAIL! : tst_AsyncLoader::test_load(document) '(spy.m_object != nullptr)' returned FALSE. ()
tst_asyncloader: FAIL! : tst_AsyncLoader::test_load(component, asynchronous) '(spy.m_object != nullptr)' returned FALSE. ()
tst_asyncloader: FAIL! : tst_AsyncLoader::test_load(component, synchronous) '(spy.m_object != nullptr)' returned FALSE. ()
tst_asyncloader: FAIL! : tst_AsyncLoader::test_second_load_scenarios(status = Compiling) '(spy.m_object != nullptr)' returned FALSE. ()
tst_asyncloader: FAIL! : tst_AsyncLoader::test_second_load_scenarios(status = Loading) '(spy.m_object != nullptr)' returned FALSE. ()
tst_asyncloader: FAIL! : tst_AsyncLoader::test_second_load_scenarios(status = Initializing) '(spy.m_object != nullptr)' returned FALSE. ()
tst_asyncloader: FAIL! : tst_AsyncLoader::test_second_load_scenarios(status = Ready) '(spy.m_object != nullptr)' returned FALSE. ()
tst_asyncloader: FAIL! : tst_AsyncLoader::test_second_load_scenarios(status = Error) '(spy.m_object != nullptr)' returned FALSE. ()
tst_listitem.qml: FAIL! : components::ListItemAPI::test_rtl_drag_panel_position() 'Drag panel not found.' returned FALSE. ()
tst_listitem13.qml: FAIL! : components::ListItem13API::test_rtl_drag_panel_position() 'Drag panel not found.' returned FALSE. ()
tst_picker.qml: FAIL! : components::PickerAPI::test_7_modelCropping() bad index of circularList
tst_layouts: FAIL! : tst_Layouts::testCase_NestedLayouts_ExtraLarge() Not all expected messages were received
tst_layouts: FAIL! : tst_Layouts::testCase_NestedVisibility(landscape) 'hasChildItem(green, nestedActiveLayout)' returned FALSE. ()
tst_asyncloader: FAIL! : tst_AsyncLoader::test_load(document) '(spy.m_object != nullptr)' returned FALSE. ()
tst_asyncloader: FAIL! : tst_AsyncLoader::test_load(component, asynchronous) '(spy.m_object != nullptr)' returned FALSE. ()
tst_asyncloader: FAIL! : tst_AsyncLoader::test_load(component, synchronous) '(spy.m_object != nullptr)' returned FALSE. ()
tst_asyncloader: FAIL! : tst_AsyncLoader::test_second_load_scenarios(status = Compiling) '(spy.m_object != nullptr)' returned FALSE. ()
tst_asyncloader: FAIL! : tst_AsyncLoader::test_second_load_scenarios(status = Loading) '(spy.m_object != nullptr)' returned FALSE. ()
tst_asyncloader: FAIL! : tst_AsyncLoader::test_second_load_scenarios(status = Initializing) '(spy.m_object != nullptr)' returned FALSE. ()
tst_asyncloader: FAIL! : tst_AsyncLoader::test_second_load_scenarios(status = Ready) '(spy.m_object != nullptr)' returned FALSE. ()
tst_asyncloader: FAIL! : tst_AsyncLoader::test_second_load_scenarios(status = Error) '(spy.m_object != nullptr)' returned FALSE. ()
Could the layout test failures be related to bug /bugs.launchpad .net/ubuntu/ +source/ ubuntu- ui-toolkit/ +bug/1567924 ?
https:/
I haven't looked into it yet, just thought I'd report it here in case it's somehow related, since it describes a crash.