Bug 468183

Summary: Plasmashell crashes in TaskManager::TaskGroupingProxyModel::Private::sourceRowsAboutToBeRemoved() on external screen re-connection
Product: [Plasma] plasmashell Reporter: cemkaya.boun <cemkaya.boun>
Component: Task Manager and Icons-Only Task ManagerAssignee: Plasma Bugs List <plasma-bugs>
Status: RESOLVED DUPLICATE    
Severity: crash CC: aleixpol, kde, nate, notmart, qydwhotmail
Priority: NOR Keywords: drkonqi, multiscreen
Version: 5.27.3   
Target Milestone: 1.0   
Platform: Arch Linux   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:

Description cemkaya.boun@gmail.com 2023-04-05 21:09:01 UTC
Application: plasmashell (5.27.3)

Qt Version: 5.15.8
Frameworks Version: 5.104.0
Operating System: Linux 6.2.9-arch1-1-g15 x86_64
Windowing System: X11
Distribution: "Arch Linux"
DrKonqi: 5.27.3 [KCrashBackend]

-- Information about the crash:
When I remove the external screen, and re-connect it, plasma shell crashes.

The crash can be reproduced every time.

-- Backtrace:
Application: Plasma (plasmashell), signal: Segmentation fault
Content of s_kcrashErrorMessage: std::unique_ptr<char []> = {get() = <optimized out>}
[KCrash Handler]
#6  0x00007fe22285ddbb in QArrayData::data() (this=<optimized out>, this=<optimized out>) at /usr/include/qt/QtCore/qarraydata.h:62
#7  QTypedArrayData<QQuickPointerEvent*>::data() (this=<optimized out>) at /usr/include/qt/QtCore/qarraydata.h:209
#8  QTypedArrayData<QQuickPointerEvent*>::begin(QQuickPointerEvent**) (this=<optimized out>) at /usr/include/qt/QtCore/qarraydata.h:212
#9  QVector<QQuickPointerEvent*>::realloc(int, QFlags<QArrayData::AllocationOption>) (this=0x557047c92b20, aalloc=<optimized out>, options=...) at /usr/include/qt/QtCore/qvector.h:710
#10 0x00007fe22284a99a in QVector<QQuickPointerEvent*>::detach() (this=0x557047c92b20) at /usr/include/qt/QtCore/qflags.h:121
#11 QVector<QQuickPointerEvent*>::detach() (this=0x557047c92b20) at /usr/include/qt/QtCore/qvector.h:397
#12 QVector<QQuickPointerEvent*>::begin() (this=0x557047c92b20) at /usr/include/qt/QtCore/qvector.h:210
#13 QQuickWindowPrivate::queryPointerEventInstance(QQuickPointerDevice*, QEvent::Type) const (this=this@entry=0x557047c92980, device=0x7fe222b3bca0 <(anonymous namespace)::Q_QGS_g_genericMouseDevice::innerFunction()::holder>, eventType=eventType@entry=QEvent::None) at /usr/src/debug/qt5-declarative/qtdeclarative/src/quick/items/qquickwindow.cpp:2515
#14 0x00007fe22284ad14 in QQuickWindow::mouseGrabberItem() const (this=<optimized out>) at /usr/src/debug/qt5-declarative/qtdeclarative/src/quick/items/qquickwindow.cpp:1745
#15 0x00007fe22284e92f in QQuickWindowPrivate::removeGrabber(QQuickItem*, bool, bool) (this=0x557047c92980, grabber=0x55704618c090, mouse=<optimized out>, touch=true) at /usr/src/debug/qt5-declarative/qtdeclarative/src/quick/items/qquickwindow.cpp:1007
#16 0x00007fe222833ce7 in QQuickItemPrivate::derefWindow() (this=this@entry=0x557049b91730) at /usr/src/debug/qt5-declarative/qtdeclarative/src/quick/items/qquickitem.cpp:3035
#17 0x00007fe2228352ab in QQuickItem::setParentItem(QQuickItem*) (this=0x55704618c090, parentItem=<optimized out>) at /usr/src/debug/qt5-declarative/qtdeclarative/src/quick/items/qquickitem.cpp:2717
#18 0x00007fe222933230 in QQuickRepeater::clear() (this=0x55704469a430) at /usr/src/debug/qt5-declarative/qtdeclarative/src/quick/items/qquickrepeater.cpp:377
#19 0x00007fe222939f69 in QQuickRepeater::setModel(QVariant const&) (m=<optimized out>, this=0x55704469a430) at /usr/src/debug/qt5-declarative/qtdeclarative/src/quick/items/qquickrepeater.cpp:203
#20 QQuickRepeater::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) (_o=0x55704469a430, _c=<optimized out>, _id=<optimized out>, _a=<optimized out>) at .moc/moc_qquickrepeater_p.cpp:228
#21 0x00007fe22223c85e in QQmlPropertyData::writeProperty(QObject*, void*, QFlags<QQmlPropertyData::WriteFlag>) const (this=<optimized out>, target=<optimized out>, value=<optimized out>, flags=...) at ../../include/QtQml/5.15.8/QtQml/private/../../../../../../qtdeclarative/src/qml/qml/qqmlpropertydata_p.h:391
#22 0x00007fe2222999d0 in QQmlBinding::slowWrite(QQmlPropertyData const&, QQmlPropertyData const&, QV4::Value const&, bool, QFlags<QQmlPropertyData::WriteFlag>) (this=this@entry=0x55704469a8b0, core=..., valueTypeData=..., result=..., isUndefined=isUndefined@entry=false, flags=..., flags@entry=...) at /usr/src/debug/qt5-declarative/qtdeclarative/src/qml/qml/qqmlbinding.cpp:474
#23 0x00007fe222290ba1 in GenericBinding<0>::write(QV4::Value const&, bool, QFlags<QQmlPropertyData::WriteFlag>) (this=0x55704469a8b0, result=..., isUndefined=<optimized out>, flags=...) at /usr/src/debug/qt5-declarative/qtdeclarative/src/qml/qml/qqmlbinding.cpp:335
#24 0x00007fe2222978fe in QQmlNonbindingBinding::doUpdate(QQmlJavaScriptExpression::DeleteWatcher const&, QFlags<QQmlPropertyData::WriteFlag>, QV4::Scope&) (this=0x55704469a8b0, watcher=..., flags=..., scope=<optimized out>) at /usr/src/debug/qt5-declarative/qtdeclarative/src/qml/qml/qqmlbinding.cpp:258
#25 0x00007fe222298f73 in QQmlBinding::update(QFlags<QQmlPropertyData::WriteFlag>) (this=0x55704469a8b0, flags=...) at /usr/src/debug/qt5-declarative/qtdeclarative/src/qml/qml/qqmlbinding.cpp:194
#26 0x00007fe22227647f in QQmlNotifier::emitNotify(QQmlNotifierEndpoint*, void**) (endpoint=<optimized out>, a=0x0) at /usr/src/debug/qt5-declarative/qtdeclarative/src/qml/qml/qqmlnotifier.cpp:104
#27 0x00007fe220cbe740 in doActivate<false>(QObject*, int, void**) (sender=0x55704465c100, signal_index=61, argv=0x0) at kernel/qobject.cpp:3815
#28 0x00007fe222231fcb in QQmlVMEMetaObject::metaCall(QObject*, QMetaObject::Call, int, void**) (this=0x557044641fc0, o=<optimized out>, c=<optimized out>, _id=<optimized out>, a=<optimized out>) at /usr/src/debug/qt5-declarative/qtdeclarative/src/qml/qml/qqmlvmemetaobject.cpp:880
#29 0x00007fe22223c823 in QQmlPropertyData::writeProperty(QObject*, void*, QFlags<QQmlPropertyData::WriteFlag>) const (this=<optimized out>, target=<optimized out>, value=<optimized out>, flags=...) at ../../include/QtQml/5.15.8/QtQml/private/../../../../../../qtdeclarative/src/qml/qml/qqmlpropertydata_p.h:395
#30 0x00007fe2222911d5 in GenericBinding<2>::doStore<int>(int, QQmlPropertyData const*, QFlags<QQmlPropertyData::WriteFlag>) const (flags=..., pd=<optimized out>, value=<optimized out>, this=0x55704465d610) at /usr/src/debug/qt5-declarative/qtdeclarative/src/qml/qml/qqmlbinding.cpp:342
#31 GenericBinding<2>::write(QV4::Value const&, bool, QFlags<QQmlPropertyData::WriteFlag>) (this=0x55704465d610, result=..., isUndefined=<optimized out>, flags=...) at /usr/src/debug/qt5-declarative/qtdeclarative/src/qml/qml/qqmlbinding.cpp:310
#32 0x00007fe2222978fe in QQmlNonbindingBinding::doUpdate(QQmlJavaScriptExpression::DeleteWatcher const&, QFlags<QQmlPropertyData::WriteFlag>, QV4::Scope&) (this=0x55704465d610, watcher=..., flags=..., scope=<optimized out>) at /usr/src/debug/qt5-declarative/qtdeclarative/src/qml/qml/qqmlbinding.cpp:258
#33 0x00007fe222298f73 in QQmlBinding::update(QFlags<QQmlPropertyData::WriteFlag>) (this=0x55704465d610, flags=...) at /usr/src/debug/qt5-declarative/qtdeclarative/src/qml/qml/qqmlbinding.cpp:194
#34 0x00007fe22227647f in QQmlNotifier::emitNotify(QQmlNotifierEndpoint*, void**) (endpoint=<optimized out>, a=0x0) at /usr/src/debug/qt5-declarative/qtdeclarative/src/qml/qml/qqmlnotifier.cpp:104
#35 0x00007fe220cbe740 in doActivate<false>(QObject*, int, void**) (sender=0x557044648660, signal_index=41, argv=0x0) at kernel/qobject.cpp:3815
#36 0x00007fe21fcf7d9b in VDMModelDelegateDataType::notify(QQmlAdaptorModel const&, QList<QQmlDelegateModelItem*> const&, int, int, QVector<int> const&) const (this=<optimized out>, items=<optimized out>, index=<optimized out>, count=<optimized out>, roles=<optimized out>) at /usr/src/debug/qt5-declarative/qtdeclarative/src/qmlmodels/qqmladaptormodel.cpp:175
#37 0x00007fe21fd04325 in QQmlAdaptorModel::notify(QList<QQmlDelegateModelItem*> const&, int, int, QVector<int> const&) const (roles=<optimized out>, count=1, index=1, items=..., this=0x55704460d830, this=<optimized out>, items=<optimized out>, index=<optimized out>, count=<optimized out>, roles=<optimized out>) at ../../include/QtQmlModels/5.15.8/QtQmlModels/private/../../../../../../qtdeclarative/src/qmlmodels/qqmladaptormodel_p.h:159
#38 QQmlDelegateModel::_q_itemsChanged(int, int, QVector<int> const&) (this=<optimized out>, index=1, count=1, roles=<optimized out>) at /usr/src/debug/qt5-declarative/qtdeclarative/src/qmlmodels/qqmldelegatemodel.cpp:1499
#39 0x00007fe21fd0ded3 in QQmlDelegateModel::qt_metacall(QMetaObject::Call, int, void**) (this=0x5570446302b0, _c=QMetaObject::InvokeMetaMethod, _id=16, _a=0x7fff74cde0e0) at .moc/moc_qqmldelegatemodel_p.cpp:371
#40 0x00007fe220cbe93d in doActivate<false>(QObject*, int, void**) (sender=0x5570445b9700, signal_index=3, argv=0x7fff74cde0e0) at kernel/qobject.cpp:3949
#41 0x00007fe220c46cd1 in QAbstractItemModel::dataChanged(QModelIndex const&, QModelIndex const&, QVector<int> const&) (this=<optimized out>, _t1=<optimized out>, _t2=<optimized out>, _t3=<optimized out>) at .moc/moc_qabstractitemmodel.cpp:557
#42 0x00007fe220c6d3a6 in QSortFilterProxyModelPrivate::_q_sourceDataChanged(QModelIndex const&, QModelIndex const&, QVector<int> const&) (this=0x557042c1ffc0, source_top_left=<optimized out>, source_bottom_right=<optimized out>, roles=...) at itemmodels/qsortfilterproxymodel.cpp:1539
#43 0x00007fe220cbec20 in doActivate<false>(QObject*, int, void**) (sender=0x5570445b68f0, signal_index=3, argv=0x7fff74cde3d0) at kernel/qobject.cpp:3935
#44 0x00007fe220c46cd1 in QAbstractItemModel::dataChanged(QModelIndex const&, QModelIndex const&, QVector<int> const&) (this=<optimized out>, _t1=..., _t2=..., _t3=...) at .moc/moc_qabstractitemmodel.cpp:557
#45 0x00007fe2110c5613 in TaskManager::TaskGroupingProxyModel::Private::sourceRowsAboutToBeRemoved(QModelIndex const&, int, int) (this=0x5570445b9010, parent=<optimized out>, first=<optimized out>, last=4) at /usr/src/debug/plasma-workspace/plasma-workspace-5.27.3/libtaskmanager/taskgroupingproxymodel.cpp:168
#46 0x00007fe220cbea71 in QtPrivate::QSlotObjectBase::call(QObject*, void**) (a=0x7fff74cde590, r=<optimized out>, this=0x5570445c99e0, this=<optimized out>, r=<optimized out>, a=<optimized out>) at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:398
#47 doActivate<false>(QObject*, int, void**) (sender=0x5570445b7500, signal_index=14, argv=0x7fff74cde590) at kernel/qobject.cpp:3923
#48 0x00007fe220c47393 in QAbstractItemModel::rowsAboutToBeRemoved(QModelIndex const&, int, int, QAbstractItemModel::QPrivateSignal) (this=this@entry=0x5570445b7500, _t1=..., _t2=<optimized out>, _t2@entry=4, _t3=<optimized out>, _t3@entry=4, _t4=...) at .moc/moc_qabstractitemmodel.cpp:599
#49 0x00007fe220c4741a in QAbstractItemModel::beginRemoveRows(QModelIndex const&, int, int) (this=0x5570445b7500, parent=..., first=4, last=4) at itemmodels/qabstractitemmodel.cpp:2818
#50 0x00007fe220c696d6 in QSortFilterProxyModelPrivate::remove_proxy_interval(QVector<int>&, QVector<int>&, int, int, QModelIndex const&, Qt::Orientation, bool) (this=0x5570445c92e0, emit_signal=<optimized out>, orient=Qt::Vertical, proxy_parent=..., proxy_end=4, proxy_start=4, proxy_to_source=..., source_to_proxy=...) at itemmodels/qsortfilterproxymodel.cpp:811
#51 QSortFilterProxyModelPrivate::remove_source_items(QVector<int>&, QVector<int>&, QVector<int> const&, QModelIndex const&, Qt::Orientation, bool) (this=this@entry=0x5570445c92e0, source_to_proxy=..., proxy_to_source=..., source_items=..., source_parent=..., orient=orient@entry=Qt::Vertical, emit_signal=true) at itemmodels/qsortfilterproxymodel.cpp:792
#52 0x00007fe220c69df3 in QSortFilterProxyModelPrivate::handle_filter_changed(QVector<int>&, QVector<int>&, QModelIndex const&, Qt::Orientation) (this=this@entry=0x5570445c92e0, source_to_proxy=..., proxy_to_source=..., source_parent=..., orient=orient@entry=Qt::Vertical) at itemmodels/qsortfilterproxymodel.cpp:1372
#53 0x00007fe220c6a18c in QSortFilterProxyModelPrivate::filter_changed(QModelIndex const&) (this=0x5570445c92e0, source_parent=...) at itemmodels/qsortfilterproxymodel.cpp:1305
#54 0x00007fe220c6a5d1 in QSortFilterProxyModel::invalidateFilter() (this=this@entry=0x5570445b7500) at itemmodels/qsortfilterproxymodel.cpp:3059
#55 0x00007fe2110c6df7 in TaskManager::TaskFilterProxyModel::setScreenGeometry(QRect const&) (this=0x5570445b7500, geometry=<optimized out>) at /usr/src/debug/plasma-workspace/plasma-workspace-5.27.3/libtaskmanager/taskfilterproxymodel.cpp:88
#56 0x00007fe2110c0e43 in TaskManager::TasksModel::qt_metacall(QMetaObject::Call, int, void**) (this=0x5570445b9700, _c=QMetaObject::WriteProperty, _id=5, _a=0x7fff74cde8f0) at /usr/src/debug/plasma-workspace/build/libtaskmanager/taskmanager_autogen/EWIEGA46WW/moc_tasksmodel.cpp:773
#57 0x00007fe22229c921 in QV4::QQmlValueTypeWrapper::write(QObject*, int) const (this=0x7fe2101c14c8, target=0x5570445b9700, propertyIndex=17) at /usr/src/debug/qt5-declarative/qtdeclarative/src/qml/qml/qqmlvaluetypewrapper.cpp:341
#58 0x00007fe222290de6 in GenericBinding<0>::write(QV4::Value const&, bool, QFlags<QQmlPropertyData::WriteFlag>) (this=0x5570445b8ea0, result=..., isUndefined=<optimized out>, flags=...) at /usr/src/debug/qt5-declarative/qtdeclarative/src/qml/qml/qqmlbinding.cpp:328
#59 0x00007fe2222978fe in QQmlNonbindingBinding::doUpdate(QQmlJavaScriptExpression::DeleteWatcher const&, QFlags<QQmlPropertyData::WriteFlag>, QV4::Scope&) (this=0x5570445b8ea0, watcher=..., flags=..., scope=<optimized out>) at /usr/src/debug/qt5-declarative/qtdeclarative/src/qml/qml/qqmlbinding.cpp:258
#60 0x00007fe222298f73 in QQmlBinding::update(QFlags<QQmlPropertyData::WriteFlag>) (this=0x5570445b8ea0, flags=...) at /usr/src/debug/qt5-declarative/qtdeclarative/src/qml/qml/qqmlbinding.cpp:194
#61 0x00007fe22227647f in QQmlNotifier::emitNotify(QQmlNotifierEndpoint*, void**) (endpoint=<optimized out>, a=0x0) at /usr/src/debug/qt5-declarative/qtdeclarative/src/qml/qml/qqmlnotifier.cpp:104
#62 0x00007fe220cbe740 in doActivate<false>(QObject*, int, void**) (sender=0x557042c31770, signal_index=60, argv=0x0) at kernel/qobject.cpp:3815
#63 0x00007fe220cbea71 in QtPrivate::QSlotObjectBase::call(QObject*, void**) (a=0x7fff74ce0560, r=<optimized out>, this=0x557042c330f0, this=<optimized out>, r=<optimized out>, a=<optimized out>) at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:398
#64 doActivate<false>(QObject*, int, void**) (sender=0x557042747300, signal_index=26, argv=0x7fff74ce0560) at kernel/qobject.cpp:3923
#65 0x00007fe222fa20b6 in Plasma::Containment::screenChanged(int) (this=this@entry=0x557042747300, _t1=<optimized out>) at /usr/src/debug/plasma-framework/build/src/plasma/KF5Plasma_autogen/include/moc_containment.cpp:461
#66 0x00007fe222fa50d8 in Plasma::Containment::reactToScreenChange() (this=this@entry=0x557042747300) at /usr/src/debug/plasma-framework/plasma-framework-5.104.0/src/plasma/containment.cpp:605
#67 0x00007fe223243dc3 in PlasmaQuick::ContainmentViewPrivate::setContainment(Plasma::Containment*) (this=0x5570480d1b40, cont=0x557042747300) at /usr/src/debug/plasma-framework/plasma-framework-5.104.0/src/plasmaquick/containmentview.cpp:88
#68 0x00007fe22324618d in PlasmaQuick::ContainmentView::setContainment(Plasma::Containment*) (this=this@entry=0x557043dc6b50, cont=<optimized out>) at /usr/src/debug/plasma-framework/plasma-framework-5.104.0/src/plasmaquick/containmentview.cpp:251
#69 0x00005570409a44b4 in ShellCorona::createWaitingPanels() (this=<optimized out>) at /usr/src/debug/plasma-workspace/plasma-workspace-5.27.3/shell/shellcorona.cpp:1488
#70 0x00007fe220cbea71 in QtPrivate::QSlotObjectBase::call(QObject*, void**) (a=0x7fff74ce08f0, r=<optimized out>, this=0x557041e8fe40, this=<optimized out>, r=<optimized out>, a=<optimized out>) at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:398
#71 doActivate<false>(QObject*, int, void**) (sender=0x557041bbee08, signal_index=3, argv=0x7fff74ce08f0) at kernel/qobject.cpp:3923
#72 0x00007fe220cc0fcf in QTimer::timeout(QTimer::QPrivateSignal) (this=<optimized out>, _t1=...) at .moc/moc_qtimer.cpp:205
#73 0x00007fe220cb1b56 in QObject::event(QEvent*) (this=0x557041bbee08, e=0x7fff74ce0a60) at kernel/qobject.cpp:1324
#74 0x00007fe221978b5c in QApplicationPrivate::notify_helper(QObject*, QEvent*) (this=<optimized out>, receiver=0x557041bbee08, e=0x7fff74ce0a60) at kernel/qapplication.cpp:3640
#75 0x00007fe220c8df48 in QCoreApplication::notifyInternal2(QObject*, QEvent*) (receiver=0x557041bbee08, event=0x7fff74ce0a60) at kernel/qcoreapplication.cpp:1064
#76 0x00007fe220cd84b3 in QTimerInfoList::activateTimers() (this=0x557041b8c990) at kernel/qtimerinfo_unix.cpp:643
#77 0x00007fe220cd8aaa in timerSourceDispatch(GSource*, GSourceFunc, gpointer) (source=<optimized out>) at kernel/qeventdispatcher_glib.cpp:183
#78 0x00007fe21fa7f53b in g_main_dispatch (context=0x7fe214000ee0) at ../glib/glib/gmain.c:3460
#79 g_main_context_dispatch (context=0x7fe214000ee0) at ../glib/glib/gmain.c:4200
#80 0x00007fe21fadc219 in g_main_context_iterate.constprop.0 (context=0x7fe214000ee0, block=1, dispatch=1, self=<optimized out>) at ../glib/glib/gmain.c:4276
#81 0x00007fe21fa7e1a2 in g_main_context_iteration (context=0x7fe214000ee0, may_block=1) at ../glib/glib/gmain.c:4343
#82 0x00007fe220cd8c6c in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x557041b8cff0, flags=...) at kernel/qeventdispatcher_glib.cpp:423
#83 0x00007fe220c866ec in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x7fff74ce0d10, flags=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:69
#84 0x00007fe220c91219 in QCoreApplication::exec() () at ../../include/QtCore/../../src/corelib/global/qflags.h:121
#85 0x00007fe22113a052 in QGuiApplication::exec() () at kernel/qguiapplication.cpp:1870
#86 0x00007fe221976f2a in QApplication::exec() () at kernel/qapplication.cpp:2832
#87 0x0000557040979168 in main(int, char**) (argc=<optimized out>, argv=<optimized out>) at /usr/src/debug/plasma-workspace/plasma-workspace-5.27.3/shell/main.cpp:235
[Inferior 1 (process 40735) detached]

