<p dir="ltr">Hello Simon </p>
<p dir="ltr">It is 1.10.6.  I use custom session bus. Really minimal config, just tcp, anonymous auth (so far)  and default limits, no selinux. </p>
<p dir="ltr">My thoughts also went into direction of file descriptors limit. I increased it already and I will observe if that behaviour appears again in the upcoming days or weeks. </p>
<p dir="ltr">I cannot use Unix sockets as I use elixir and underlying erlang has no proper Unix sockets support yet. I however plan to tunnel TCP over SSH which should be secure enough for me.</p>
<p dir="ltr">I understand that Ford hack must have been an issue but I think disabling ability to listen beyond localhost is a bad idea, as in some environments it is exactly what is wanted. Redis server by default is also open and the Web hasn't collapsed yet. </p>
<p dir="ltr">If you want to discourage using it, maybe call configuration key "please-listen-on-all-ifaces-despite-this-being-bad-idea" but please do not limit this. </p>
<p dir="ltr">M. </p>
<div class="gmail_quote">06.06.2016 1:38 PM "Simon McVittie" <<a href="mailto:simon.mcvittie@collabora.co.uk">simon.mcvittie@collabora.co.uk</a>> napisał(a):<br type="attribution"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">On 03/06/16 17:13, <a href="mailto:marcin@saepia.net">marcin@saepia.net</a> wrote:<br>
> I've observed weird behaviour with reference D-Bus daemon (version from<br>
> ubuntu 16.04), it ocassionally hits 100% CPU.<br>
<br>
What exact version is this?<br>
<br>
On Debian derivatives like Ubuntu, if you are using the packaged<br>
dbus-daemon installed at /usr/bin/dbus-daemon, run "dpkg-query -W dbus".<br>
<br>
> It seem to happen when it<br>
> gets around 1000 client connections<br>
<br>
1000 client connections sounds suspiciously similar to 1024, which is a<br>
common value for the RLIMIT_NOFILE limit that the kernel imposes on the<br>
dbus-daemon (RLIMIT_NOFILE, "Max open files" in /proc/${pid}/limits). We<br>
had issues a few years ago with the dbus-daemon's event loop going into<br>
a busy-loop when it tried to poll() RLIMIT_NOFILE file descriptors, but<br>
there are two reasons why we believe that should no longer apply:<br>
<br>
* that bug was caused by adding each file descriptor to the event loop<br>
  twice separately (for reading and writing), and we changed it to merge<br>
  the two watches into a single poll record (fixed in 1.5.6, bug<br>
  #23194);<br>
* we shouldn't be using poll() on modern Linux anyway, because I added<br>
  epoll support around the same time (1.5.10, bug #33337)<br>
<br>
I'd be interested in seeing stack traces and/or strace output from the<br>
busy-loop. Please open a bug. If you are using the packaged dbus-daemon<br>
from Ubuntu, install dbus-1-dbg before getting your stack traces, so<br>
that they'll contain useful information.<br>
<br>
> over TCP<br>
<br>
The TCP transport has the same security properties as 1980s-era NFS: it<br>
is only as secure as your network's ability to resist eavesdropping and<br>
spoofing, i.e. in practice it cannot be assumed to be secure. Please use<br>
the default AF_UNIX sockets instead. If you need remote D-Bus, I would<br>
recommend forwarding the normal AF_UNIX socket using a ssh tunnel or<br>
socat or similar.<br>
<br>
(One exception: on Windows, there is nothing better than TCP available<br>
to us, so it is OK to use the TCP transport listening on 127.0.0.1 or<br>
::1; however, we do not consider dbus on Windows to be suitable for use<br>
at a security boundary.)<br>
<br>
This has been a serious real world problem: a dbus-daemon inadvisably<br>
configured to use the TCP transport was a key part of the 2015 Jeep hack<br>
that led to a recall of 1.4 million vehicles. We have seriously<br>
considered making dbus-daemon refuse to listen on TCP at all, except for<br>
127.0.0.1 and ::1, to make it harder for dbus users to shoot themselves<br>
in the foot, and I might still do that for 1.12.<br>
<br>
> Is there anything particular in the config that could limit its capacity<br>
> regarding max clients limit?<br>
<br>
You haven't told me what configuration you are using, or whether this is<br>
the system bus, the session bus or a custom bus, so I can't say. If you<br>
are using TCP, then you are using a non-default configuration of some<br>
sort. What is that configuration?<br>
<br>
There are some hard-coded default limits used if the bus configuration<br>
(session.conf, system.conf, --config argument) does not specify a limit,<br>
but none of those are close to 1000: up to 2048 connections, of which<br>
each uid can have up to 256.<br>
<br>
--<br>
Simon McVittie<br>
Collabora Ltd. <<a href="http://www.collabora.com/" rel="noreferrer" target="_blank">http://www.collabora.com/</a>><br>
<br>
_______________________________________________<br>
dbus mailing list<br>
<a href="mailto:dbus@lists.freedesktop.org">dbus@lists.freedesktop.org</a><br>
<a href="https://lists.freedesktop.org/mailman/listinfo/dbus" rel="noreferrer" target="_blank">https://lists.freedesktop.org/mailman/listinfo/dbus</a><br>
</blockquote></div>