Bug 461529 - Crash in XdgWindowExporterWayland::run when selecting "Open with other application" on a download notification
Summary: Crash in XdgWindowExporterWayland::run when selecting "Open with other applic...
Status: RESOLVED FIXED
Alias: None
Product: plasma-integration
Classification: Plasma
Component: general (show other bugs)
Version: master
Platform: Other Linux
: NOR crash
Target Milestone: ---
Assignee: Plasma Bugs List
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2022-11-07 02:52 UTC by Bharadwaj Raju
Modified: 2022-12-08 14:52 UTC (History)
2 users (show)

See Also:
Latest Commit:
Version Fixed In:
Sentry Crash Report:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Bharadwaj Raju 2022-11-07 02:52:56 UTC
SUMMARY
Plasma crashes in XdgWindowExporterWayland::run when I try to get the open with other apps dialog from a file download notification.

STEPS TO REPRODUCE
1. Download a file with Firefox, get a notification
2. Menu > Open with > Open with other application

SOFTWARE/OS VERSIONS
KDE Plasma Version: git master
KDE Frameworks Version: git master
Qt Version: 5.15.6

BACKTRACE

#0  0x00007ffff632f3a0 in QWidgetPrivate::windowHandle(QWidgetPrivate::WindowHandleMode) const () at /lib64/libQt5Widgets.so.5
#1  0x00007fffe33b9011 in XdgWindowExporterWayland::run(QWidget*)::{lambda(unsigned int, unsigned int)#1}::operator()(unsigned int, unsigned int) const
    (version=<optimized out>, name=<optimized out>, __closure=0x167ae50) at /home/bharadwaj/kde/src/plasma-integration/src/platformtheme/kdeplatformtheme.cpp:106
#2  QtPrivate::FunctorCall<QtPrivate::IndexesList<0, 1>, QtPrivate::List<unsigned int, unsigned int>, void, XdgWindowExporterWayland::run(QWidget*)::{lambda(unsigned int, unsigned int)#1}>::call(XdgWindowExporterWayland::run(QWidget*)::{lambda(unsigned int, unsigned int)#1}&, void**) (arg=<optimized out>, f=...)
    at /usr/include/qt5/QtCore/qobjectdefs_impl.h:146
#3  QtPrivate::Functor<XdgWindowExporterWayland::run(QWidget*)::{lambda(unsigned int, unsigned int)#1}, 2>::call<QtPrivate::List<unsigned int, unsigned int>, void>(XdgWindowExporterWayland::run(QWidget*)::{lambda(unsigned int, unsigned int)#1}&, void*, void**) (arg=<optimized out>, f=...)
    at /usr/include/qt5/QtCore/qobjectdefs_impl.h:256
#4  QtPrivate::QFunctorSlotObject<XdgWindowExporterWayland::run(QWidget*)::{lambda(unsigned int, unsigned int)#1}, 2, QtPrivate::List<unsigned int, unsigned int>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*) (which=<optimized out>, this_=0x167ae40, r=<optimized out>, a=<optimized out>, ret=<optimized out>)
    at /usr/include/qt5/QtCore/qobjectdefs_impl.h:443
#5  0x00007ffff54a39a6 in void doActivate<false>(QObject*, int, void**) () at /lib64/libQt5Core.so.5
#6  0x00007ffff7e8c1f8 in KWayland::Client::Registry::exporterUnstableV2Announced(unsigned int, unsigned int)
    (this=<optimized out>, _t1=<optimized out>, _t2=<optimized out>)
    at /home/bharadwaj/kde/build/kwayland/src/client/KF5WaylandClient_autogen/EWIEGA46WW/moc_registry.cpp:1292
#7  0x00007ffff4973746 in ffi_call_unix64 () at /lib64/libffi.so.8
#8  0x00007ffff49704d2 in ffi_call_int.lto_priv () at /lib64/libffi.so.8
#9  0x00007ffff7dc4e53 in wl_closure_invoke.constprop () at /lib64/libwayland-client.so.0
#10 0x00007ffff7dc55f3 in dispatch_event.isra () at /lib64/libwayland-client.so.0
#11 0x00007ffff7dc57bc in wl_display_dispatch_queue_pending () at /lib64/libwayland-client.so.0
#12 0x00007ffff4acd695 in QtWaylandClient::QWaylandDisplay::flushRequests() () at /lib64/libQt5WaylandClient.so.5
#13 0x00007ffff54a3b2f in void doActivate<false>(QObject*, int, void**) () at /lib64/libQt5Core.so.5
#14 0x00007ffff54c105d in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib64/libQt5Core.so.5
#15 0x00007ffff546ec1a in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib64/libQt5Core.so.5
#16 0x00007ffff5476ce2 in QCoreApplication::exec() () at /lib64/libQt5Core.so.5
#17 0x0000000000422cb9 in main(int, char**) (argc=<optimized out>, argv=<optimized out>) at /home/bharadwaj/kde/src/plasma-workspace/shell/main.cpp:235
Comment 1 Harald Sitter 2022-11-09 11:33:33 UTC
Looks like the widget goes away before its use. Probably needs wrapping in a qpointer so we can check for deletion.
Comment 2 Bug Janitor Service 2022-12-08 14:06:28 UTC
A possibly relevant merge request was started @ https://invent.kde.org/plasma/plasma-integration/-/merge_requests/62
Comment 3 Bharadwaj Raju 2022-12-08 14:52:07 UTC
Git commit ae5aef83bed0104e772486335b6061159fb74854 by Bharadwaj Raju.
Committed on 08/12/2022 at 14:28.
Pushed by bharadwaj-raju into branch 'master'.

Fix crash when selecting "Open with other application" on download notification

M  +8    -2    src/platformtheme/kdeplatformtheme.cpp

https://invent.kde.org/plasma/plasma-integration/commit/ae5aef83bed0104e772486335b6061159fb74854