Reported using DrKonqi
Comment 1 Nate Graham 2023-04-06 19:27:50 UTC
It's crashing in `Q_EMIT q->dataChanged(parent, parent);`

Code says this:

                    const QModelIndex parent = q->index(j, 0);
                    q->beginRemoveRows(parent, mapIndex, mapIndex);
                    rowMap[j]->remove(mapIndex);
                    q->endRemoveRows();

                    // Various roles of the parent evaluate child data, and the
                    // child list has changed.
                    Q_EMIT q->dataChanged(parent, parent);

Could it be that when we remove the rows, the parent gets cleaned and becomes nullptr?
Comment 2 Fushan Wen 2023-04-13 17:02:57 UTC
Ir shouldn't. (In reply to Nate Graham from comment #1)

> Could it be that when we remove the rows, the parent gets cleaned and
> becomes nullptr?

Ideally it shouldn't, as the signal is "about"ToBeRemoved. 

The question is why `QQuickRepeater::setModel` was called again. It should only be called when a new task manager is added.
Comment 3 Nate Graham 2023-08-30 20:42:18 UTC
No more reports since April. Maybe this got fixed since then? Is it still happening, Cemkaya?
Comment 4 cemkaya.boun@gmail.com 2023-08-31 11:11:29 UTC
(In reply to Nate Graham from comment #3)
> No more reports since April. Maybe this got fixed since then? Is it still
> happening, Cemkaya?

Hi, I do not have access to the external screen now, but I can get back to you next week. Thanks for your help!
Comment 5 cemkaya.boun@gmail.com 2023-09-11 09:32:59 UTC
(In reply to cemkaya.boun@gmail.com from comment #4)
> (In reply to Nate Graham from comment #3)
> > No more reports since April. Maybe this got fixed since then? Is it still
> > happening, Cemkaya?
> 
> Hi, I do not have access to the external screen now, but I can get back to
> you next week. Thanks for your help!

I can confirm that the bug is not present anymore. External screen works as intended.
Comment 6 Nate Graham 2023-09-11 17:07:05 UTC
Excellent, thanks for following up!
Comment 7 Nate Graham 2023-09-28 19:17:36 UTC

*** This bug has been marked as a duplicate of bug 474768 ***