Skip to content

VLC 4: Segmentation fault during main StackView content switch

There is a Qt bug which tries to access null pointers. This behavior results in Seg. Fault for our use cases. It happens when there are sections used in qt quick views. When StackView content is switched, the old content is destroyed improperly as during the destruction the backend tries to update sections.

An example stack trace:

1   QQmlContext::setContextProperty(QString const&, QVariant const&)               0x7fffdfc176c4 
2   QQuickListViewPrivate::updateInlineSection(FxListItemSG *)                     0x7ffff45eb8fe 
3   QQuickListViewPrivate::updateSections()                                        0x7ffff45ebc84 
4   QQuickItemViewPrivate::layout()                                                0x7ffff45ded85 
5   QQuickWindowPrivate::polishItems()                                             0x7ffff4512c10 
6   QQuickWidgetPrivate::render(bool)                                              0x7ffff498ee94 
7   QQuickWidgetPrivate::renderSceneGraph()                                        0x7ffff498ef5e 
8   QObject::event(QEvent *)                                                       0x7fffddf64d1b 
9   QWidget::event(QEvent *)                                                       0x7fffdefcdd93 
10  QQuickWidget::event(QEvent *)                                                  0x7ffff4992b2b 
11  QApplicationPrivate::notify_helper(QObject *, QEvent *)                        0x7fffdef90e2c 
12  QApplication::notify(QObject *, QEvent *)                                      0x7fffdef97f60 
13  QCoreApplication::notifyInternal2(QObject *, QEvent *)                         0x7fffddf38f58 
14  QTimerInfoList::activateTimers()                                               0x7fffddf8c55e 
15  timerSourceDispatch(_GSource *, int ( *)(void *), void *)                      0x7fffddf8cd41 
16  g_main_context_dispatch                                                        0x7fffdd2598eb 
17  ??                                                                             0x7fffdd2acd28 
18  g_main_context_iteration                                                       0x7fffdd257023 
19  QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>)     0x7fffddf8d07f 
20  QPAEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>)   0x7fffdcac2181

I reproduced it when starting playing a video from the 'Video' section. Be aware that there is probably a race condition as it happens time to time. It might be related with threaded Qt scene graph implementation.

To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information