vlc 4.0: NULL pointer in vlc::CompositorX11UISurface
The GUI fails to start, NULL pointer m_rootItem
in vlc::CompositorX11UISurface::updateSizes
.
Introduced somewhere between 20241116.b5bbba79 and 20241120.bf20ed48, with rm -rf ~/.{cache,config}/vlc && vlc ~/some.mp4
:
#0 0x00007f438321ae3e in QQuickItem::setSize(QSizeF const&) () at /usr/lib64/libQt6Quick.so.6
#1 0x00007f4383c7d5ce in vlc::CompositorX11UISurface::updateSizes() (this=this@entry=0x7f4374225950)
at maininterface/compositor_x11_uisurface.cpp:264
#2 0x00007f4383c7e164 in vlc::CompositorX11UISurface::eventFilter(QObject*, QEvent*) (this=0x7f4374225950, event=<optimized out>)
at maininterface/compositor_x11_uisurface.cpp:325
#3 0x00007f43811860a8 in QCoreApplicationPrivate::sendThroughObjectEventFilters(QObject*, QEvent*)
(receiver=0x7f437414ff40, event=0x7f43a29fe560)
at /usr/src/debug/qt6-base-6.6.3-150600.3.3.1.x86_64/src/corelib/kernel/qcoreapplication.cpp:1253
#4 0x00007f43829c199e in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /usr/lib64/libQt6Widgets.so.6
#5 0x00007f43811877a8 in QCoreApplication::notifyInternal2(QObject*, QEvent*) (receiver=0x7f437414ff40, event=0x7f43a29fe560)
at /usr/src/debug/qt6-base-6.6.3-150600.3.3.1.x86_64/src/corelib/kernel/qcoreapplication.cpp:1121
#6 0x00007f4381fe8b4c in QGuiApplicationPrivate::processGeometryChangeEvent(QWindowSystemInterfacePrivate::GeometryChangeEvent*) ()
at /usr/lib64/libQt6Gui.so.6
#7 0x00007f438203cefc in () at /usr/lib64/libQt6Gui.so.6
#8 0x00007f43811da753 in QtPrivate::QSlotObjectBase::call(QObject*, void**)
(a=0x7f43a29fe770, r=0x7f437414ff40, this=0x564c85394980, this=<optimized out>, r=<optimized out>, a=<optimized out>)
at /usr/src/debug/qt6-base-6.6.3-150600.3.3.1.x86_64/src/corelib/kernel/qobjectdefs_impl.h:433
#9 doActivate<false>(QObject*, int, void**) (sender=0x7f437414ff40, signal_index=3, argv=0x7f43a29fe770)
at /usr/src/debug/qt6-base-6.6.3-150600.3.3.1.x86_64/src/corelib/kernel/qobject.cpp:4039
#10 0x00007f438202fc6f in QWindow::screenChanged(QScreen*) () at /usr/lib64/libQt6Gui.so.6
#11 0x00007f4382030bef in QWindowPrivate::emitScreenChangedRecursion(QScreen*) () at /usr/lib64/libQt6Gui.so.6
#12 0x00007f4382037f10 in QWindow::setGeometry(QRect const&) () at /usr/lib64/libQt6Gui.so.6
#13 0x00007f4383c6d859 in QVLCTools::restoreWindowPosition(QSettings*, QWindow*, QSize, QPoint)
(settings=<optimized out>, window=0x7f437414ff40, defSize=..., defPos=...) at widgets/native/qvlcframe.cpp:153
#14 0x00007f4383a59650 in InterfaceWindowHandler::InterfaceWindowHandler(qt_intf_t*, MainCtx*, QWindow*, QObject*)
(this=0x7f43743b8250, _p_intf=<optimized out>, mainCtx=<optimized out>, window=<optimized out>, parent=<optimized out>)
at maininterface/interface_window_handler.cpp:61
#15 0x00007f4383a55763 in std::make_unique<InterfaceWindowHandler, qt_intf_t*&, MainCtx*&, QWindow*&>(qt_intf_t*&, MainCtx*&, QWindow*&)
() at /usr/include/c++/13/bits/unique_ptr.h:1069
#16 vlc::CompositorVideo::commonGUICreateImpl(QWindow*, QFlags<vlc::CompositorVideo::Flag>)
(this=this@entry=0x7f437414f020, window=0x7f437414ff40, flags=...) at maininterface/compositor.cpp:292
#17 0x00007f4383a55957 in vlc::CompositorVideo::commonGUICreate(QWindow*, vlc::CompositorVideo::QmlUISurface*, QFlags<vlc::CompositorVide
o::Flag>) (this=0x7f437414f020, window=<optimized out>, qmlSurface=0x7f4374225978, flags=...) at maininterface/compositor.cpp:306
#18 0x00007f4383c78f35 in vlc::CompositorX11::makeMainInterface(MainCtx*) (this=0x7f437414f020, mainCtx=<optimized out>)
at /usr/include/c++/13/bits/unique_ptr.h:199
#19 0x00007f438390e248 in Thread(void*) (obj=0x564c853963c0) at qt.cpp:1065
#20 0x00007f43a3ea760c in start_thread (arg=<optimized out>) at pthread_create.c:444
#21 0x00007f43a3f2eaa8 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78
(gdb) p *this
$3 = {<QWindow> = {<No data fields>}, <vlc::CompositorVideo::QmlUISurface> = {_vptr.QmlUISurface = 0x7f4383efdd58},
static staticMetaObject = {d = {superdata = {direct = 0x7f4382646940 <QWindow::staticMetaObject>}, stringdata = 0x7f4383d48b60,
data = 0x7f4383d48a80,
static_metacall = 0x7f4383cedc50 <vlc::CompositorX11UISurface::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>,
relatedMetaObjects = 0x0, metaTypes = 0x7f4383efda20, extradata = 0x0}}, m_rootItem = 0x0, m_context = 0x7f4374224ed0,
m_backingStore = 0x0, m_backingStorePainter = 0x0, m_uiWindow = 0x7f43741956e0, m_qmlEngine = 0x7f43741f2240,
m_renderWindow = 0x7f437414ff40, m_uiRenderControl = 0x7f4374228e40, m_onscreenSize = {wd = 600, ht = 420}, m_textureId = 0,
m_dpr = 0, initialized = false, m_fboId = 0}