Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Error calling StartServiceByName for org.freedesktop.impl.portal.desktop.gnome: Timeout was reached #986

Open
vulpes2 opened this issue Mar 19, 2023 · 5 comments

Comments

@vulpes2
Copy link

vulpes2 commented Mar 19, 2023

Note: this is not the common problem where applications that use portals take forever to start, this is about xdg-desktop-portal itself taking an unusual amount of time to start.

OS: Fedora 38 (beta)
Desktop Environment: Plasma 5.27.3
xdg-desktop-portal: 1.16.0

After upgrading my system, I noticed a lot of programs take almost forever to start, and it ended up being caused by xdg-desktop-portal not running as it should be. Later I found out xdg-desktop-portal now takes over a minute to start, which is longer than the default timeout (60s).

This can be partially mitigated by extending the TimeoutSec setting for the systemd unit , but I would still have to wait over a minute after logging in to be able to launch most of my applications. I'm not quite sure how to debug this any further, any help or information would be greatly appreciated.

14:34:54 pc systemd[2271]: Stopped xdg-desktop-portal.service - Portal service.
14:34:54 pc systemd[2271]: Starting xdg-desktop-portal.service - Portal service...
14:35:44 pc xdg-desktop-por[64232]: Failed to create settings proxy: Error calling StartServiceByName for org.freedesktop.impl.portal.desktop.gnome: Timeout was reached
14:36:09 pc xdg-desktop-por[64232]: Failed to create wallpaper proxy: Error calling StartServiceByName for org.freedesktop.impl.portal.desktop.gnome: Timeout was reached
14:36:09 pc xdg-desktop-por[64232]: No skeleton to export
14:36:09 pc systemd[2271]: Started xdg-desktop-portal.service - Portal service.
$ /usr/libexec/xdg-desktop-portal --replace --verbose
XDP: load portals from /usr/share/xdg-desktop-portal/portals
XDP: loading /usr/share/xdg-desktop-portal/portals/kde.portal
XDP: portal implementation for KDE
XDP: portal implementation supports org.freedesktop.impl.portal.Access
XDP: portal implementation supports org.freedesktop.impl.portal.Account
XDP: portal implementation supports org.freedesktop.impl.portal.AppChooser
XDP: portal implementation supports org.freedesktop.impl.portal.Background
XDP: portal implementation supports org.freedesktop.impl.portal.Email
XDP: portal implementation supports org.freedesktop.impl.portal.FileChooser
XDP: portal implementation supports org.freedesktop.impl.portal.Inhibit
XDP: portal implementation supports org.freedesktop.impl.portal.Notification
XDP: portal implementation supports org.freedesktop.impl.portal.Print
XDP: portal implementation supports org.freedesktop.impl.portal.ScreenCast
XDP: portal implementation supports org.freedesktop.impl.portal.Screenshot
XDP: portal implementation supports org.freedesktop.impl.portal.RemoteDesktop
XDP: portal implementation supports org.freedesktop.impl.portal.Settings
XDP: portal implementation supports org.freedesktop.impl.portal.DynamicLauncher
XDP: portal implementation supports org.freedesktop.impl.portal.GlobalShortcuts
XDP: loading /usr/share/xdg-desktop-portal/portals/gtk.portal
XDP: portal implementation for gnome
XDP: portal implementation supports org.freedesktop.impl.portal.FileChooser
XDP: portal implementation supports org.freedesktop.impl.portal.AppChooser
XDP: portal implementation supports org.freedesktop.impl.portal.Print
XDP: portal implementation supports org.freedesktop.impl.portal.Notification
XDP: portal implementation supports org.freedesktop.impl.portal.Inhibit
XDP: portal implementation supports org.freedesktop.impl.portal.Access
XDP: portal implementation supports org.freedesktop.impl.portal.Account
XDP: portal implementation supports org.freedesktop.impl.portal.Email
XDP: portal implementation supports org.freedesktop.impl.portal.DynamicLauncher
XDP: portal implementation supports org.freedesktop.impl.portal.Settings
XDP: loading /usr/share/xdg-desktop-portal/portals/gnome-keyring.portal
XDP: portal implementation for gnome
XDP: portal implementation supports org.freedesktop.impl.portal.Secret
XDP: loading /usr/share/xdg-desktop-portal/portals/gnome.portal
XDP: portal implementation for gnome
XDP: portal implementation supports org.freedesktop.impl.portal.Account
XDP: portal implementation supports org.freedesktop.impl.portal.AppChooser
XDP: portal implementation supports org.freedesktop.impl.portal.Screenshot
XDP: portal implementation supports org.freedesktop.impl.portal.ScreenCast
XDP: portal implementation supports org.freedesktop.impl.portal.RemoteDesktop
XDP: portal implementation supports org.freedesktop.impl.portal.Lockdown
XDP: portal implementation supports org.freedesktop.impl.portal.Background
XDP: portal implementation supports org.freedesktop.impl.portal.Settings
XDP: portal implementation supports org.freedesktop.impl.portal.Wallpaper
XDP: portal implementation supports org.freedesktop.impl.portal.FileChooser
XDP: portal implementation supports org.freedesktop.impl.portal.Print
XDP: portal implementation supports org.freedesktop.impl.portal.DynamicLauncher
XDP: Falling back to gnome.portal for org.freedesktop.impl.portal.Lockdown
XDP: providing portal org.freedesktop.portal.MemoryMonitor
XDP: providing portal org.freedesktop.portal.PowerProfileMonitor
XDP: providing portal org.freedesktop.portal.NetworkMonitor
XDP: providing portal org.freedesktop.portal.ProxyResolver
XDP: providing portal org.freedesktop.portal.Trash
XDP: providing portal org.freedesktop.portal.GameMode
XDP: providing portal org.freedesktop.portal.Realtime
XDP: Using kde.portal for org.freedesktop.impl.portal.Settings
XDP: Using gnome.portal for org.freedesktop.impl.portal.Settings
XDP: Using gtk.portal for org.freedesktop.impl.portal.Settings

