I’ve stumbled across a serious (IMO) bug in the mate-terminal 1.20.0 version that’s current in Leap 15.1. Briefly, each and every keypress in a mate-terminal sends a dbus message which can be seen via:
$ dbus-monitor
method call time=1578634085.278533 sender=:1.245 -> destination=org.freedesktop.DBus serial=1731 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=AddMatch
string "type='signal',interface='ca.desrt.dconf.Writer',path='/ca/desrt/dconf/Writer/user',arg0path='/org/mate/terminal/global/'"
method return time=1578634085.278565 sender=org.freedesktop.DBus -> destination=:1.245 serial=1698 reply_serial=1731
That’s bad enough (from CPU load and possibly security standpoints), but note the “serial” and “reply_serial” fields above. They increment at every keypress, and when they pass the following limit:
$ fgrep max_replies /usr/share/dbus-1/session.conf
<limit name="max_match_rules_per_connection">50000</limit>
then journalctl gets spammed (again, one entry for every keypress) with:
Jan 08 14:06:09 hostname dbus-daemon[2147]: [session uid=500 pid=2147] Connection ":1.14" is not allowed to add more match rules (increase limits in configuration file if required; max_match_rules_per_connection=50000)
This bug was fixed in June 2018, reportedly in the 1.20.1 release. See https://github.com/mate-desktop/mate-terminal/pull/241. I’ve tried to build the latest codebase (I believe 1.23.0) from source as a test, but as is often the case with complex application dependencies I’ve run into snags.The autogen.sh script fails with:
configure: error: Package requirements (vte-2.91 >= 0.46
glib-2.0 >= 2.50.0
gthread-2.0
gio-2.0 >= 2.50.0
gtk+-3.0 >= 3.22.0
dconf >= 0.13.4
x11) were not met:
This despite the fact that YaST shows I have:
package version
------- -------
libvte-2_91-0 0.50-2
glib-2_0-0 2.54.3
libgthread-2_0-0 2.54-3
libgio-2_0-0 2.54.3
gtk+-3 <nothing in repos>
dconf 0.26.1
x11 <libX11*, but no plain x11>
Should I file this as a bug on bugzilla? Hopefully for Leap 15.1, but would hate to see it continue into 15.2. I tried searching on bugzilla but got no results (not “Zarro Boogs found” – just nothing happens on entering “mate-terminal” and clicking “Search”. The site behaves very strangely on Firefox – the “Top 100” list doesn’t even show up – and not much better on Chromium).
Alternately, any suggestions on building the source welcome. Or confirmation of the problem on 15.1. Or anything. The only workaround I have is to log out, or at least kill all mate-terminals, before reaching the 50,000 keypress limit (which I hit every few days). This is because D-Bus has the wonderful “feature”:
# systemctl restart dbus
Failed to restart dbus.service: Operation refused, unit dbus.service may be requested by dependency only (it is configured to refuse manual start/stop).
See system logs and 'systemctl status dbus.service' for details.
Note the same/similar failure happens when trying to stop (and then restart) dbus in YaST -> Services Manager.