On Sun, 22 Dec 2024 at 14:39:35 +0300, Michael Tokarev wrote:
> And there's no way to fix [an in-process plugin architecture] in current
> infrastructure, besides switching to dovecot auth (which works by implementing
> a higher-level protocol than saslauthd does).

This is a recurring pattern: if we want a component to be able to run in
a container (and chroots can be viewed as a simple case of containers),
in-process plugins and C-library-ABI-based protocols are often
troublesome, and it's often necessary to have a design where some amount
of "the real work" is done in a separate process, with which the
containerized component communicates via a somewhat stable IPC protocol.

We see this with audio in Flatpak apps working best with Pulseaudio or
Pipewire (a stable IPC protocol to a daemon that does the real work),
erratically with ALSA dmix (an undocumented IPC protocol), and not at all
with JACK (a stable C library ABI that wraps an unstable IPC protocol).
We also see this with Wayland and X11 working quite well across container
boundaries in practice, and protocols over a generic AF_UNIX transport
like D-Bus or Varlink often being container-friendly (if they have been
designed that way - there are plenty of ways to get this wrong).

    smcv

Reply via email to