https://bugs.kde.org/show_bug.cgi?id=467622

            Bug ID: 467622
           Summary: screensharing crashes portal
    Classification: Plasma
           Product: xdg-desktop-portal-kde
           Version: 5.27.3
          Platform: Fedora RPMs
                OS: Linux
            Status: REPORTED
          Keywords: drkonqi
          Severity: crash
          Priority: NOR
         Component: general
          Assignee: plasma-b...@kde.org
          Reporter: kor...@gmail.com
                CC: aleix...@kde.org, jgrul...@redhat.com, n...@kde.org
  Target Milestone: ---

Application: xdg-desktop-portal-kde (5.27.3)

Qt Version: 5.15.8
Frameworks Version: 5.104.0
Operating System: Linux 6.2.7-300.fc38.x86_64 x86_64
Windowing System: Wayland
Distribution: Fedora Linux 38 (Thirty Eight Prerelease)
DrKonqi: 5.27.3 [KCrashBackend]

-- Information about the crash:
Choosing "new virtual output" on portal screensharing, stopping shareing and
sharing again shows incorrect number of output monitors, selecting one without
a name crashes

obs logs:

info: [pipewire] Stream 0x556a2ebc47c0 state: "unconnected" (error: none)
info: PipeWire initialized
info: [pipewire] Screencast session created
info: [pipewire] Asking for desktop
warning: [pipewire] Failed to start screencast, denied or cancelled by user


xdg-desktop-portal-kde logs:

QT_LOGGING_RULES='*.debug=true' /usr/libexec/xdg-desktop-portal-kde -rv

kf.wayland.client: Unknown interface announced:  kde_output_device_v2 / 63 / 2
kf.wayland.client: Wayland Interface:  wl_output / 64 / 4
qt.qpa.wayland: Received xdg_toplevel.configure with QSize(1870, 1051) and
QFlags<Qt::WindowState>(WindowMaximized)
qt.qpa.wayland: Applied pending xdg_toplevel configure event: QSize(1870, 1051)
QFlags<Qt::WindowState>(WindowMaximized)
qt.scenegraph.renderloop: exposureChanged()
ApplicationWindow_QMLTYPE_49_QML_78(0x55596cdd9ab0 exposed,
visibility=QWindow::Maximized, flags=QFlags<Qt::WindowType>(Window),
title="Portal", geometry=0,0 1870x1051)
qt.scenegraph.renderloop: handleExposure()
ApplicationWindow_QMLTYPE_49_QML_78(0x55596cdd9ab0 exposed,
visibility=QWindow::Maximized, flags=QFlags<Qt::WindowType>(Window),
title="Portal", geometry=0,0 1870x1051)
qt.scenegraph.renderloop: - render thread already running
qt.scenegraph.renderloop: polishAndSync (in expose)
ApplicationWindow_QMLTYPE_49_QML_78(0x55596cdd9ab0 exposed,
visibility=QWindow::Maximized, flags=QFlags<Qt::WindowType>(Window),
title="Portal", geometry=0,0 1870x1051)
qt.scenegraph.renderloop: - lock for sync
qt.scenegraph.renderloop: - wait for sync
qt.scenegraph.renderloop:                     (RT) WM_RequestSync
qt.scenegraph.renderloop:                     (RT) - triggered from expose
qt.scenegraph.renderloop:                     (RT) --- done
processEventsAndWaitForMore()
qt.scenegraph.renderloop:                     (RT) syncAndRender()
qt.scenegraph.renderloop:                     (RT) - updatePending, doing sync
qt.scenegraph.renderloop:                     (RT) sync()
qt.quick.dirty: QQuickWindowPrivate::updateDirtyNodes():
qt.scenegraph.renderloop:                     (RT) - rendering started
qt.scenegraph.time.renderer: time in renderer: total=0ms, preprocess=0,
updates=0, binding=0, rendering=0
qt.qpa.wayland.backingstore: handleUpdate QSGRenderThread(0x55596d1fa180)
qt.scenegraph.renderloop:                     (RT) - rendering done
qt.scenegraph.renderloop:                     (RT) - wake Gui after expose
qt.scenegraph.renderloop: - unlock after sync
qt.scenegraph.time.renderloop: Frame prepared with 'threaded' renderloop,
polish=0, lock=0, blockedForSync=8, animations=0 - (on Gui thread)
ApplicationWindow_QMLTYPE_49_QML_78(0x55596cdd9ab0 exposed,
visibility=QWindow::Maximized, flags=QFlags<Qt::WindowType>(Window),
title="Portal", geometry=0,0 1870x1051)
qt.scenegraph.renderloop: - done with handleExposure()
qt.scenegraph.time.renderloop: Frame rendered with 'threaded' renderloop in
8ms, sync=0, render=0, swap=8 - (on render thread)
qt.scenegraph.renderloop:                     (RT) --- begin processEvents()
qt.scenegraph.renderloop:                     (RT) --- done processEvents()
qt.scenegraph.renderloop:                     (RT) done drawing, sleep...
qt.scenegraph.renderloop:                     (RT) --- begin
processEventsAndWaitForMore()



