[PATCH] Use prefork for more test environments

Andrew Bartlett abartlet at samba.org
Thu May 24 03:28:43 UTC 2018

Samba's AD DC has had a prefork mode since Samba 4.8, but it is only
used in a small test environment.  It consumes much less resources than
-M standard (when many LDAP clients are connected) but without the
single-thread downsides of -M single.

This patch changes two selftest environments to use it, ad_dc and

Assuming this is stable in make test, I'll then propose we change the
default so our users can benefit.  It also appears to make 'make test'
slightly faster (build_samba: 3:10 vs 3:25). 

There is still a good place for -M standard, as while prefork is
enabled for LDAP, it isn't for NETLOGON (due to the internal RPC server
design), so some NTLM-heavy sites might prefer -M standard. 

Please review and push.

CI: https://gitlab.com/catalyst-samba/samba/pipelines/22530483


Andrew Bartlett
Andrew Bartlett
Authentication Developer, Samba Team         https://samba.org
Samba Development and Support, Catalyst IT   

-------------- next part --------------
From 96b4587e6308ffc5062b224d8aed9aa34a1c29b9 Mon Sep 17 00:00:00 2001
From: Andrew Bartlett <abartlet at samba.org>
Date: Mon, 21 May 2018 09:41:43 +1200
Subject: [PATCH] selftest: Run ad_dc_ntvfs and ad_dc in prefork mode

This consumes far less resources due to less fork()ed children.

Signed-off-by: Andrew Bartlett <abartlet at samba.org>
 selftest/target/Samba4.pm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/selftest/target/Samba4.pm b/selftest/target/Samba4.pm
index 5353779292e..706cbf05a47 100755
--- a/selftest/target/Samba4.pm
+++ b/selftest/target/Samba4.pm
@@ -2204,7 +2204,7 @@ sub setup_ad_dc_ntvfs
 	my $env = $self->provision_ad_dc_ntvfs($path);
 	if (defined $env) {
-	        if (not defined($self->check_or_start($env, "standard"))) {
+	        if (not defined($self->check_or_start($env, "prefork"))) {
 		    warn("Failed to start ad_dc_ntvfs");
 		        return undef;
@@ -2499,7 +2499,7 @@ sub setup_ad_dc
 		return undef;
-	if (not defined($self->check_or_start($env, "single"))) {
+	if (not defined($self->check_or_start($env, "prefork"))) {
 	    return undef;

More information about the samba-technical mailing list