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