Package: xfce4-panel
Version: 4.16.2-1
Severity: minor

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

-- System Information:
Debian Release: 11.1
  APT prefers stable-updates
  APT policy: (500, 'stable-updates'), (500, 'stable-security'), (500, 
'proposed-updates'), (500, 'stable')
Architecture: amd64 (x86_64)

Kernel: Linux 5.14.0-0.bpo.2-amd64 (SMP w/8 CPU threads)
Kernel taint flags: TAINT_PROPRIETARY_MODULE, TAINT_OOT_MODULE, 
TAINT_UNSIGNED_MODULE
Locale: LANG=en_AU.UTF-8, LC_CTYPE=en_AU.UTF-8 (charmap=UTF-8), LANGUAGE not set
Shell: /bin/sh linked to /usr/bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled
<?xml version="1.0" encoding="UTF-8"?>
<channel name="xfce4-panel" version="1.0" unlocked="root">
  <property name="configver" type="int" value="2"/>
  <property name="panels" type="array">
    <value type="int" value="1"/>
    <property name="panel-1" type="empty">
      <property name="position" type="string" value="p=8;x=0;y=0"/>
      <property name="length" type="uint" value="100"/>
      <property name="plugin-ids" type="array">
        <value type="int" value="1"/>
      </property>
    </property>
  </property>
  <property name="plugins" type="empty">
    <property name="plugin-1" type="string" value="launcher">
      <property name="items" type="array">
        <value type="string" value="chromium.desktop"/>
      </property>
    </property>
  </property>
</channel>

Reply via email to