#1000789 kiosk locked xfce4-panel causes ~/.xsession-errors to rapidly fill with error logspam

Package:
xfce4-panel
Source:
xfce4-panel
Description:
panel for Xfce4 desktop environment
Submitter:
"Trent W. Buck"
Date:
2021-11-28 23:39:04 UTC
Severity:
minor
#1000789#5
Date:
2021-11-28 23:37:32 UTC
From:
To:
https://sources.debian.org/src/xfce4-panel/4.16.3-1/plugins/launcher/launcher.c/?hl=593#L592-L667

This function copy-paste-edits
    /usr/share/applications/foo.desktop
to
    ~/.config/xfce4/panel/launcher-NUMBER/TIMESTAMP.desktop

Then it updates xfconf property xfce4-panel/plugins/plugin-NUMBER/items[] to refer to the new location.

When the panel is locked (by <channel unlocked="root">), the update fails.

In XFCE 4.10 (Debian 9), this happened once per login.
In XFCE 4.16 (Debian 11), this happens about once per second.
This is causing ~/.xsession-errors to fill up,
eventually filling $HOME and triggering EDQUOT/ENOSPC errors for all applications.

The rate of consumption is approximately 655 bytes per launcher item per second.
For a quicklaunch bar with 3 items, this is 161 MB/day.

A minimum file to reproduce is attached;
put it in world-readable /etc/xdg/xfce4/xfconf/xfce-perchannel-xml/xfce4-panel.xml.

Please provide kiosk operators a way to opt-out of launcher_plugin_item_duplicate.
I would be happy with any of these:

    1. xfce4-panel sees the xfconf channel is locked, and implicitly skips launcher_plugin_item_duplicate.
    2. xfce4-panel checks for an explicit opt-out like xfce4-panel/plugins/plugin-1/duplicate-launcher=false.
    3. launcher_plugin_item_duplicate is only tried once-per-login (not once-per-second), so .xsession-errors doesn't fill up.
    4. xfconf/garcon warnings/assertions are suppressed, so .xsession-errors doesn't fill up.


The errors look like this on Debian 11:

    (xfce4-panel:658): xfconf-WARNING **: 10:23:49.199: Failed to set property "xfce4-panel::/plugins/plugin-1/items": GDBus.Error:org.xfce.Xfconf.Error.PermissionDenied: Permission denied while modifying property "/plugins/plugin-1/items" on channel "xfce4-panel"

    (xfce4-panel:658): garcon-CRITICAL **: 10:23:49.227: garcon_gtk_menu_get_desktop_actions_menu: assertion 'actions != NULL' failed

    (xfce4-panel:658): garcon-CRITICAL **: 10:23:49.228: garcon_gtk_menu_get_desktop_actions_menu: assertion 'actions != NULL' failed

    (xfce4-panel:658): garcon-CRITICAL **: 10:23:49.228: garcon_gtk_menu_get_desktop_actions_menu: assertion 'actions != NULL' failed

    (xfce4-panel:658): xfconf-WARNING **: 10:23:50.199: Failed to set property "xfce4-panel::/plugins/plugin-1/items": GDBus.Error:org.xfce.Xfconf.Error.PermissionDenied: Permission denied while modifying property "/plugins/plugin-1/items" on channel "xfce4-panel"

    (xfce4-panel:658): garcon-CRITICAL **: 10:23:50.215: garcon_gtk_menu_get_desktop_actions_menu: assertion 'actions != NULL' failed

    (xfce4-panel:658): garcon-CRITICAL **: 10:23:50.215: garcon_gtk_menu_get_desktop_actions_menu: assertion 'actions != NULL' failed

    (xfce4-panel:658): garcon-CRITICAL **: 10:23:50.215: garcon_gtk_menu_get_desktop_actions_menu: assertion 'actions != NULL' failed

    (xfce4-panel:658): xfconf-WARNING **: 10:23:51.198: Failed to set property "xfce4-panel::/plugins/plugin-1/items": GDBus.Error:org.xfce.Xfconf.Error.PermissionDenied: Permission denied while modifying property "/plugins/plugin-1/items" on channel "xfce4-panel"

    (xfce4-panel:658): garcon-CRITICAL **: 10:23:51.215: garcon_gtk_menu_get_desktop_actions_menu: assertion 'actions != NULL' failed

    (xfce4-panel:658): garcon-CRITICAL **: 10:23:51.215: garcon_gtk_menu_get_desktop_actions_menu: assertion 'actions != NULL' failed

    (xfce4-panel:658): garcon-CRITICAL **: 10:23:51.215: garcon_gtk_menu_get_desktop_actions_menu: assertion 'actions != NULL' failed

    (xfce4-panel:658): xfconf-WARNING **: 10:23:52.198: Failed to set property "xfce4-panel::/plugins/plugin-1/items": GDBus.Error:org.xfce.Xfconf.Error.PermissionDenied: Permission denied while modifying property "/plugins/plugin-1/items" on channel "xfce4-panel"

    (xfce4-panel:658): garcon-CRITICAL **: 10:23:52.212: garcon_gtk_menu_get_desktop_actions_menu: assertion 'actions != NULL' failed

    (xfce4-panel:658): garcon-CRITICAL **: 10:23:52.213: garcon_gtk_menu_get_desktop_actions_menu: assertion 'actions != NULL' failed

    (xfce4-panel:658): garcon-CRITICAL **: 10:23:52.213: garcon_gtk_menu_get_desktop_actions_menu: assertion 'actions != NULL' failed

    (xfce4-panel:658): xfconf-WARNING **: 10:23:53.198: Failed to set property "xfce4-panel::/plugins/plugin-1/items": GDBus.Error:org.xfce.Xfconf.Error.PermissionDenied: Permission denied while modifying property "/plugins/plugin-1/items" on channel "xfce4-panel"

    (xfce4-panel:658): garcon-CRITICAL **: 10:23:53.214: garcon_gtk_menu_get_desktop_actions_menu: assertion 'actions != NULL' failed

    (xfce4-panel:658): garcon-CRITICAL **: 10:23:53.214: garcon_gtk_menu_get_desktop_actions_menu: assertion 'actions != NULL' failed

    (xfce4-panel:658): garcon-CRITICAL **: 10:23:53.215: garcon_gtk_menu_get_desktop_actions_menu: assertion 'actions != NULL' failed

    (xfce4-panel:658): xfconf-WARNING **: 10:23:54.199: Failed to set property "xfce4-panel::/plugins/plugin-1/items": GDBus.Error:org.xfce.Xfconf.Error.PermissionDenied: Permission denied while modifying property "/plugins/plugin-1/items" on channel "xfce4-panel"

    (xfce4-panel:658): garcon-CRITICAL **: 10:23:54.215: garcon_gtk_menu_get_desktop_actions_menu: assertion 'actions != NULL' failed

    (xfce4-panel:658): garcon-CRITICAL **: 10:23:54.215: garcon_gtk_menu_get_desktop_actions_menu: assertion 'actions != NULL' failed

    (xfce4-panel:658): garcon-CRITICAL **: 10:23:54.215: garcon_gtk_menu_get_desktop_actions_menu: assertion 'actions != NULL' failed