xdg-desktop-portal
(/usr/libexec/xdg-desktop-portal:8780): xdg-desktop-portal-WARNING **:
20:48:36.142: A backend call failed: Remote peer disconnected
XDP: screen cast session owned by ':1.352' closed

i have not been able to do a screenshare not even once on wayland. x11 works
just fine. the hover on taskbar tasks do not show the content either. i think
they are using the same mechanism to get the image for the application state.

on xdg-desktop-portal launch:

(/usr/libexec/xdg-desktop-portal:8780): xdg-desktop-portal-WARNING **:
20:28:51.368: Failed to create background monitor: Failed to own background
monitor D-Bus name

(/usr/libexec/xdg-desktop-portal:8780): xdg-desktop-portal-WARNING **:
20:28:51.368: No skeleton to export

The crash can be reproduced every time.

-- Backtrace:
Application: Portal (xdg-desktop-portal-kde), signal: Segmentation fault

[KCrash Handler]
#4  0x00007faef24baa74 in KWayland::Client::Output::globalPosition() const ()
from /lib64/libKF5WaylandClient.so.5
#5  0x000056394ed6c77c in
WaylandIntegration::WaylandIntegrationPrivate::startStreamingOutput(unsigned
int, Screencasting::CursorMode) ()
#6  0x000056394ed5ba99 in ScreenCastPortal::Start(QDBusObjectPath const&,
QDBusObjectPath const&, QString const&, QString const&, QMap<QString, QVariant>
const&, QMap<QString, QVariant>&) ()
#7  0x000056394ed34c30 in ScreenCastPortal::qt_static_metacall(QObject*,
QMetaObject::Call, int, void**) ()
#8  0x000056394ed395f2 in ScreenCastPortal::qt_metacall(QMetaObject::Call, int,
void**) ()
#9  0x00007faef10d944b in QDBusConnectionPrivate::deliverCall(QObject*, int,
QDBusMessage const&, QVector<int> const&, int) () from /lib64/libQt5DBus.so.5
#10 0x00007faef10dd42d in QDBusConnectionPrivate::activateCall(QObject*, int,
QDBusMessage const&) [clone .part.0] () from /lib64/libQt5DBus.so.5
#11 0x00007faef10ddc39 in
QDBusConnectionPrivate::activateObject(QDBusConnectionPrivate::ObjectTreeNode&,
QDBusMessage const&, int) () from /lib64/libQt5DBus.so.5
#12 0x00007faef10dff24 in QDBusActivateObjectEvent::placeMetaCall(QObject*) ()
from /lib64/libQt5DBus.so.5
#13 0x00007faef00def9b in QObject::event(QEvent*) () from
/lib64/libQt5Core.so.5
#14 0x00007faef19aeca5 in QApplicationPrivate::notify_helper(QObject*, QEvent*)
() from /lib64/libQt5Widgets.so.5
#15 0x00007faef00b35a8 in QCoreApplication::notifyInternal2(QObject*, QEvent*)
() from /lib64/libQt5Core.so.5
#16 0x00007faef00b6a55 in QCoreApplicationPrivate::sendPostedEvents(QObject*,
int, QThreadData*) () from /lib64/libQt5Core.so.5
#17 0x00007faef010669f in postEventSourceDispatch(_GSource*, int (*)(void*),
void*) () from /lib64/libQt5Core.so.5
#18 0x00007faeee513788 in g_main_context_dispatch () from
/lib64/libglib-2.0.so.0
#19 0x00007faeee571dd8 in g_main_context_iterate.isra () from
/lib64/libglib-2.0.so.0
#20 0x00007faeee511113 in g_main_context_iteration () from
/lib64/libglib-2.0.so.0
#21 0x00007faef0106189 in
QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) ()
from /lib64/libQt5Core.so.5
#22 0x00007faef00b1f7b in
QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from
/lib64/libQt5Core.so.5
#23 0x00007faef00ba1fb in QCoreApplication::exec() () from
/lib64/libQt5Core.so.5
#24 0x000056394ed3015a in main ()
[Inferior 1 (process 8751) detached]

The reporter indicates this bug may be a duplicate of or related to bug 448781.

Reported using DrKonqi

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to