From f9058ef1ea57b07edd2b55f1be982bfb00a78cd4 Mon Sep 17 00:00:00 2001 From: Andreas Schneider Date: Wed, 28 Jun 2017 14:49:45 +0200 Subject: [PATCH 1/2] selftest: Do *NOT* flush the complete gencache! This removes *IMPORTANT* entries from the gencache winbindd creates on startup. BUG: https://bugzilla.samba.org/show_bug.cgi?id=12868 Pair-Programmed-With: Ralph Boehme Signed-off-by: Andreas Schneider Signed-off-by: Ralph Boehme (cherry picked from commit 0a0fbaacbcbaa52ed5008e84958e2aea90cdba7c) --- selftest/target/Samba3.pm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/selftest/target/Samba3.pm b/selftest/target/Samba3.pm index 5cdbb9b9867..ee3fc8642ef 100755 --- a/selftest/target/Samba3.pm +++ b/selftest/target/Samba3.pm @@ -2248,7 +2248,7 @@ sub wait_for_start($$$$$) } my $count = 0; do { - system(Samba::bindir_path($self, "net") . " $envvars->{CONFIGURATION} cache flush"); + system(Samba::bindir_path($self, "net") . " $envvars->{CONFIGURATION} cache del IDMAP/SID2XID/S-1-5-32-545"); $ret = system("SELFTEST_WINBINDD_SOCKET_DIR=" . $envvars->{SELFTEST_WINBINDD_SOCKET_DIR} . " " . Samba::bindir_path($self, "wbinfo") . " --sid-to-gid=S-1-5-32-545"); if ($ret != 0) { sleep(2); -- 2.13.1 From 5099c26052271dc2fc9740b7070f93299aafa756 Mon Sep 17 00:00:00 2001 From: Andreas Schneider Date: Wed, 28 Jun 2017 14:58:41 +0200 Subject: [PATCH 2/2] s3:tests: Do *NOT* flush the complete gencache! This removes important entries winbindd created during startup! BUG: https://bugzilla.samba.org/show_bug.cgi?id=12868 Pair-Programmed-With: Ralph Boehme Signed-off-by: Andreas Schneider Signed-off-by: Ralph Boehme (cherry picked from commit 45da755430c6b124335c9dfeb8a252060823ac4c) --- source3/script/tests/test_wbinfo_sids2xids_int.py | 25 ++++++++++++++--------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/source3/script/tests/test_wbinfo_sids2xids_int.py b/source3/script/tests/test_wbinfo_sids2xids_int.py index 3ad3156ea93..21804452365 100755 --- a/source3/script/tests/test_wbinfo_sids2xids_int.py +++ b/source3/script/tests/test_wbinfo_sids2xids_int.py @@ -10,8 +10,13 @@ if len(sys.argv) != 3: wbinfo = sys.argv[1] netcmd = sys.argv[2] -def flush_cache(): - os.system(netcmd + " cache flush") +def flush_cache(sids=[], uids=[], gids=[]): + for sid in sids: + os.system(netcmd + (" cache del IDMAP/SID2XID/%s" % (sid))) + for uids in uids: + os.system(netcmd + (" cache del IDMAP/UID2SID/%s" % (uid))) + for gids in gids: + os.system(netcmd + (" cache del IDMAP/GID2SID/%s" % (gid))) def fill_cache(inids, idtype='gid'): for inid in inids: @@ -31,7 +36,7 @@ domsid = domsid.split(' ')[0] sids=[ domsid + '-512', 'S-1-5-32-545', domsid + '-513', 'S-1-1-0', 'S-1-3-1', 'S-1-5-1' ] -flush_cache() +flush_cache(sids=sids) sids2xids = subprocess.Popen([wbinfo, '--sids-to-unix-ids=' + ','.join(sids)], stdout=subprocess.PIPE).communicate()[0].strip() @@ -74,7 +79,7 @@ def check_singular(sids, ids, idtype='gid'): stdout=subprocess.PIPE).communicate()[0].strip() if outid != ids[i]: print "Expected %s, got %s\n" % (outid, ids[i]) - flush_cache() + flush_cache(sids=sids, uids=uids, gids=gids) sys.exit(1) i += 1 @@ -90,7 +95,7 @@ def check_multiple(sids, idtypes): if result[0] != idtypes[i]: print "Expected %s, got %s\n" % (idtypes[i], result[0]) - flush_cache() + flush_cache(sids=sids, uids=uids, gids=gids) sys.exit(1) i += 1 @@ -99,22 +104,22 @@ check_singular(sids, gids, 'gid') check_singular(sids, uids, 'uid') # second round: with empty cache -flush_cache() +flush_cache(sids=sids, gids=gids) check_singular(sids, gids, 'gid') -flush_cache() +flush_cache(sids=sids, uids=uids) check_singular(sids, uids, 'uid') # third round: with filled cache via uid-to-sid -flush_cache() +flush_cache(sids=uids, uids=uids) fill_cache(uids, 'uid') check_multiple(sids, idtypes) # fourth round: with filled cache via gid-to-sid -flush_cache() +flush_cache(sids=sids, gids=gids) fill_cache(gids, 'gid') check_multiple(sids, idtypes) # flush the cache so any incorrect mappings don't break other tests -flush_cache() +flush_cache(sids=sids, uids=uids, gids=gids) sys.exit(0) -- 2.13.1