The branch, master has been updated via 95676825adb gitlab-ci: do some basic testing on ubuntu1804-32bit via 98c1e357a7f selftest: add --default-ldb-backend option via 9ba10b97d3a selftest: samba-ktest-mit also needs $ENV{KRB5RCACHETYPE} = "none" via dce639f8bd7 CVE-2022-42898: HEIMDAL: lib/krb5: fix _krb5_get_int64 on systems where 'unsigned long' is just 32-bit via 838f6207879 third_party: Update socket_wrapper to version 1.3.5 via 6dddb268df0 lib/replace: let rep_openat2() inject O_LARGEFILE as needed via 4c2e1d6259c s3:locking: relax __SHARE_MODE_LOCK_SPACE check for 32bit platforms via 44192d5f2ca s4:kdc: make sure reset_bad_password_netlogon() stops subreq before return via 73ec7253139 s4:messaging: add irpc_bh_do_ndr_print() in order to debug irpc calls via 1414269dccf CVE-2021-20251: s4:auth: fix use after free in authsam_logon_success_accounting() via 2dcd8369fe7 bootstrap: Remove duplicate line from CentOS 8 powertools install via 3dbe8fd66ca bootstrap: Spelling fix in bootstrap from Michael Tokarev via f738842adba tests: Replace OpenSSL MD4 invocation with a python3 call from 09f8d4ac81a tests: Start testing smb2 symlink error returns
https://git.samba.org/?p=samba.git;a=shortlog;h=master - Log ----------------------------------------------------------------- commit 95676825adbb13ab2a0e24983780125218c17265 Author: Stefan Metzmacher <me...@samba.org> Date: Tue Nov 22 10:41:39 2022 +0100 gitlab-ci: do some basic testing on ubuntu1804-32bit For now we allow build warnings and only do some basic testing. We also ignore timestamp related problems, as well as some charset failures. Over time we should try to address the situation by not allowing warnings and verify if expected failures are harmless or not. But it's already much better then having no 32bit testing at all! Signed-off-by: Stefan Metzmacher <me...@samba.org> Reviewed-by: Andrew Bartlett <abart...@samba.org> Autobuild-User(master): Stefan Metzmacher <me...@samba.org> Autobuild-Date(master): Thu Nov 24 12:05:26 UTC 2022 on sn-devel-184 commit 98c1e357a7fd25b6706b4341b3407c03369501fc Author: Stefan Metzmacher <me...@samba.org> Date: Tue Nov 22 10:31:19 2022 +0100 selftest: add --default-ldb-backend option Signed-off-by: Stefan Metzmacher <me...@samba.org> Reviewed-by: Andrew Bartlett <abart...@samba.org> commit 9ba10b97d3aa50f89f01bb038d98a8086d409c3e Author: Stefan Metzmacher <me...@samba.org> Date: Fri Nov 4 10:23:07 2022 +0000 selftest: samba-ktest-mit also needs $ENV{KRB5RCACHETYPE} = "none" We need to pass --mitkrb5 to selftest.pl in all cases we use system mit kerberos not only when we also test the kdc. We can't use a replay cache in selftest verifies the stat.st_uid against getuid(). BTW: while debugging this on ubuntu 22.04 I exported KRB5_TRACE="/dev/stderr", which means we get tracing into the servers log file and into selftest_prefix/subunit for the client... Signed-off-by: Stefan Metzmacher <me...@samba.org> Reviewed-by: Andrew Bartlett <abart...@samba.org> commit dce639f8bd75ecdca261d1dc8b97ce6a8ebb4eb0 Author: Stefan Metzmacher <me...@samba.org> Date: Wed Nov 16 12:08:45 2022 +0100 CVE-2022-42898: HEIMDAL: lib/krb5: fix _krb5_get_int64 on systems where 'unsigned long' is just 32-bit BUG: https://bugzilla.samba.org/show_bug.cgi?id=15203 Signed-off-by: Stefan Metzmacher <me...@samba.org> Reviewed-by: Ralph Boehme <s...@samba.org> Reviewed-by: Volker Lendecke <v...@samba.org> Reviewed-by: Andrew Bartlett <abart...@samba.org> commit 838f62078795150bb7ec9ec1b4690a1d6a8991ae Author: Stefan Metzmacher <me...@samba.org> Date: Wed Nov 23 12:14:12 2022 +0100 third_party: Update socket_wrapper to version 1.3.5 This injects O_LARGEFILE as needed. Signed-off-by: Stefan Metzmacher <me...@samba.org> Reviewed-by: Andreas Schneider <a...@samba.org> commit 6dddb268df08fd91f8e0f189f948ad76e5805dca Author: Stefan Metzmacher <me...@samba.org> Date: Wed Nov 23 11:38:20 2022 +0100 lib/replace: let rep_openat2() inject O_LARGEFILE as needed BUG: https://bugzilla.samba.org/show_bug.cgi?id=15251 Signed-off-by: Stefan Metzmacher <me...@samba.org> Reviewed-by: Ralph Boehme <s...@samba.org> commit 4c2e1d6259c4c06fce5d1333553b611ffd8f0ef4 Author: Stefan Metzmacher <me...@samba.org> Date: Tue Nov 22 10:47:33 2022 +0100 s3:locking: relax __SHARE_MODE_LOCK_SPACE check for 32bit platforms sizeof(struct share_mode_lock) is only 28 bytes instead of 32 bytes on 32bit systems... Signed-off-by: Stefan Metzmacher <me...@samba.org> Reviewed-by: Volker Lendecke <v...@samba.org> commit 44192d5f2cae2350d7de109690799dea1a2a2e16 Author: Stefan Metzmacher <me...@samba.org> Date: Mon Nov 7 17:40:07 2022 +0100 s4:kdc: make sure reset_bad_password_netlogon() stops subreq before return We pass the stack variable 'req' to dcerpc_winbind_SendToSam_r_send(), so we need to make sure the runtime of the subreq in not longer than the stack variable. BUG: https://bugzilla.samba.org/show_bug.cgi?id=15253 Signed-off-by: Stefan Metzmacher <me...@samba.org> Reviewed-by: Andrew Bartlett <abart...@samba.org> commit 73ec7253139cf4704135ec7abfa6a669e158fddc Author: Stefan Metzmacher <me...@samba.org> Date: Mon Nov 7 17:15:32 2022 +0100 s4:messaging: add irpc_bh_do_ndr_print() in order to debug irpc calls BUG: https://bugzilla.samba.org/show_bug.cgi?id=15253 Signed-off-by: Stefan Metzmacher <me...@samba.org> Reviewed-by: Andrew Bartlett <abart...@samba.org> commit 1414269dccfd7cb831889cc92df35920b034457c Author: Stefan Metzmacher <me...@samba.org> Date: Mon Nov 7 17:21:44 2022 +0100 CVE-2021-20251: s4:auth: fix use after free in authsam_logon_success_accounting() This fixes a use after free problem introduced by commit 7b8e32efc336fb728e0c7e3dd6fbe2ed54122124, which has msg = current; which means the lifetime of the 'msg' memory is no longer in the scope of th caller. BUG: https://bugzilla.samba.org/show_bug.cgi?id=14611 BUG: https://bugzilla.samba.org/show_bug.cgi?id=15253 Signed-off-by: Stefan Metzmacher <me...@samba.org> Reviewed-by: Andrew Bartlett <abart...@samba.org> commit 2dcd8369fe7e6c7664f5e18324e85e0c4eebb2d5 Author: Joseph Sutton <josephsut...@catalyst.net.nz> Date: Mon Oct 10 13:54:08 2022 +1300 bootstrap: Remove duplicate line from CentOS 8 powertools install This was missed in 136ec5bc01e2648bae34a1158f923fbf5a86d561 when we moved to CentOS 8 stream. Signed-off-by: Joseph Sutton <josephsut...@catalyst.net.nz> Reviewed-by: Stefan Metzmacher <me...@samba.org> commit 3dbe8fd66ca7d98fd05f5ff9ed9e414b9dd1915b Author: Andrew Bartlett <abart...@samba.org> Date: Thu Oct 27 11:39:02 2022 +1300 bootstrap: Spelling fix in bootstrap from Michael Tokarev This could not previously be included as all changes require a full image rebuild as they change the SHA1 hash. Signed-off-by: Andrew Bartlett <abart...@samba.org> Reviewed-by: Stefan Metzmacher <me...@samba.org> commit f738842adba3a50a6019ff6d0360763e7540659d Author: Andrew Bartlett <abart...@samba.org> Date: Mon Oct 31 12:01:12 2022 +1300 tests: Replace OpenSSL MD4 invocation with a python3 call This will allow the test to pass on Ubuntu 22.04 which has MD4 disabled in OpenSSL by default. Signed-off-by: Andrew Bartlett <abart...@samba.org> Reviewed-by: Stefan Metzmacher <me...@samba.org> ----------------------------------------------------------------------- Summary of changes: .gitlab-ci-main.yml | 9 +- bootstrap/.gitlab-ci.yml | 5 + bootstrap/config.py | 12 ++- bootstrap/generated-dists/Vagrantfile | 7 ++ bootstrap/generated-dists/centos8s/bootstrap.sh | 3 +- .../{debian11 => ubuntu1804-32bit}/Dockerfile | 2 +- .../{ubuntu1804 => ubuntu1804-32bit}/bootstrap.sh | 0 .../{centos7 => ubuntu1804-32bit}/locale.sh | 0 .../{ubuntu1804 => ubuntu1804-32bit}/packages.yml | 0 bootstrap/sha1sum.txt | 2 +- lib/replace/replace.c | 16 +++ script/autobuild.py | 16 +++ selftest/knownfail-32bit | 117 +++++++++++++++++++++ selftest/selftest.pl | 5 +- selftest/skip-32bit | 69 ++++++++++++ selftest/target/Samba.pm | 5 +- selftest/target/Samba4.pm | 15 +-- selftest/wscript | 11 +- source3/locking/share_mode_lock.c | 2 +- source3/script/tests/test_rpcclient_pw_nt_hash.sh | 2 +- source4/auth/ntlm/auth_sam.c | 1 + source4/auth/ntlm/auth_winbind.c | 2 +- source4/auth/sam.c | 9 +- source4/auth/tests/sam.c | 24 ++--- source4/kdc/hdb-samba4.c | 17 ++- source4/kdc/mit_samba.c | 4 +- source4/lib/messaging/messaging.c | 33 ++++++ third_party/heimdal/lib/krb5/store-int.c | 2 +- third_party/socket_wrapper/socket_wrapper.c | 39 +++++-- 29 files changed, 381 insertions(+), 48 deletions(-) copy bootstrap/generated-dists/{debian11 => ubuntu1804-32bit}/Dockerfile (91%) copy bootstrap/generated-dists/{ubuntu1804 => ubuntu1804-32bit}/bootstrap.sh (100%) copy bootstrap/generated-dists/{centos7 => ubuntu1804-32bit}/locale.sh (100%) copy bootstrap/generated-dists/{ubuntu1804 => ubuntu1804-32bit}/packages.yml (100%) create mode 100644 selftest/knownfail-32bit create mode 100644 selftest/skip-32bit Changeset truncated at 500 lines: diff --git a/.gitlab-ci-main.yml b/.gitlab-ci-main.yml index f1f9908dc55..8bc33ecfc4d 100644 --- a/.gitlab-ci-main.yml +++ b/.gitlab-ci-main.yml @@ -47,7 +47,7 @@ variables: # Set this to the contents of bootstrap/sha1sum.txt # which is generated by bootstrap/template.py --render # - SAMBA_CI_CONTAINER_TAG: e3639b136a9b626936e849fb2976ebeed7e4fd3b + SAMBA_CI_CONTAINER_TAG: ae284a5a64fcff65729bf50b5b0cfdba16afc682 # # We use the ubuntu1804 image as default as # it matches what we have on sn-devel-184. @@ -59,6 +59,7 @@ variables: # We should run that for each available image # SAMBA_CI_CONTAINER_IMAGE_ubuntu1804: ubuntu1804 + SAMBA_CI_CONTAINER_IMAGE_ubuntu1804_32bit: ubuntu1804-32bit SAMBA_CI_CONTAINER_IMAGE_ubuntu2004: ubuntu2004 SAMBA_CI_CONTAINER_IMAGE_debian11: debian11 SAMBA_CI_CONTAINER_IMAGE_opensuse154: opensuse154 @@ -576,6 +577,12 @@ coverity: paths: - cov-int/*.txt +ubuntu1804-samba-32bit: + extends: .shared_template + variables: + AUTOBUILD_JOB_NAME: samba-32bit + SAMBA_CI_JOB_IMAGE: ${SAMBA_CI_CONTAINER_IMAGE_ubuntu1804_32bit} + # # We build samba-o3 on all supported distributions # diff --git a/bootstrap/.gitlab-ci.yml b/bootstrap/.gitlab-ci.yml index dff5cd2bf94..fee2861e6ea 100644 --- a/bootstrap/.gitlab-ci.yml +++ b/bootstrap/.gitlab-ci.yml @@ -91,6 +91,11 @@ ubuntu1804: extends: .build_image_template +ubuntu1804-32bit: + extends: .build_image_template + variables: + SAMBA_CI_TEST_JOB: "samba-32bit" + ubuntu2004: extends: .build_image_template diff --git a/bootstrap/config.py b/bootstrap/config.py index 048f256ef2e..bbcd45a044c 100644 --- a/bootstrap/config.py +++ b/bootstrap/config.py @@ -126,7 +126,7 @@ PKGS = [ ('apt-utils', 'yum-utils'), ('pkg-config', 'pkgconfig'), ('procps', 'procps-ng'), # required for the free cmd in tests - ('lsb-release', 'lsb-release'), # we need lsb_relase to show info + ('lsb-release', 'lsb-release'), # we need lsb_release to show info ('', 'rpcgen'), # required for test # refer: https://fedoraproject.org/wiki/Changes/SunRPCRemoval ('', 'libtirpc-devel'), # for <rpc/rpc.h> header on fedora @@ -245,8 +245,7 @@ yum install -y dnf-plugins-core yum install -y epel-release yum -v repolist all -yum config-manager --set-enabled powertools -y || \ - yum config-manager --set-enabled powertools -y +yum config-manager --set-enabled powertools -y yum update -y @@ -428,6 +427,13 @@ DEB_DISTS = { 'liburing-dev': '', # not available } }, + 'ubuntu1804-32bit': { + 'docker_image': 'registry-1.docker.io/i386/ubuntu:18.04', + 'vagrant_box': 'ubuntu/bionic32', + 'replace': { + 'liburing-dev': '', # not available + } + }, 'ubuntu2004': { 'docker_image': 'ubuntu:20.04', 'vagrant_box': 'ubuntu/focal64', diff --git a/bootstrap/generated-dists/Vagrantfile b/bootstrap/generated-dists/Vagrantfile index dad82c1e502..64ab54d2682 100644 --- a/bootstrap/generated-dists/Vagrantfile +++ b/bootstrap/generated-dists/Vagrantfile @@ -59,6 +59,13 @@ Vagrant.configure("2") do |config| v.vm.provision :shell, path: "ubuntu1804/locale.sh" end + config.vm.define "ubuntu1804-32bit" do |v| + v.vm.box = "ubuntu/bionic32" + v.vm.hostname = "ubuntu1804-32bit" + v.vm.provision :shell, path: "ubuntu1804-32bit/bootstrap.sh" + v.vm.provision :shell, path: "ubuntu1804-32bit/locale.sh" + end + config.vm.define "ubuntu2004" do |v| v.vm.box = "ubuntu/focal64" v.vm.hostname = "ubuntu2004" diff --git a/bootstrap/generated-dists/centos8s/bootstrap.sh b/bootstrap/generated-dists/centos8s/bootstrap.sh index cc3d92eaeb4..0dc04a843dd 100755 --- a/bootstrap/generated-dists/centos8s/bootstrap.sh +++ b/bootstrap/generated-dists/centos8s/bootstrap.sh @@ -12,8 +12,7 @@ yum install -y dnf-plugins-core yum install -y epel-release yum -v repolist all -yum config-manager --set-enabled powertools -y || \ - yum config-manager --set-enabled powertools -y +yum config-manager --set-enabled powertools -y yum update -y diff --git a/bootstrap/generated-dists/debian11/Dockerfile b/bootstrap/generated-dists/ubuntu1804-32bit/Dockerfile similarity index 91% copy from bootstrap/generated-dists/debian11/Dockerfile copy to bootstrap/generated-dists/ubuntu1804-32bit/Dockerfile index b7a46ca53e5..3d0c21c1434 100644 --- a/bootstrap/generated-dists/debian11/Dockerfile +++ b/bootstrap/generated-dists/ubuntu1804-32bit/Dockerfile @@ -3,7 +3,7 @@ # See also bootstrap/config.py # -FROM debian:11 +FROM registry-1.docker.io/i386/ubuntu:18.04 # pass in with --build-arg while build ARG SHA1SUM diff --git a/bootstrap/generated-dists/ubuntu1804/bootstrap.sh b/bootstrap/generated-dists/ubuntu1804-32bit/bootstrap.sh similarity index 100% copy from bootstrap/generated-dists/ubuntu1804/bootstrap.sh copy to bootstrap/generated-dists/ubuntu1804-32bit/bootstrap.sh diff --git a/bootstrap/generated-dists/centos7/locale.sh b/bootstrap/generated-dists/ubuntu1804-32bit/locale.sh similarity index 100% copy from bootstrap/generated-dists/centos7/locale.sh copy to bootstrap/generated-dists/ubuntu1804-32bit/locale.sh diff --git a/bootstrap/generated-dists/ubuntu1804/packages.yml b/bootstrap/generated-dists/ubuntu1804-32bit/packages.yml similarity index 100% copy from bootstrap/generated-dists/ubuntu1804/packages.yml copy to bootstrap/generated-dists/ubuntu1804-32bit/packages.yml diff --git a/bootstrap/sha1sum.txt b/bootstrap/sha1sum.txt index 9d2e589a876..1a76e376b75 100644 --- a/bootstrap/sha1sum.txt +++ b/bootstrap/sha1sum.txt @@ -1 +1 @@ -e3639b136a9b626936e849fb2976ebeed7e4fd3b +ae284a5a64fcff65729bf50b5b0cfdba16afc682 diff --git a/lib/replace/replace.c b/lib/replace/replace.c index cbf372e494f..68829f2a3c9 100644 --- a/lib/replace/replace.c +++ b/lib/replace/replace.c @@ -1116,6 +1116,22 @@ long rep_openat2(int dirfd, const char *pathname, struct open_how *how, size_t size) { #ifdef __NR_openat2 +#if _FILE_OFFSET_BITS == 64 && SIZE_MAX == 0xffffffffUL && defined(O_LARGEFILE) + struct open_how __how; + +#if defined(O_PATH) && ! defined(DISABLE_OPATH) + if ((how->flags & O_PATH) == 0) +#endif + { + if (sizeof(__how) == size) { + __how = *how; + + __how.flags |= O_LARGEFILE; + how = &__how; + } + } +#endif + return syscall(__NR_openat2, dirfd, pathname, diff --git a/script/autobuild.py b/script/autobuild.py index b7be54024f6..7b34c2d6b28 100755 --- a/script/autobuild.py +++ b/script/autobuild.py @@ -811,6 +811,20 @@ tasks = { ], }, + "samba-32bit": { + "sequence": [ + ("random-sleep", random_sleep(300, 900)), + ("configure", "./configure.developer --abi-check-disable --disable-warnings-as-errors" + samba_configure_params), + ("make", "make -j"), + ("nonetest", make_test(cmd='make test', TESTS="--exclude=selftest/slow-none", include_envs=["none"])), + ("quicktest", make_test(cmd='make quicktest', include_envs=["ad_dc", "ad_dc_smb1", "ad_dc_smb1_done"])), + ("ktest", make_test(cmd='make test', include_envs=["ktest"])), + ("install", "make install"), + ("check-clean-tree", CLEAN_SOURCE_TREE_CMD), + ("clean", "make clean"), + ], + }, + "samba-ctdb": { "sequence": [ ("random-sleep", random_sleep(900, 1500)), @@ -1165,6 +1179,8 @@ defaulttasks.remove("samba-addc-mit-1") defaulttasks.remove("samba-addc-mit-4a") defaulttasks.remove("samba-addc-mit-4b") +defaulttasks.remove("samba-32bit") + if os.environ.get("AUTOBUILD_SKIP_SAMBA_O3", "0") == "1": defaulttasks.remove("samba-o3") diff --git a/selftest/knownfail-32bit b/selftest/knownfail-32bit new file mode 100644 index 00000000000..2946f3e9936 --- /dev/null +++ b/selftest/knownfail-32bit @@ -0,0 +1,117 @@ +# +# [3(9)/257 at 5s] samba.tests.blackbox.ndrdump +# UNEXPECTED(failure): samba.tests.blackbox.ndrdump.samba.tests.blackbox.ndrdump.NdrDumpTests.test_ndrdump_upn_dns_info_ex(none) +# REASON: Exception: Exception: Traceback (most recent call last): +# File "/home/samba/samba.git/bin/python/samba/tests/blackbox/ndrdump.py", line 106, in test_ndrdump_upn_dns_info_ex +# self.assertEqual(actual, expected.encode('utf-8')) +# AssertionError: b'pul[904 chars] : Wed Jan 22 10:55:33 PM 1975 UTC\n [19848 chars]OK\n' != b'pul[904 chars] : Thu Sep 14 02:48:05 AM 30828 UTC\n [19850 chars]OK\n' +# UNEXPECTED(failure): samba.tests.blackbox.ndrdump.samba.tests.blackbox.ndrdump.NdrDumpTests.test_ndrdump_upn_dns_info_ex_not_supported(none) +# REASON: Exception: Exception: Traceback (most recent call last): +# File "/home/samba/samba.git/bin/python/samba/tests/blackbox/ndrdump.py", line 125, in test_ndrdump_upn_dns_info_ex_not_supported +# self.assertEqual(actual, expected.encode('utf-8')) +# AssertionError: b'pul[904 chars] : Wed Jan 22 10:55:33 PM 1975 UTC\n [19948 chars]OK\n' != b'pul[904 chars] : Thu Sep 14 02:48:05 AM 30828 UTC\n [19950 chars]OK\n' +# command: PYTHONPATH=$PYTHONPATH python3 -m samba.subunit.run $LOADLIST samba.tests.blackbox.ndrdump 2>&1 | python3 /home/samba/samba.git/selftest/filter-subunit --fail-on-empty --prefix="samba.tests.blackbox.ndrdump." --suffix="(none)" +# expanded command: PYTHONPATH=/home/samba/samba.git/bin/python python3 -m samba.subunit.run $LOADLIST samba.tests.blackbox.ndrdump 2>&1 | python3 /home/samba/samba.git/selftest/filter-subunit --fail-on-empty --prefix="samba.tests.blackbox.ndrdump." --suffix="(none)" +# ERROR: Testsuite[samba.tests.blackbox.ndrdump] +# REASON: Exit code was 1 +^samba.tests.blackbox.ndrdump.samba.tests.blackbox.ndrdump.NdrDumpTests.test_ndrdump_upn_dns_info_ex.none +^samba.tests.blackbox.ndrdump.samba.tests.blackbox.ndrdump.NdrDumpTests.test_ndrdump_upn_dns_info_ex_not_supported.none +# +# [25(244)/261 at 15s] samba.tests.s3passdb +# ... +# REASON: Exception: Exception: Traceback (most recent call last): +# File "/home/samba/samba.git/bin/python/samba/tests/s3passdb.py", line 92, in test_getuser +# self.assertEqual(9223372036854775807, user.kickoff_time) +# AssertionError: 9223372036854775807 != 2147483647 +^samba.tests.s3passdb.samba.tests.s3passdb.PassdbTestCase.test_getuser.none +# +# [53(610)/261 at 4m22s, 1 errors] samba.tests.glue +# UNEXPECTED(failure): samba.tests.glue.samba.tests.glue.GlueTests.test_nttime2float(none) +# REASON: Exception: Exception: Traceback (most recent call last): +# File "/home/samba/samba.git/bin/python/samba/tests/glue.py", line 54, in test_nttime2float +# self.assertEqual(_glue.nttime2float(1), -11644473600.0) +# AssertionError: 1240428288.0 != -11644473600.0 +^samba.tests.glue.samba.tests.glue.GlueTests.test_nttime2float.none +# +# [95(849)/261 at 5m19s, 2 errors] samba3.smbtorture_s3.LOCAL-MEMCACHE +# UNEXPECTED(failure): samba3.smbtorture_s3.LOCAL-MEMCACHE.smbtorture(none) +# REASON: Exception: Exception: using seed 1669051619 +# host=foo share=bar user= myname=dc5 +# Running LOCAL-MEMCACHE +# Did not find k4, should not have been purged +# TEST LOCAL-MEMCACHE FAILED! +# LOCAL-MEMCACHE took 3.3e-05 secs +# command: /home/samba/samba.git/source3/script/tests/test_smbtorture_s3.sh LOCAL-MEMCACHE //foo/bar "" "" /home/samba/samba.git/bin/smbtorture3 2>&1 | python3 /home/samba/samba.git/selftest/filter-subunit --fail-on-empty --prefix="samba3.smbtorture_s3.LOCAL-MEMCACHE." --suffix="(none)" +# expanded command: /home/samba/samba.git/source3/script/tests/test_smbtorture_s3.sh LOCAL-MEMCACHE //foo/bar "" "" /home/samba/samba.git/bin/smbtorture3 2>&1 | python3 /home/samba/samba.git/selftest/filter-subunit --fail-on-empty --prefix="samba3.smbtorture_s3.LOCAL-MEMCACHE." --suffix="(none)" +# ERROR: Testsuite[samba3.smbtorture_s3.LOCAL-MEMCACHE] +# REASON: Exit code was 1 +^samba3.smbtorture_s3.LOCAL-MEMCACHE.smbtorture.none +# +# [152(1033)/261 at 5m54s, 3 errors] samba4.local.time +# UNEXPECTED(failure): samba4.local.time.normalize_timespec(none) +# REASON: Exception: Exception: ../../lib/util/tests/time.c:129: ts.tv_sec was -2 (0xFFFFFFFE), expected 2 (0x2): mismatch in tv_sec +# command: /home/samba/samba.git/bin/smbtorture $LOADLIST --configfile=$SMB_CONF_PATH --option='fss:sequence timeout=1' --maximum-runtime=$SELFTEST_MAXTIME --based +# ir=$SELFTEST_TMPDIR --format=subunit --option=torture:progress=no --target=samba4 ncalrpc:localhost local.time 2>&1 | python3 /home/samba/samba.git/selftest/filte +# r-subunit --fail-on-empty --prefix="samba4.local.time." --suffix="(none)" +# expanded command: /home/samba/samba.git/bin/smbtorture $LOADLIST --configfile=/home/samba/samba.git/st/client/client.conf --option='fss:sequence timeout=1' --max +# imum-runtime=1200 --basedir=/home/samba/samba.git/st/tmp --format=subunit --option=torture:progress=no --target=samba4 ncalrpc:localhost local.time 2>&1 | python3 +# /home/samba/samba.git/selftest/filter-subunit --fail-on-empty --prefix="samba4.local.time." --suffix="(none)" +# ERROR: Testsuite[samba4.local.time] +# REASON: Exit code was 1 +^samba4.local.time.normalize_timespec.none + + +# +# [171(1386)/261 at 6m24s, 4 errors] samba4.local.charset +# UNEXPECTED(failure): samba4.local.charset.strcasecmp(none) +# REASON: Exception: Exception: ../../lib/util/charset/tests/charset.c:56: strcasecmp("foo", "bar") was 1 (0x1), expected 4 (0x4): different strings both lower +# UNEXPECTED(failure): samba4.local.charset.strcasecmp_m(none) +# REASON: Exception: Exception: ../../lib/util/charset/tests/charset.c:85: strcasecmp_m(file_iso8859_1, file_utf8) was 1 (0x1), expected 38 (0x26): file.{accented e} +# should differ +# UNEXPECTED(failure): samba4.local.charset.strncasecmp(none) +# REASON: Exception: Exception: ../../lib/util/charset/tests/charset.c:132: strncasecmp("foo", "bar", 3) was 1 (0x1), expected 4 (0x4): different strings both lower +# UNEXPECTED(failure): samba4.local.charset.strncasecmp_m(none) +# REASON: Exception: Exception: ../../lib/util/charset/tests/charset.c:167: strncasecmp_m(file_iso8859_1, file_utf8, 6) was 1 (0x1), expected 38 (0x26): file.{accent +# ed e} should differ +# command: /home/samba/samba.git/bin/smbtorture $LOADLIST --configfile=$SMB_CONF_PATH --option='fss:sequence timeout=1' --maximum-runtime=$SELFTEST_MAXTIME --based +# ir=$SELFTEST_TMPDIR --format=subunit --option=torture:progress=no --target=samba4 ncalrpc:localhost local.charset 2>&1 | python3 /home/samba/samba.git/selftest/fi +# lter-subunit --fail-on-empty --prefix="samba4.local.charset." --suffix="(none)" +# expanded command: /home/samba/samba.git/bin/smbtorture $LOADLIST --configfile=/home/samba/samba.git/st/client/client.conf --option='fss:sequence timeout=1' --max +# imum-runtime=1200 --basedir=/home/samba/samba.git/st/tmp --format=subunit --option=torture:progress=no --target=samba4 ncalrpc:localhost local.charset 2>&1 | pyth +# on3 /home/samba/samba.git/selftest/filter-subunit --fail-on-empty --prefix="samba4.local.charset." --suffix="(none)" +# ERROR: Testsuite[samba4.local.charset] +# REASON: Exit code was 1 +^samba4.local.charset.strcasecmp.none +^samba4.local.charset.strcasecmp_m.none +^samba4.local.charset.strncasecmp.none +^samba4.local.charset.strncasecmp_m.none +# +# [229(2702)/261 at 8m44s, 5 errors] samba.tests.samba_tool.provision_lmdb_size +# UNEXPECTED(failure): samba.tests.samba_tool.provision_lmdb_size.samba.tests.samba_tool.provision_lmdb_size.ProvisionLmdbSizeTestCase.test_134217728b(none) +# REASON: Exception: Exception: Traceback (most recent call last): +# File "/home/samba/samba.git/bin/python/samba/tests/samba_tool/provision_lmdb_size.py", line 104, in test_134217728b +# self.assertEqual(0, result) +# AssertionError: 0 != 255 +# UNEXPECTED(failure): samba.tests.samba_tool.provision_lmdb_size.samba.tests.samba_tool.provision_lmdb_size.ProvisionLmdbSizeTestCase.test_1Gb(none) +# REASON: Exception: Exception: Traceback (most recent call last): +# File "/home/samba/samba.git/bin/python/samba/tests/samba_tool/provision_lmdb_size.py", line 97, in test_1Gb +# self.assertEqual(0, result) +# AssertionError: 0 != 255 +# UNEXPECTED(failure): samba.tests.samba_tool.provision_lmdb_size.samba.tests.samba_tool.provision_lmdb_size.ProvisionLmdbSizeTestCase.test_64Mb(none) +# REASON: Exception: Exception: Traceback (most recent call last): +# File "/home/samba/samba.git/bin/python/samba/tests/samba_tool/provision_lmdb_size.py", line 92, in test_64Mb +# self.assertEqual(0, result) +# AssertionError: 0 != 255 +# UNEXPECTED(failure): samba.tests.samba_tool.provision_lmdb_size.samba.tests.samba_tool.provision_lmdb_size.ProvisionLmdbSizeTestCase.test_default(none) +# REASON: Exception: Exception: Traceback (most recent call last): +# File "/home/samba/samba.git/bin/python/samba/tests/samba_tool/provision_lmdb_size.py", line 87, in test_default +# self.assertEqual(0, result) +# AssertionError: 0 != 255 +# command: PYTHONPATH=$PYTHONPATH python3 -m samba.subunit.run $LOADLIST samba.tests.samba_tool.provision_lmdb_size 2>&1 | python3 /home/samba/samba.git/selftest/filter-subunit --fail-on-empty --prefix="samba.tests.samba_tool.provision_lmdb_size." --suffix="(none)" +# expanded command: PYTHONPATH=/home/samba/samba.git/bin/python python3 -m samba.subunit.run $LOADLIST samba.tests.samba_tool.provision_lmdb_size 2>&1 | python3 /home/samba/samba.git/selftest/filter-subunit --fail-on-empty --prefix="samba.tests.samba_tool.provision_lmdb_size." --suffix="(none)" +# ERROR: Testsuite[samba.tests.samba_tool.provision_lmdb_size] +# REASON: Exit code was 1 +^samba.tests.samba_tool.provision_lmdb_size.samba.tests.samba_tool.provision_lmdb_size.ProvisionLmdbSizeTestCase.test_134217728b.none +^samba.tests.samba_tool.provision_lmdb_size.samba.tests.samba_tool.provision_lmdb_size.ProvisionLmdbSizeTestCase.test_1Gb.none +^samba.tests.samba_tool.provision_lmdb_size.samba.tests.samba_tool.provision_lmdb_size.ProvisionLmdbSizeTestCase.test_64Mb.none +^samba.tests.samba_tool.provision_lmdb_size.samba.tests.samba_tool.provision_lmdb_size.ProvisionLmdbSizeTestCase.test_default.none diff --git a/selftest/selftest.pl b/selftest/selftest.pl index 11f8e92e84e..230c49124b4 100755 --- a/selftest/selftest.pl +++ b/selftest/selftest.pl @@ -55,6 +55,7 @@ my @opt_include_env = (); my $opt_testenv = 0; my $opt_list = 0; my $opt_mitkrb5 = 0; +my $opt_default_ldb_backend = "mdb"; my $opt_resetup_env = undef; my $opt_load_list = undef; my $opt_libnss_wrapper_so_path = ""; @@ -240,6 +241,7 @@ my $result = GetOptions ( 'testenv' => \$opt_testenv, 'list' => \$opt_list, 'mitkrb5' => \$opt_mitkrb5, + 'default-ldb-backend=s' => \$opt_default_ldb_backend, 'resetup-environment' => \$opt_resetup_env, 'testlist=s' => \@testlists, 'random-order' => \$opt_random_order, @@ -460,7 +462,8 @@ if (defined($ENV{SMBD_MAXTIME}) and $ENV{SMBD_MAXTIME} ne "") { $target = new Samba($bindir, $srcdir, $server_maxtime, $opt_socket_wrapper_pcap, - $opt_socket_wrapper_keep_pcap); + $opt_socket_wrapper_keep_pcap, + $opt_default_ldb_backend); unless ($opt_list) { if ($opt_target eq "samba") { $testenv_default = "ad_dc"; diff --git a/selftest/skip-32bit b/selftest/skip-32bit new file mode 100644 index 00000000000..764bafa012d --- /dev/null +++ b/selftest/skip-32bit @@ -0,0 +1,69 @@ +# +# [231(2711)/261 at 9m10s, 6 errors] samba.tests.samba_upgradedns_lmdb +# UNEXPECTED(error): samba.tests.samba_upgradedns_lmdb.samba.tests.samba_upgradedns_lmdb.UpgradeDnsLmdbTestCase.test_lmdb_lock_files_linked_on_upgrade_to_bind9_dlz(none) +# REASON: Exception: Exception: Traceback (most recent call last): +# File "/home/samba/samba.git/bin/python/samba/tests/samba_upgradedns_lmdb.py", line 69, in test_lmdb_lock_files_linked_on_upgrade_to_bind9_dlz +# for filename in os.listdir(directory): +# FileNotFoundError: [Errno 2] No such file or directory: '/home/samba/samba.git/st/tmp/tmpku4ew0tv/samba/bind-dns/dns/sam.ldb.d' +# command: PYTHONPATH=$PYTHONPATH python3 -m samba.subunit.run $LOADLIST samba.tests.samba_upgradedns_lmdb 2>&1 | python3 /home/samba/samba.git/selftest/filter-subunit --fail-on-empty --prefix="samba.tests.samba_upgradedns_lmdb." --suffix="(none)" +# expanded command: PYTHONPATH=/home/samba/samba.git/bin/python python3 -m samba.subunit.run $LOADLIST samba.tests.samba_upgradedns_lmdb 2>&1 | python3 /home/samba/samba.git/selftest/filter-subunit --fail-on-empty --prefix="samba.tests.samba_upgradedns_lmdb." --suffix="(none)" +# ERROR: Testsuite[samba.tests.samba_upgradedns_lmdb] +# REASON: Exit code was 1 +^samba.tests.samba_upgradedns_lmdb +# +# [235(2761)/261 at 9m14s, 7 errors] samba.tests.blackbox.downgradedatabase +# UNEXPECTED(error): samba.tests.blackbox.downgradedatabase.samba.tests.blackbox.downgradedatabase.DowngradeTestMDB.test_undo_guid(none) +# REASON: Exception: Exception: Traceback (most recent call last): +# File "bin/python/samba/tests/blackbox/downgradedatabase.py", line 43, in setUp +# self.check_run(prov_cmd, "Provisioning for downgrade") +# File "bin/python/samba/tests/__init__.py", line 421, in check_run +# self.check_exit_code(line, 0, msg=msg) +# File "bin/python/samba/tests/__init__.py", line 439, in check_exit_code +# msg) +# Traceback (most recent call last): +# File "bin/python/samba/tests/__init__.py", line 278, in _remove_tempdir +# self.assertEqual([], os.listdir(self.tempdir)) +# AssertionError: Lists differ: [] != ['private', 'bind-dns', 'etc', 'state'] +# +# Second list contains 4 additional elements. +# First extra element 0: +# 'private' +# +# - [] +# + ['private', 'bind-dns', 'etc', 'state'] +# command: python3 /home/samba/samba.git/source4/scripting/bin/subunitrun $LOADLIST samba.tests.blackbox.downgradedatabase 2>&1 | python3 /home/samba/samba.git/selftest/filter-subunit --fail-on-empty --prefix="samba.tests.blackbox.downgradedatabase." --suffix="(none)" +# expanded command: python3 /home/samba/samba.git/source4/scripting/bin/subunitrun $LOADLIST samba.tests.blackbox.downgradedatabase 2>&1 | python3 /home/samba/samba.git/selftest/filter-subunit --fail-on-empty --prefix="samba.tests.blackbox.downgradedatabase." --suffix="(none)" +# ERROR: Testsuite[samba.tests.blackbox.downgradedatabase] +# REASON: Exit code was 1 +^samba.tests.blackbox.downgradedatabase +# +# [236(2763)/261 at 9m46s, 8 errors] samba4.ldap.index.python +# Unable to find backend for 'mdb:///home/samba/samba.git/st/tmp/tmpshxaw8jv/indexedcomptest.ldb' - do you need to set LDB_MODULES_PATH? +# UNEXPECTED(error): samba4.ldap.index.python.__main__.LdbLMDBIndexedComparisonExpressions.test_comparison_expression(none) +# REASON: Exception: Exception: Traceback (most recent call last): +# File "/home/samba/samba.git/lib/ldb-samba/tests/index.py", line 186, in setUp +# super(LdbLMDBIndexedComparisonExpressions, self).setUp() +# File "/home/samba/samba.git/lib/ldb-samba/tests/index.py", line 87, in setUp +# self.l = _ldb.Ldb(self.url(), options=self.options()) +# _ldb.LdbError: (80, None) +# Unable to find backend for 'mdb:///home/samba/samba.git/st/tmp/tmpzyl07twx/indexedcomptest.ldb' - do you need to set LDB_MODULES_PATH? +# UNEXPECTED(error): samba4.ldap.index.python.__main__.LdbLMDBIndexedComparisonExpressions.test_comparison_expression_duplicates(none) +# REASON: Exception: Exception: Traceback (most recent call last): +# File "/home/samba/samba.git/lib/ldb-samba/tests/index.py", line 186, in setUp +# super(LdbLMDBIndexedComparisonExpressions, self).setUp() +# File "/home/samba/samba.git/lib/ldb-samba/tests/index.py", line 87, in setUp +# self.l = _ldb.Ldb(self.url(), options=self.options()) +# _ldb.LdbError: (80, None) +# command: python3 /home/samba/samba.git/lib/ldb-samba/tests/index.py 2>&1 | python3 /home/samba/samba.git/selftest/filter-subunit --fail-on-empty --prefix="samba4.ldap.index.python." --suffix="(none)" +# expanded command: python3 /home/samba/samba.git/lib/ldb-samba/tests/index.py 2>&1 | python3 /home/samba/samba.git/selftest/filter-subunit --fail-on-empty --prefix="samba4.ldap.index.python." --suffix="(none)" +# ERROR: Testsuite[samba4.ldap.index.python] +# REASON: Exit code was 1 +^samba4.ldap.index.python +# +# [247(2834)/261 at 11m47s, 9 errors] samba4.dsdb.samdb.ldb_modules.encrypted_secrets.mdb +# sh: 1: /home/samba/samba.git/bin/test_encrypted_secrets_mdb: not found +# command: /home/samba/samba.git/bin/test_encrypted_secrets_mdb 2>&1 | python3 /home/samba/samba.git/selftest/filter-subunit --fail-on-empty --prefix="samba4.dsdb.samdb.ldb_modules.encrypted_secrets.mdb." --suffix="(none)" +# expanded command: /home/samba/samba.git/bin/test_encrypted_secrets_mdb 2>&1 | python3 /home/samba/samba.git/selftest/filter-subunit --fail-on-empty --prefix="samba4.dsdb.samdb.ldb_modules.encrypted_secrets.mdb." --suffix="(none)" +# ERROR: Testsuite[samba4.dsdb.samdb.ldb_modules.encrypted_secrets.mdb] +# REASON: Exit code was 1 +^samba4.dsdb.samdb.ldb_modules.encrypted_secrets.mdb diff --git a/selftest/target/Samba.pm b/selftest/target/Samba.pm index 2131e4a39ca..4f0f29df5cf 100644 --- a/selftest/target/Samba.pm +++ b/selftest/target/Samba.pm @@ -15,14 +15,15 @@ use IO::Poll qw(POLLIN); sub new($$$$$) { my ($classname, $bindir, $srcdir, $server_maxtime, - $opt_socket_wrapper_pcap, $opt_socket_wrapper_keep_pcap) = @_; + $opt_socket_wrapper_pcap, $opt_socket_wrapper_keep_pcap, + $default_ldb_backend) = @_; my $self = { opt_socket_wrapper_pcap => $opt_socket_wrapper_pcap, opt_socket_wrapper_keep_pcap => $opt_socket_wrapper_keep_pcap, }; $self->{samba3} = new Samba3($self, $bindir, $srcdir, $server_maxtime); - $self->{samba4} = new Samba4($self, $bindir, $srcdir, $server_maxtime); + $self->{samba4} = new Samba4($self, $bindir, $srcdir, $server_maxtime, $default_ldb_backend); bless $self; return $self; } diff --git a/selftest/target/Samba4.pm b/selftest/target/Samba4.pm index dcf00e85e9c..f4a02c6133f 100755 --- a/selftest/target/Samba4.pm +++ b/selftest/target/Samba4.pm @@ -19,7 +19,7 @@ use target::Samba3; use Archive::Tar; sub new($$$$$) { - my ($classname, $SambaCtx, $bindir, $srcdir, $server_maxtime) = @_; + my ($classname, $SambaCtx, $bindir, $srcdir, $server_maxtime, $default_ldb_backend) = @_; my $self = { vars => {}, @@ -27,7 +27,8 @@ sub new($$$$$) { bindir => $bindir, srcdir => $srcdir, server_maxtime => $server_maxtime, - target3 => new Samba3($SambaCtx, $bindir, $srcdir, $server_maxtime) + target3 => new Samba3($SambaCtx, $bindir, $srcdir, $server_maxtime), + default_ldb_backend => $default_ldb_backend, }; bless $self; return $self; @@ -1584,7 +1585,7 @@ sub provision_vampire_dc($$$) $cmd .= "$samba_tool domain join $ret->{CONFIGURATION} $dcvars->{REALM} DC --realm=$dcvars->{REALM}"; $cmd .= " -U$dcvars->{DC_USERNAME}\%$dcvars->{DC_PASSWORD} --domain-critical-only"; $cmd .= " --machinepass=machine$ret->{PASSWORD}"; - $cmd .= " --backend-store=mdb"; + $cmd .= " --backend-store=$self->{default_ldb_backend}"; unless (system($cmd) == 0) { warn("Join failed\n$cmd"); @@ -2019,7 +2020,7 @@ sub provision_ad_dc($$$$$$$) copy = print1 "; -- Samba Shared Repository