mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-01-21 20:15:17 +00:00
Make LXC controller use a private dbus connection & close it
The LXC controller uses dbus to talk to systemd to create cgroups. This means that each LXC controller instance has a dbus connection. The DBus daemon is limited to 256 connections by default and we want to be able to run many 1000 of containers. While the dbus limit could be raised in the config files, it is simpler to make libvirt LXC controller close its dbus connection once everything is configured. Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
This commit is contained in:
parent
489beb0aba
commit
ae9a0485ae
@ -2381,6 +2381,7 @@ libvirt_lxc_CFLAGS = \
|
||||
$(PIE_CFLAGS) \
|
||||
$(LIBNL_CFLAGS) \
|
||||
$(FUSE_CFLAGS) \
|
||||
$(DBUS_CFLAGS) \
|
||||
$(NULL)
|
||||
if WITH_BLKID
|
||||
libvirt_lxc_CFLAGS += $(BLKID_CFLAGS)
|
||||
|
@ -64,6 +64,7 @@
|
||||
#include "virrandom.h"
|
||||
#include "virprocess.h"
|
||||
#include "virnuma.h"
|
||||
#include "virdbus.h"
|
||||
#include "rpc/virnetserver.h"
|
||||
#include "virstring.h"
|
||||
|
||||
@ -2200,6 +2201,12 @@ virLXCControllerRun(virLXCControllerPtr ctrl)
|
||||
if (virLXCControllerConsoleSetNonblocking(&(ctrl->consoles[i])) < 0)
|
||||
goto cleanup;
|
||||
|
||||
/* We must not hold open a dbus connection for life
|
||||
* of LXC instance, since dbus-daemon is limited to
|
||||
* only a few 100 connections by default
|
||||
*/
|
||||
virDBusCloseSystemBus();
|
||||
|
||||
rc = virLXCControllerMain(ctrl);
|
||||
|
||||
virLXCControllerEventSendExit(ctrl, rc);
|
||||
@ -2351,6 +2358,8 @@ int main(int argc, char *argv[])
|
||||
|
||||
virEventRegisterDefaultImpl();
|
||||
|
||||
virDBusSetSharedBus(false);
|
||||
|
||||
if (!(ctrl = virLXCControllerNew(name)))
|
||||
goto cleanup;
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user