(/usr/libexec/xdg-desktop-portal:65292): xdg-desktop-portal-WARNING **: 14:46:20.075: Failed to create settings proxy: Error calling StartServiceByName for org.freedesktop.impl.portal.desktop.gnome: Timeout was reached
XDP: providing portal org.freedesktop.portal.Settings
XDP: Using kde.portal for org.freedesktop.impl.portal.FileChooser in KDE
XDP: providing portal org.freedesktop.portal.FileChooser
XDP: Using kde.portal for org.freedesktop.impl.portal.AppChooser in KDE
XDP: providing portal org.freedesktop.portal.OpenURI
XDP: Using kde.portal for org.freedesktop.impl.portal.Print in KDE
XDP: providing portal org.freedesktop.portal.Print
XDP: Using kde.portal for org.freedesktop.impl.portal.Notification in KDE
XDP: providing portal org.freedesktop.portal.Notification
XDP: Using kde.portal for org.freedesktop.impl.portal.Inhibit in KDE
XDP: providing portal org.freedesktop.portal.Inhibit
XDP: Using kde.portal for org.freedesktop.impl.portal.Access in KDE
XDP: Using kde.portal for org.freedesktop.impl.portal.Screenshot in KDE
XDP: providing portal org.freedesktop.portal.Screenshot
XDP: Using kde.portal for org.freedesktop.impl.portal.Background in KDE
XDP: providing portal org.freedesktop.portal.Device
XDP: providing portal org.freedesktop.portal.Location
XDP: providing portal org.freedesktop.portal.Camera

(/usr/libexec/xdg-desktop-portal:65292): xdg-desktop-portal-WARNING **: 14:46:20.111: Failed to create background monitor: Failed to own background monitor D-Bus name

(/usr/libexec/xdg-desktop-portal:65292): xdg-desktop-portal-WARNING **: 14:46:20.111: No skeleton to export
XDP: Falling back to gnome.portal for org.freedesktop.impl.portal.Wallpaper

(/usr/libexec/xdg-desktop-portal:65292): xdg-desktop-portal-WARNING **: 14:46:45.137: Failed to create wallpaper proxy: Error calling StartServiceByName for org.freedesktop.impl.portal.desktop.gnome: Timeout was reached

