<html>
    <head>
      <base href="https://bugs.freedesktop.org/" />
    </head>
    <body>
      <p>
        <div>
            <b><a class="bz_bug_link 
          bz_status_NEW "
   title="NEW - PulseAudio gets reliably killed upon a big number of client connections"
   href="https://bugs.freedesktop.org/show_bug.cgi?id=94629#c2">Comment # 2</a>
              on <a class="bz_bug_link 
          bz_status_NEW "
   title="NEW - PulseAudio gets reliably killed upon a big number of client connections"
   href="https://bugs.freedesktop.org/show_bug.cgi?id=94629">bug 94629</a>
              from <span class="vcard"><a class="email" href="mailto:darwish.07@gmail.com" title="Ahmed S. Darwish <darwish.07@gmail.com>"> <span class="fn">Ahmed S. Darwish</span></a>
</span></b>
        <pre>Hi Alex,

On Sun, Mar 20, 2016 at 05:48:28AM +0000, <a href="mailto:bugzilla-daemon@freedesktop.org">bugzilla-daemon@freedesktop.org</a>
wrote:
>
<span class="quote">> <a class="bz_bug_link 
          bz_status_NEW "
   title="NEW - PulseAudio gets reliably killed upon a big number of client connections"
   href="show_bug.cgi?id=94629">https://bugs.freedesktop.org/show_bug.cgi?id=94629</a>

> --- <a href="show_bug.cgi?id=94629#c1">Comment #1</a> from Alexander E. Patrakov <<a href="mailto:patrakov@gmail.com">patrakov@gmail.com</a>> ---
> Thanks for the report. The kills may happen because of exceeding the allowed
> real-time budget. To verify this, please modify /etc/pulse/daemon.conf:</span >
>
<span class="quote">> realtime-scheduling=no</span >
>

Thanks! This indeed confirms that PA reliably exceeds its RT budget.
Adding `realtime-scheduling=no' makes the bug completely vanish.
Reset the option back to yes, and PA gets reliably killed again.

After applying Arun's kernel rlimits verbosity patch, here is what
I see in dmesg when PA gets unsolicitedly killed:

  [23891.784010] CPU Watchdog Timeout (hard): alsa-sink-VT170[7131]

So this also adds another confirmation and shows why the bug does
not appear by using NULL sinks..

[ Hmm, .. thinking about solutions ]

Unfortunately lowering the maximum amount of clients is not a
solution: on Tanu's machine, sometimes even just 18 clients did
the trick :-(

One of the reasons of the memfd + making pools per-client patches
is to make PA a little bit safer as a system daemon (a fuzzer may
also be built down the road). If clients can trigger a reliable
PulseAudio kill, we have a reliable DoS attack on our hands..

So now the question is, how to modify PA to make sure it does not
exceed its RT budget?


Regards,
Darwish</pre>
        </div>
      </p>
      <hr>
      <span>You are receiving this mail because:</span>
      
      <ul>
          <li>You are the assignee for the bug.</li>
          <li>You are the QA Contact for the bug.</li>
      </ul>
    </body>
</html>