(/usr/libexec/xdg-desktop-portal:65292): xdg-desktop-portal-WARNING **: 14:46:45.137: No skeleton to export
XDP: Using kde.portal for org.freedesktop.impl.portal.Account in KDE
XDP: using org.freedesktop.impl.portal.Account at org.freedesktop.impl.portal.desktop.kde

XDP: providing portal org.freedesktop.portal.Account
XDP: Using kde.portal for org.freedesktop.impl.portal.Email in KDE
XDP: providing portal org.freedesktop.portal.Email
XDP: Falling back to gnome-keyring.portal for org.freedesktop.impl.portal.Secret
XDP: providing portal org.freedesktop.portal.Secret
XDP: Using kde.portal for org.freedesktop.impl.portal.GlobalShortcuts in KDE
XDP: providing portal org.freedesktop.portal.GlobalShortcuts
XDP: Using kde.portal for org.freedesktop.impl.portal.DynamicLauncher in KDE
XDP: providing portal org.freedesktop.portal.DynamicLauncher
XDP: Using kde.portal for org.freedesktop.impl.portal.ScreenCast in KDE
XDP: providing portal org.freedesktop.portal.ScreenCast
XDP: Using kde.portal for org.freedesktop.impl.portal.RemoteDesktop in KDE
XDP: providing portal org.freedesktop.portal.RemoteDesktop
XDP: org.freedesktop.portal.Desktop acquired
@vulpes2
Copy link
Author

vulpes2 commented Mar 26, 2023

Uninstalling xdg-desktop-portal-gnome fixed the timeout, now xdg-desktop-portal can start almost instantly as expected. Interestingly this package is also installed on Fedora 37's KDE spin and it's enabled by default, however it doesn't seem to be causing any issues on F37, only on F38.

https://gitlab.gnome.org/GNOME/xdg-desktop-portal-gnome/-/issues/74

@vulpes2 vulpes2 closed this as completed Mar 26, 2023
@jadahl
Copy link
Collaborator

jadahl commented Mar 27, 2023

@q234rty
Copy link

q234rty commented May 15, 2023

Still happens for me on x-d-p 1.16.0 + cherry-picked 2a21927 + x-d-p-gnome 44.1

In particular,

Failed to create settings proxy: Error calling StartServiceByName for org.freedesktop.impl.portal.desktop.gnome: Timeout was reached

still happens.
I think the reason is that #985 does not change the behavior of find_all_portal_implementations so x-d-p still times out waiting for x-d-p-gnome while creating the settings portal.

@jadahl
Copy link
Collaborator

jadahl commented May 15, 2023

I think the reason is that #985 does not change the behavior of find_all_portal_implementations so x-d-p still times out waiting for x-d-p-gnome while creating the settings portal.

That's odd, I could reproduce the problem before (using KDE), and with the updated xdp-gnome and xdp it didn't time out anymore. What distribution are you using?

@jadahl jadahl reopened this May 15, 2023
@q234rty
Copy link

q234rty commented May 15, 2023

What distribution are you using?

I'm using Arch Linux with an admittedly funky setup (greetd/sway/etc.)

I have tested a bit more and found that:

  1. Under dbus-broker, the issue does seem to be resolved after portal-impl: Only return found implementation if it launched #985 and the settings portal does try to start x-d-p-gnome but it fails immediately w/o hitting a timeout: Failed to ReadAll() from Settings implementation: GDBus.Error:org.freedesktop.DBus.Error.NameHasNoOwner: Could not activate remote peer: startup job failed. and it falls back to the x-d-p-gtk as it should.

  2. Under dbus-daemon, even after portal-impl: Only return found implementation if it launched #985 and removing org.freedesktop.impl.portal.Settings from gnome.portal, x-d-p seems to hit the the timeout when creating the dummy proxy:
    XDP: Failed to create dummy fallback proxy on org.freedesktop.impl.portal.desktop.gnome for org.freedesktop.impl.portal.Print: Error calling StartServiceByName for org.freedesktop.impl.portal.desktop.gnome: Timeout was reached

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants