The branch, v4-10-test has been updated via d6243acb3ac ctdb-common: Fix memory leak in run_proc via 0d4280abf98 ctdb-common: Fix memory leak via 32065a0772e ctdb-recoverd: Fix memory leak via 417a4d2c3cc vfs_ceph: fix cephwrap_flistxattr() debug message via 4c02823ab51 s3:smbspool: Fix regression printing with Kerberos credentials via 5c9489ba557 s3: SMB1: Don't allow recvfile on stream fsp's. via 198cb5b0550 s3:smbd: don't use recvfile on streams via f7ffa7a007f s3:utils: If share is NULL in smbcacls, don't print it via b0e862a64a7 s3:utils: If share is NULL in smbcquotas, don't print it via 601cb1d5726 s3:winbindd: Do not free db_path in idmap_tdb2 before we printed it via 5b6adbb0f05 ctdb:common: Do not print NULL if we don't get a sockpath via b578a2df99f s4:torture: Do not free full_name before we printed it via 4113054a7ce lib:torture: Fix string comparison macros where we directly pass NULL via a81f78ce4e4 s4:torture: Do not print NULL strings we just checked before via b522ed38de1 s4:ntvfs: Do not free eadb before we printed an error via 405872948fa s3:rpc_server: Do not free the tdbname before we printed it via 4f0a4fac3de s4:auth: Fix debug statement in gensec_gssapi via 8542379bde8 s3 rpc_client: Fix Asan stack use after scope via 8a320aad332 ctdb-daemon: Never use 0 as a client ID via 6aa0fd8b7cd s4 lib socket: Ensure address string owned by parent struct via 385a36b7e7c nsswitch pam_winbind: Fix Asan use after free via 52ba5136f2f ctdb-tests: Fix logic error in simple ctdb reloadips test via 63a59de4f0f ctdb-tests: Make ctdb reloadips tests more reliable via efb35a1a695 ctdb-tests: Capture output in $out on failure as well via 65bf14afd83 ctdb-tests: Remove old socket wrapper state directory during setup via 33739d55569 ctdb-tests: Actually restart if cluster doesn't become healthy via 0cdf5c6b5ce ctdb-tests: Don't clean up test var directory in autotest target via 3582e306606 ctdb-tests: Fix usage message via b8cf1594a73 ctdb-tests: Wait to allow database attach/detach to take effect via 221da170256 ctdb-tests: Avoid bulk output in $out, prefer $outfile via 2044466dd3e ctdb-tests: Make try_command_on_node less error-prone via 8bb1726f6a7 ctdb-tests: Change sanity_check_output() to internally use $out via c054f19fb37 ctdb-tests: Extend test to cover ctdb rddumpmemory via 8c9abb2749f ctdb-tools: Fix ctdb dumpmemory to avoid printing trailing NUL via 42b32da4160 smbd: implement SMB_FILE_NORMALIZED_NAME_INFORMATION handling via 5308f042e67 s4:torture/smb2: add smb2.getinfo.normalized test via 3205d032781 s4:libcli/raw: add RAW_FILEINFO_NORMALIZED_NAME_INFORMATION support via 07382f0765a smbd: allow case insensitive opens of named streams via 649dd7bce86 s4:torture/smb2: add smb2.stream.names3 test via f4a603a9f32 s3: modules: ceph: use current working directory instead of share path via de505618e60 s3:debug: enable logging for early startup failures via c584a4b4dfb s3:debug: adjust indention via c7f25b25d3a s3:debug: use struct initializer via 1fa6a46fa53 winbind: Fix overlapping id ranges via 24d39db5c37 selftest: Add trusted domain tests for idmap_ad via 3a46730f12e selftest: Pass trusted domain information to idmap_ad test via c3c2f3707a0 selftest: Add idmap configuration for trusted domain for idmap_ad via 79c04524c38 selftest: Make trusted domain information available for idmap_ad environment via 28b5ff2ccf7 selftest: Use fl2008r2dc for ad_member_idmap_ad via 38746ec0a3e selftest: Add gid-to-sid lookup to idmap_ad test via 9c167fa8628 lib util debug: Increase format buffer to 4KiB via 2cc3b4c42c5 lib: Initialize getline() arguments via d1962a5f527 pytests/dns: use 2.6 compatible syntax from 893ac2a6b20 netcmd: Fix passwordsettings --max-pwd-age command
https://git.samba.org/?p=samba.git;a=shortlog;h=v4-10-test - Log ----------------------------------------------------------------- commit d6243acb3ac386c91e66ff9a2957b87c3fe7a6a1 Author: Amitay Isaacs <ami...@gmail.com> Date: Mon May 13 17:07:59 2019 +1000 ctdb-common: Fix memory leak in run_proc BUG: https://bugzilla.samba.org/show_bug.cgi?id=13943 Signed-off-by: Amitay Isaacs <ami...@gmail.com> Reviewed-by: Martin Schwenke <mar...@meltin.net> Autobuild-User(master): Amitay Isaacs <ami...@samba.org> Autobuild-Date(master): Tue May 14 08:59:03 UTC 2019 on sn-devel-184 (cherry picked from commit b1f4c86eea022999d5439e4a6ef3494fe41479b6) Autobuild-User(v4-10-test): Karolin Seeger <ksee...@samba.org> Autobuild-Date(v4-10-test): Thu May 16 13:56:00 UTC 2019 on sn-devel-144 commit 0d4280abf98cb023d21edbf4e069f551931cca1f Author: Martin Schwenke <mar...@meltin.net> Date: Sat May 11 17:33:57 2019 +1000 ctdb-common: Fix memory leak BUG: https://bugzilla.samba.org/show_bug.cgi?id=13943 Signed-off-by: Martin Schwenke <mar...@meltin.net> Reviewed-by: Amitay Isaacs <ami...@gmail.com> (cherry picked from commit 30bc6e2529cdd444d4ec7902844c3a6fb0858090) commit 32065a0772ef8c43676d39b43fefd1accf47decb Author: Martin Schwenke <mar...@meltin.net> Date: Sat May 11 14:24:24 2019 +1000 ctdb-recoverd: Fix memory leak state is always freed before exiting this function, so allocate fde off it instead of long-lived ctdb context. BUG: https://bugzilla.samba.org/show_bug.cgi?id=13943 Signed-off-by: Martin Schwenke <mar...@meltin.net> Reviewed-by: Amitay Isaacs <ami...@gmail.com> (cherry picked from commit 6a2941e2a9fd6ab2d5b8dbac042b61a7b1b0b914) commit 417a4d2c3cc7b007036b1936601ec71d55f7f9e8 Author: David Disseldorp <dd...@samba.org> Date: Fri May 10 13:18:49 2019 +0200 vfs_ceph: fix cephwrap_flistxattr() debug message The @list buffer may be uninitialised prior to ceph_flistxattr() invocation, so only log the address. Bug: https://bugzilla.samba.org/show_bug.cgi?id=13940 Signed-off-by: David Disseldorp <dd...@samba.org> Reviewed-by: Andreas Schneider <a...@samba.org> Autobuild-User(master): David Disseldorp <dd...@samba.org> Autobuild-Date(master): Fri May 10 12:59:05 UTC 2019 on sn-devel-184 (cherry picked from commit 21dc6f8e8d82f84e4afda355a48fbbd39c7fe800) commit 4c02823ab51f99932aadc65244372f5e9b495093 Author: Andreas Schneider <a...@samba.org> Date: Thu May 9 16:18:51 2019 +0200 s3:smbspool: Fix regression printing with Kerberos credentials This is a regression which has been introduced with Samba 4.8. BUG: https://bugzilla.samba.org/show_bug.cgi?id=13939 Signed-off-by: Andreas Schneider <a...@samba.org> Reviewed-by: Guenther Deschner <g...@samba.org> (cherry picked from commit fd4b1f4f16aee3e3c9a2cb449655edfed171963a) commit 5c9489ba557d2ee0b8e40a4dec5e10982126d5dd Author: Jeremy Allison <j...@samba.org> Date: Thu May 9 12:53:11 2019 -0700 s3: SMB1: Don't allow recvfile on stream fsp's. BUG: https://bugzilla.samba.org/show_bug.cgi?id=13938 Signed-off-by: Jeremy Allison <j...@samba.org> Reviewed-by: Ralph Boehme <s...@samba.org> Autobuild-User(master): Jeremy Allison <j...@samba.org> Autobuild-Date(master): Fri May 10 01:14:02 UTC 2019 on sn-devel-184 (cherry picked from commit 667db8e8c7836c750085729f5062807669cbb204) commit 198cb5b0550cc7d9c8b2be216f5b695aa1a686f8 Author: Ralph Boehme <s...@samba.org> Date: Thu Apr 25 10:57:58 2019 +0200 s3:smbd: don't use recvfile on streams Bug: https://bugzilla.samba.org/show_bug.cgi?id=13938 Signed-off-by: Ralph Boehme <s...@samba.org> Reviewed-by: Jeremy Allison <j...@samba.org> Autobuild-User(master): Ralph Böhme <s...@samba.org> Autobuild-Date(master): Thu May 9 20:43:53 UTC 2019 on sn-devel-184 (cherry picked from commit 219bc189472acff24410009ee16a409e0aaf8eef) commit f7ffa7a007f462ee240fb3cec5398264d6c140a5 Author: Andreas Schneider <a...@samba.org> Date: Wed May 8 17:12:12 2019 +0200 s3:utils: If share is NULL in smbcacls, don't print it Found by GCC 9. BUG: https://bugzilla.samba.org/show_bug.cgi?id=13937 Signed-off-by: Andreas Schneider <a...@samba.org> Reviewed-by: Jeremy Allison <j...@samba.org> (cherry picked from commit 2b957bde5a2f0f670ee0c8acde6edae1f4aaf253) commit b0e862a64a76db0c1865e280367898f6fd31e938 Author: Andreas Schneider <a...@samba.org> Date: Wed May 8 17:11:13 2019 +0200 s3:utils: If share is NULL in smbcquotas, don't print it Found by GCC 9. BUG: https://bugzilla.samba.org/show_bug.cgi?id=13937 Signed-off-by: Andreas Schneider <a...@samba.org> Reviewed-by: Jeremy Allison <j...@samba.org> (cherry picked from commit 3653dc7013518d90e6deb08a1f21d7472dc86675) commit 601cb1d57266abd62da921f97f7aa3c1d80055f2 Author: Andreas Schneider <a...@samba.org> Date: Wed May 8 17:05:58 2019 +0200 s3:winbindd: Do not free db_path in idmap_tdb2 before we printed it Found by GCC 9. BUG: https://bugzilla.samba.org/show_bug.cgi?id=13937 Signed-off-by: Andreas Schneider <a...@samba.org> Reviewed-by: Jeremy Allison <j...@samba.org> (cherry picked from commit e333425e0ff6be5691b74a920610b508e7d26892) commit 5b6adbb0f056061fd2348004a286c8220182214a Author: Andreas Schneider <a...@samba.org> Date: Wed May 8 17:03:54 2019 +0200 ctdb:common: Do not print NULL if we don't get a sockpath sock_socket_start_recv() might not fill sockpath if we return early. Found by GCC 9. BUG: https://bugzilla.samba.org/show_bug.cgi?id=13937 Signed-off-by: Andreas Schneider <a...@samba.org> Reviewed-by: Jeremy Allison <j...@samba.org> (cherry picked from commit 830cb7e67568de5f3ce359cb6af3be8ab545c824) commit b578a2df99fa29b8331446658d3be8b65baa2ddc Author: Andreas Schneider <a...@samba.org> Date: Wed May 8 16:58:07 2019 +0200 s4:torture: Do not free full_name before we printed it Found by GCC 9. BUG: https://bugzilla.samba.org/show_bug.cgi?id=13937 Signed-off-by: Andreas Schneider <a...@samba.org> Reviewed-by: Jeremy Allison <j...@samba.org> (cherry picked from commit 46f036d3231bc99cf37c7cabf82757d3c28c5cff) commit 4113054a7ceacde8648ea210791ea8cc3effacbd Author: Andreas Schneider <a...@samba.org> Date: Wed May 8 16:54:30 2019 +0200 lib:torture: Fix string comparison macros where we directly pass NULL See e.g. lib/util/tests/strlist.c +177 Found by GCC 9. BUG: https://bugzilla.samba.org/show_bug.cgi?id=13937 Signed-off-by: Andreas Schneider <a...@samba.org> Reviewed-by: Jeremy Allison <j...@samba.org> (cherry picked from commit a8f773e326d6bdfc1c9eb87a74c00108f6620c56) commit a81f78ce4e47710ddbb04eadd4ab6e5052037b8f Author: Andreas Schneider <a...@samba.org> Date: Wed May 8 16:51:20 2019 +0200 s4:torture: Do not print NULL strings we just checked before Found by GCC 9. BUG: https://bugzilla.samba.org/show_bug.cgi?id=13937 Signed-off-by: Andreas Schneider <a...@samba.org> Reviewed-by: Jeremy Allison <j...@samba.org> (cherry picked from commit be72dfbc8edc53ed191dc01668a53cafb5cd785d) commit b522ed38de14a8b544a49396c8f8d4b2a6a62a46 Author: Andreas Schneider <a...@samba.org> Date: Wed May 8 16:32:45 2019 +0200 s4:ntvfs: Do not free eadb before we printed an error Found by GCC 9. BUG: https://bugzilla.samba.org/show_bug.cgi?id=13937 Signed-off-by: Andreas Schneider <a...@samba.org> Reviewed-by: Jeremy Allison <j...@samba.org> (cherry picked from commit 6da032df5450ef72f8608a19b3b5cc6e9185cd6e) commit 405872948fa3cbac491ecf184e7ca69f34ae0e4e Author: Andreas Schneider <a...@samba.org> Date: Wed May 8 16:31:10 2019 +0200 s3:rpc_server: Do not free the tdbname before we printed it Found by GCC 9. BUG: https://bugzilla.samba.org/show_bug.cgi?id=13937 Signed-off-by: Andreas Schneider <a...@samba.org> Reviewed-by: Jeremy Allison <j...@samba.org> (cherry picked from commit 790d7e34cbe4e190d6acdd24696efe53944cd4a6) commit 4f0a4fac3de770cc303abdfe48e44f1d42ea6858 Author: Andreas Schneider <a...@samba.org> Date: Wed May 8 16:27:57 2019 +0200 s4:auth: Fix debug statement in gensec_gssapi The 'role' is set to null, we should first set it to the correct value before printing anything. Found by GCC 9. BUG: https://bugzilla.samba.org/show_bug.cgi?id=13937 Signed-off-by: Andreas Schneider <a...@samba.org> Reviewed-by: Jeremy Allison <j...@samba.org> (cherry picked from commit bd29f3fcc023d00afde8e9cc2f9db22dcae49877) commit 8542379bde8e48d25bab820c37eef0aafc2f6472 Author: Gary Lockyer <g...@catalyst.net.nz> Date: Fri May 10 08:47:46 2019 +1200 s3 rpc_client: Fix Asan stack use after scope Fixes Asan error: ==1924==ERROR: AddressSanitizer: stack-use-after-scope on address 0x7ffe63f873d0 at pc 0x7fb99dae1733 bp 0x7ffe63f86a00 sp 0x7ffe63f861a8 READ of size 24 at 0x7ffe63f873d0 thread T0 #0 0x7fb99dae1732 (/usr/lib/x86_64-linux-gnu/libasan.so.4+0x79732) #1 0x7fb99cfe5549 in memcpy /usr/include/x86_64-linux-gnu/bits/string_fortified.h:34 #2 0x7fb99cfe5549 in ndr_push_bytes ../../librpc/ndr/ndr_basic.c:729 #3 0x7fb99cfe5646 in ndr_push_array_uint8 ../../librpc/ndr/ndr_basic.c:754 #4 0x7fb99a69dd1b in ndr_push_netr_ChallengeResponse librpc/gen_ndr/ndr_netlogon.c:462 #5 0x7fb99a6c5fab in ndr_push_netr_NetworkInfo librpc/gen_ndr/ndr_netlogon.c:556 #6 0x7fb99a6c749d in ndr_push_netr_LogonLevel librpc/gen_ndr/ndr_netlogon.c:783 #7 0x7fb99a7222de in ndr_push_netr_LogonSamLogonEx librpc/gen_ndr/ndr_netlogon.c:16547 #8 0x7fb99c982c97 in dcerpc_binding_handle_call_send ../../librpc/rpc/binding_handle.c:416 Bug: https://bugzilla.samba.org/show_bug.cgi?id=13936 Signed-off-by: Gary Lockyer <g...@catalyst.net.nz> Reviewed-by: Andrew Bartlett <abart...@samba.org> Autobuild-User(master): Andrew Bartlett <abart...@samba.org> Autobuild-Date(master): Fri May 10 10:02:21 UTC 2019 on sn-devel-184 (cherry picked from commit a5d1df4a8f9c535ff2f7ef11d7dfea4d79d65e7e) commit 8a320aad33230de0996f8f455377b1ef11fde637 Author: Martin Schwenke <mar...@meltin.net> Date: Mon May 6 15:22:49 2019 +1000 ctdb-daemon: Never use 0 as a client ID ctdb_control_db_attach() and ctdb_control_db_detach() assume that any control with client ID 0 comes from another daemon and treat it specially. BUG: https://bugzilla.samba.org/show_bug.cgi?id=13930 Signed-off-by: Martin Schwenke <mar...@meltin.net> Reviewed-by: Amitay Isaacs <ami...@gmail.com> (cherry picked from commit 8663e0a64fbdb9ea16babbfe87d6f5d7a7b72bbd) commit 6aa0fd8b7cdbf429d3b07adba5b922aa1a6c30f3 Author: Gary Lockyer <g...@catalyst.net.nz> Date: Tue May 7 16:30:22 2019 +1200 s4 lib socket: Ensure address string owned by parent struct The local address string was not owned by it's parent structure, which caused a use after free error in continue_ip_open_socket source4/librpc/rpc/dcerpc_sock.c:267 BUG: https://bugzilla.samba.org/show_bug.cgi?id=13929 Signed-off-by: Gary Lockyer <g...@catalyst.net.nz> Reviewed-by: Andrew Bartlett <abart...@samba.org> Autobuild-User(master): Andrew Bartlett <abart...@samba.org> Autobuild-Date(master): Wed May 8 20:03:42 UTC 2019 on sn-devel-184 (cherry picked from commit ae9fb93393bcadbc71328335e481e4381ecb65bf) commit 385a36b7e7cb20e4cb25d03b84611dff85922a49 Author: Gary Lockyer <g...@catalyst.net.nz> Date: Thu Apr 18 09:29:28 2019 +1200 nsswitch pam_winbind: Fix Asan use after free Fix use after free condition detected by Address Sanitizer triggered by wbcLogonUserInfoDestructor, wbcFreeMemory has code to detect and prevent a double free. This patch prevents the Address Sanitizer error, allowing tests to be run with Address Sanitizer enabled. Bug: https://bugzilla.samba.org/show_bug.cgi?id=13927 Signed-off-by: Gary Lockyer <g...@catalyst.net.nz> Reviewed-by: Andrew Bartlett <abart...@samba.org> Autobuild-User(master): Andrew Bartlett <abart...@samba.org> Autobuild-Date(master): Mon May 6 08:55:22 UTC 2019 on sn-devel-184 (cherry picked from commit 193b44466ba05deba8f2b1fdc16ab55c102e82ad) commit 52ba5136f2f0107650f2dfe187bffa3f5d0918f3 Author: Martin Schwenke <mar...@meltin.net> Date: Tue May 7 15:42:49 2019 +1000 ctdb-tests: Fix logic error in simple ctdb reloadips test There is a chance that restoring IP addresses to the test node will result in different IP addresses being assigned to that node. Removing a single IP address may then fail (or be a no-op) if it is done after the restore. So, swap the single IP address removal to happen first, then restore, then remove all IP addresses. BUG: https://bugzilla.samba.org/show_bug.cgi?id=13924 Signed-off-by: Martin Schwenke <mar...@meltin.net> Reviewed-by: Amitay Isaacs <ami...@gmail.com> (cherry picked from commit dc89db8ca6aadd4a9f7e8a85843c53709d04587c) commit 63a59de4f0fe8a1f8dd41868692857fdec6e405a Author: Martin Schwenke <mar...@meltin.net> Date: Tue May 7 15:29:19 2019 +1000 ctdb-tests: Make ctdb reloadips tests more reliable ctdb reloadips will fail if it can't disable takover runs. The most likely reason for this is that there is already a takeover run in progress. We can't predict when this will happen, so retry if this occurs. BUG: https://bugzilla.samba.org/show_bug.cgi?id=13924 Signed-off-by: Martin Schwenke <mar...@meltin.net> Reviewed-by: Amitay Isaacs <ami...@gmail.com> (cherry picked from commit 8be4ee1a28d5c037955832b6f827d40f28f02796) commit efb35a1a6950b8483907320590da2140b7e7a084 Author: Martin Schwenke <mar...@meltin.net> Date: Mon May 13 17:40:15 2019 +1000 ctdb-tests: Capture output in $out on failure as well BUG: https://bugzilla.samba.org/show_bug.cgi?id=13924 Signed-off-by: Martin Schwenke <mar...@meltin.net> Reviewed-by: Amitay Isaacs <ami...@gmail.com> (cherry picked from commit cf00db40355b49443263187f9d97934f91287e51) commit 65bf14afd83821016e8772311c9c5e97f26453de Author: Martin Schwenke <mar...@meltin.net> Date: Sun May 12 07:52:13 2019 +1000 ctdb-tests: Remove old socket wrapper state directory during setup Otherwise, when looping tests for a long time, nodes are unable to connect to each other. BUG: https://bugzilla.samba.org/show_bug.cgi?id=13924 Signed-off-by: Martin Schwenke <mar...@meltin.net> Reviewed-by: Amitay Isaacs <ami...@gmail.com> Autobuild-User(master): Amitay Isaacs <ami...@samba.org> Autobuild-Date(master): Mon May 13 08:42:44 UTC 2019 on sn-devel-184 (cherry picked from commit c75fbeaa96108cd4dc193ef5f4170977804e5104) commit 33739d555690d121bddaf858fe20a85aed6dad30 Author: Martin Schwenke <mar...@meltin.net> Date: Fri May 10 19:22:16 2019 +1000 ctdb-tests: Actually restart if cluster doesn't become healthy BUG: https://bugzilla.samba.org/show_bug.cgi?id=13924 Signed-off-by: Martin Schwenke <mar...@meltin.net> Reviewed-by: Amitay Isaacs <ami...@gmail.com> (cherry picked from commit 97ad353a67ce0232d7ca5637f1bf8886e2df1aca) commit 0cdf5c6b5ceb89592ce2b93de65f7ad3a6c8db91 Author: Martin Schwenke <mar...@meltin.net> Date: Wed May 1 15:17:14 2019 +1000 ctdb-tests: Don't clean up test var directory in autotest target If the directory is always cleaned up then it is not possible to look at daemon logs to debug test failures. This target is only really used by autobuild.py, which (optionally) cleans up the parent directory anyway. BUG: https://bugzilla.samba.org/show_bug.cgi?id=13924 Signed-off-by: Martin Schwenke <mar...@meltin.net> Reviewed-by: Amitay Isaacs <ami...@gmail.com> Autobuild-User(master): Amitay Isaacs <ami...@samba.org> Autobuild-Date(master): Tue May 7 06:56:01 UTC 2019 on sn-devel-184 (cherry picked from commit 5a9e338330fe136908a3a17a5df81c054c5cc5b0) commit 3582e3066061ac965341bd504f01f8f356b4c08e Author: Martin Schwenke <mar...@meltin.net> Date: Wed May 1 15:10:28 2019 +1000 ctdb-tests: Fix usage message Since commit 0e9ead8f28fced3ebfa888786a1dc5bb59e734a3 daemons have been shut down after each test, so this option no longer has anything to do with killing daemons. BUG: https://bugzilla.samba.org/show_bug.cgi?id=13924 Signed-off-by: Martin Schwenke <mar...@meltin.net> Reviewed-by: Amitay Isaacs <ami...@gmail.com> (cherry picked from commit a2ab6485e027ebb13871c7d83b7626ac5c9b98c0) commit b8cf1594a73f2a19a7b295681674383faa63f32d Author: Martin Schwenke <mar...@meltin.net> Date: Sat Apr 27 14:54:09 2019 +1000 ctdb-tests: Wait to allow database attach/detach to take effect Sometimes the detach test fails: Check detaching single test database detach_test1.tdb BAD: database detach_test1.tdb is still attached Number of databases:4 dbid:0x5ae995ee name:detach_test4.tdb path:tests/var/simple/node.0/db/volatile/detach_test4.tdb.0 dbid:0xd84cc13c name:detach_test3.tdb path:tests/var/simple/node.0/db/volatile/detach_test3.tdb.0 dbid:0x8e8e8cef name:detach_test2.tdb path:tests/var/simple/node.0/db/volatile/detach_test2.tdb.0 dbid:0xc62491f4 name:detach_test1.tdb path:tests/var/simple/node.0/db/volatile/detach_test1.tdb.0 Number of databases:3 dbid:0x5ae995ee name:detach_test4.tdb path:tests/var/simple/node.1/db/volatile/detach_test4.tdb.1 dbid:0xd84cc13c name:detach_test3.tdb path:tests/var/simple/node.1/db/volatile/detach_test3.tdb.1 dbid:0x8e8e8cef name:detach_test2.tdb path:tests/var/simple/node.1/db/volatile/detach_test2.tdb.1 Number of databases:4 dbid:0x5ae995ee name:detach_test4.tdb path:tests/var/simple/node.2/db/volatile/detach_test4.tdb.2 dbid:0xd84cc13c name:detach_test3.tdb path:tests/var/simple/node.2/db/volatile/detach_test3.tdb.2 dbid:0x8e8e8cef name:detach_test2.tdb path:tests/var/simple/node.2/db/volatile/detach_test2.tdb.2 dbid:0xc62491f4 name:detach_test1.tdb path:tests/var/simple/node.2/db/volatile/detach_test1.tdb.2 *** TEST COMPLETED (RC=1) AT 2019-04-27 03:35:40, CLEANING UP... When issued from a client, the detach control re-broadcasts itself asynchronously to all nodes and then returns success. The controls to some nodes to do the actual detach may still be in flight when success is returned to the client. Therefore, the test should wait for a few seconds to allow the asynchronous controls to complete. The same is true for the attach control, so workaround the problem in the attach test too. An alternative is to make the attach and detach controls synchronous by avoiding the broadcast and waiting for the results of the individual controls sent to the nodes. However, a simple implementation would involve adding new nested event loops. BUG: https://bugzilla.samba.org/show_bug.cgi?id=13924 Signed-off-by: Martin Schwenke <mar...@meltin.net> Reviewed-by: Amitay Isaacs <ami...@gmail.com> (cherry picked from commit 3cb53a7a05409925024d6a67bcfaeb962d896e0b) commit 221da170256da830e06b721af9799be57ef1a21f Author: Martin Schwenke <mar...@meltin.net> Date: Thu Apr 11 20:55:20 2019 +1000 ctdb-tests: Avoid bulk output in $out, prefer $outfile BUG: https://bugzilla.samba.org/show_bug.cgi?id=13924 Signed-off-by: Martin Schwenke <mar...@meltin.net> Reviewed-by: Amitay Isaacs <ami...@gmail.com> (cherry picked from commit 066cc5b0c561464ed08890d9aa1a1a55b545e9cc) commit 2044466dd3e2f389843acd8dc24e522c3364cd2b Author: Martin Schwenke <mar...@meltin.net> Date: Thu Mar 28 14:26:52 2019 +1100 ctdb-tests: Make try_command_on_node less error-prone This sometimes fails, apparently due to a cat process in onnode getting EAGAIN. The conclusion is that tests that process large amounts of output should not depend on a sub-shell delivering that output into a shell variable. Change try_command_on_node() to leave all of the output in file $outfile and just put the first 1KB into $out. $outfile is removed after each test completes. Change the implementation of sanity_check_output() to use $outfile instead of $out. BUG: https://bugzilla.samba.org/show_bug.cgi?id=13924 Signed-off-by: Martin Schwenke <mar...@meltin.net> Reviewed-by: Amitay Isaacs <ami...@gmail.com> (cherry picked from commit 9d02452a24625df5f62fd6d45a16effe2fa45fbe) commit 8bb1726f6a714dddc3ef63c42ac4741f6477b986 Author: Martin Schwenke <mar...@meltin.net> Date: Tue Apr 30 12:09:26 2019 +1000 ctdb-tests: Change sanity_check_output() to internally use $out All callers are currently passed $out. Global variable $out is used in many other places so use it here to simplify the interface and make future changes simpler. BUG: https://bugzilla.samba.org/show_bug.cgi?id=13924 Signed-off-by: Martin Schwenke <mar...@meltin.net> Reviewed-by: Amitay Isaacs <ami...@gmail.com> (cherry picked from commit 7c3819d1ac264acf998f426e0cef7f6211e0ddee) commit c054f19fb3773102262b477c8e4d3ec97449a520 Author: Martin Schwenke <mar...@meltin.net> Date: Thu Apr 11 16:58:10 2019 +1000 ctdb-tests: Extend test to cover ctdb rddumpmemory BUG: https://bugzilla.samba.org/show_bug.cgi?id=13923 Signed-off-by: Martin Schwenke <mar...@meltin.net> Reviewed-by: Amitay Isaacs <ami...@gmail.com> (cherry picked from commit 8108b3134c017c22d245fc5b2207a88d44ab0dd2) commit 8c9abb2749f2836c97bfa4c4ef3786b3e82633c6 Author: Martin Schwenke <mar...@meltin.net> Date: Thu Apr 11 16:56:32 2019 +1000 ctdb-tools: Fix ctdb dumpmemory to avoid printing trailing NUL Fix ctdb rddumpmemory too. BUG: https://bugzilla.samba.org/show_bug.cgi?id=13923 Signed-off-by: Martin Schwenke <mar...@meltin.net> Reviewed-by: Amitay Isaacs <ami...@gmail.com> (cherry picked from commit f78d9388fb459dc83fafb4da6e683e3137ad40e1) commit 42b32da416056f315925c2e6563c2c5d26f27832 Author: Stefan Metzmacher <me...@samba.org> Date: Thu Apr 25 14:57:33 2019 +0200 smbd: implement SMB_FILE_NORMALIZED_NAME_INFORMATION handling Windows 10 (1803 and higher) support and use SMB_FILE_NORMALIZED_NAME_INFORMATION calls over the network. As a fallback (in case the server don't support it) the client traverses all path components, which is very expensive. Implementing SMB_FILE_NORMALIZED_NAME_INFORMATION is very cheap for us as the open already went through unix_convert() and we have the information the client is asking for. BUG: https://bugzilla.samba.org/show_bug.cgi?id=13919 Signed-off-by: Stefan Metzmacher <me...@samba.org> Reviewed-by: Jeremy Allison <j...@samba.org> Autobuild-User(master): Jeremy Allison <j...@samba.org> Autobuild-Date(master): Wed May 1 18:33:00 UTC 2019 on sn-devel-184 (cherry picked from commit b20fd15e04ce9292f90a7f70f4184e43034b4b9d) commit 5308f042e672b61eab98a486b87dddd54ac6e764 Author: Stefan Metzmacher <me...@samba.org> Date: Thu Apr 25 14:57:02 2019 +0200 s4:torture/smb2: add smb2.getinfo.normalized test BUG: https://bugzilla.samba.org/show_bug.cgi?id=13919 Signed-off-by: Stefan Metzmacher <me...@samba.org> Reviewed-by: Jeremy Allison <j...@samba.org> (cherry picked from commit 8a5828de2bdd95223e5f30996d0490fef53742dd) commit 3205d032781b706fb83acfdb6b8dc4dd8bd51a4d Author: Stefan Metzmacher <me...@samba.org> Date: Thu Apr 25 12:12:34 2019 +0200 s4:libcli/raw: add RAW_FILEINFO_NORMALIZED_NAME_INFORMATION support This is supported over the wire in SMB 3.1.1 on starting with Windows 10 1803. BUG: https://bugzilla.samba.org/show_bug.cgi?id=13919 Signed-off-by: Stefan Metzmacher <me...@samba.org> Reviewed-by: Jeremy Allison <j...@samba.org> (cherry picked from commit 0c602319194bda6b2a0efdd7c186078583f79264) commit 07382f0765acf7480a4d78144fcd1659334f375e Author: Stefan Metzmacher <me...@samba.org> Date: Thu Apr 25 17:30:43 2019 +0200 smbd: allow case insensitive opens of named streams BUG: https://bugzilla.samba.org/show_bug.cgi?id=13919 Signed-off-by: Stefan Metzmacher <me...@samba.org> Reviewed-by: Jeremy Allison <j...@samba.org> (cherry picked from commit 2a69c0915586fb9fb2148239965d06bf9f93c803) commit 649dd7bce868bef1cb62a9070f32858a525c7cd7 Author: Stefan Metzmacher <me...@samba.org> Date: Mon Apr 29 14:53:13 2019 +0200 s4:torture/smb2: add smb2.stream.names3 test BUG: https://bugzilla.samba.org/show_bug.cgi?id=13919 Signed-off-by: Stefan Metzmacher <me...@samba.org> Reviewed-by: Jeremy Allison <j...@samba.org> (cherry picked from commit b5c4fdbf99caa3a9e7c6446cfbc4f1b23b84b3c8) commit f4a603a9f32b75662dc08bf58b75345b16ac8ee7 Author: Robert Sander <r.san...@heinlein-support.de> Date: Thu May 2 11:20:44 2019 -0700 s3: modules: ceph: use current working directory instead of share path BUG: https://bugzilla.samba.org/show_bug.cgi?id=13918 Signed-off-by: Robert Sander <r.san...@heinlein-support.de> Reviewed-by: Jeremy Allison <j...@samba.org> Reviewed-by: Ralph Böhme <s...@samba.org> Autobuild-User(master): Jeremy Allison <j...@samba.org> Autobuild-Date(master): Thu May 2 19:34:11 UTC 2019 on sn-devel-184 (cherry picked from commit 966fc0dc604299a87e40e7170d80911475317db5) commit de505618e6028f35d924170fc36652d069464e35 Author: Ralph Wuerthner <ralph.wuerth...@de.ibm.com> Date: Mon Mar 25 15:17:07 2019 +0100 s3:debug: enable logging for early startup failures Commit c89a33a07a 'debug: Use backends instead of explicitly logging to syslog or file' introduced a regression where early startup failures (e.g. unable to connect to CTDB) are no longer logged because the debug subsystem is not yet fully initialized. Enable logging again with reasonable defaults when reopen_logs() is called and the parameter file is not yet parsed. BUG: https://bugzilla.samba.org/show_bug.cgi?id=13904 Signed-off-by: Ralph Wuerthner <ralph.wuerth...@de.ibm.com> Reviewed-by: Stefan Metzmacher <me...@samba.org> Reviewed-by: Christof Schmitt <c...@samba.org> Autobuild-User(master): Christof Schmitt <c...@samba.org> Autobuild-Date(master): Thu Apr 18 22:21:15 UTC 2019 on sn-devel-144 (cherry picked from commit 9b30fcda64080592d20de64b384fd6d3d0775cbf) commit c584a4b4dfbdf7df1acc9bc452f95511a3f07f02 Author: Ralph Wuerthner <ralph.wuerth...@de.ibm.com> Date: Thu Apr 11 13:11:34 2019 +0200 s3:debug: adjust indention BUG: https://bugzilla.samba.org/show_bug.cgi?id=13904 Signed-off-by: Ralph Wuerthner <ralph.wuerth...@de.ibm.com> Reviewed-by: Stefan Metzmacher <me...@samba.org> Reviewed-by: Christof Schmitt <c...@samba.org> (cherry picked from commit a45675879ddcb43ab274d28496eedd6833466ae4) commit c7f25b25d3a4599d6274819e34717c9eae56c2b0 Author: Ralph Wuerthner <ralph.wuerth...@de.ibm.com> Date: Thu Apr 11 13:01:16 2019 +0200 s3:debug: use struct initializer BUG: https://bugzilla.samba.org/show_bug.cgi?id=13904 Signed-off-by: Ralph Wuerthner <ralph.wuerth...@de.ibm.com> Reviewed-by: Stefan Metzmacher <me...@samba.org> Reviewed-by: Christof Schmitt <c...@samba.org> (cherry picked from commit b9e1b4ad0033c211710da285c30d603ccb8b8d40) commit 1fa6a46fa53eb2d174b7a60624c44f38c07a8afa Author: Volker Lendecke <v...@samba.org> Date: Fri Apr 12 16:56:45 2019 +0200 winbind: Fix overlapping id ranges BUG: https://bugzilla.samba.org/show_bug.cgi?id=13903 Signed-off-by: Volker Lendecke <v...@samba.org> Reviewed-by: Christof Schmitt <c...@samba.org> Reviewed-by: Jeremy Allison <j...@samba.org> Autobuild-User(master): Jeremy Allison <j...@samba.org> Autobuild-Date(master): Wed Apr 24 02:25:56 UTC 2019 on sn-devel-184 (cherry picked from commit 3020050bdf9df077ec9a0e962a689557187174ac) commit 24d39db5c372eb96b2bcc4ac44e53f68e03b3f66 Author: Christof Schmitt <c...@samba.org> Date: Mon Apr 22 16:41:42 2019 -0700 selftest: Add trusted domain tests for idmap_ad BUG: https://bugzilla.samba.org/show_bug.cgi?id=13903 Signed-off-by: Christof Schmitt <c...@samba.org> Reviewed-by: Jeremy Allison <j...@samba.org> (cherry picked from commit 2577f43a133f8b8eb997b9529a38e21c77b5da22) commit 3a46730f12e3760d1eef2461527e4b58432ee917 Author: Christof Schmitt <c...@samba.org> Date: Mon Apr 22 16:38:11 2019 -0700 selftest: Pass trusted domain information to idmap_ad test BUG: https://bugzilla.samba.org/show_bug.cgi?id=13903 Signed-off-by: Christof Schmitt <c...@samba.org> Reviewed-by: Jeremy Allison <j...@samba.org> (cherry picked from commit ac0f8656eed39a4527a5336cf93aa1508666f79b) commit c3c2f3707a0131a5dbf9ed71e48bdda0166ad929 Author: Christof Schmitt <c...@samba.org> Date: Mon Apr 22 16:07:02 2019 -0700 selftest: Add idmap configuration for trusted domain for idmap_ad BUG: https://bugzilla.samba.org/show_bug.cgi?id=13903 Signed-off-by: Christof Schmitt <c...@samba.org> Reviewed-by: Jeremy Allison <j...@samba.org> (cherry picked from commit 65e1d783cb17904cd117d896569e7cbe79a3131b) commit 79c04524c380d2ce58b022ef625d6afbe7fb45c6 Author: Christof Schmitt <c...@samba.org> Date: Thu Apr 18 13:04:09 2019 -0700 selftest: Make trusted domain information available for idmap_ad environment BUG: https://bugzilla.samba.org/show_bug.cgi?id=13903 Signed-off-by: Christof Schmitt <c...@samba.org> Reviewed-by: Jeremy Allison <j...@samba.org> (cherry picked from commit 281fb81ab1c72831c752be44fd1bfdcfd10bd798) commit 28b5ff2ccf7a5c7d7391450ded6d03b2475276ce Author: Christof Schmitt <c...@samba.org> Date: Wed Apr 17 16:12:27 2019 -0700 selftest: Use fl2008r2dc for ad_member_idmap_ad fl2008r2dc already has a trusted domain. That will be used to use idmap_ad for querying idmap attributes from the trusted domain. BUG: https://bugzilla.samba.org/show_bug.cgi?id=13903 Signed-off-by: Christof Schmitt <c...@samba.org> Reviewed-by: Jeremy Allison <j...@samba.org> (cherry picked from commit 8266bd1f45d1b5b2a61d84006ab8e8e1ed0e52a9) commit 38746ec0a3ea943d9489b4115deb76cc42bb34ff Author: Christof Schmitt <c...@samba.org> Date: Mon Apr 22 16:15:20 2019 -0700 selftest: Add gid-to-sid lookup to idmap_ad test BUG: https://bugzilla.samba.org/show_bug.cgi?id=13903 Signed-off-by: Christof Schmitt <c...@samba.org> Reviewed-by: Jeremy Allison <j...@samba.org> (cherry picked from commit d7b5ad5e6159c224f70bea782bbdc46059e67978) commit 9c167fa8628846426cf9e09e93313174564d09a2 Author: Gary Lockyer <g...@catalyst.net.nz> Date: Thu Apr 18 10:23:22 2019 +1200 lib util debug: Increase format buffer to 4KiB Increase the debug line buffer to 4KiB, the existing size of 1KiB is too small for dsdbChange JSON audit messages. These messages were then split across multipe lines causing issues in log ingestion tools expecting single line messages. Bug: https://bugzilla.samba.org/show_bug.cgi?id=13902 Signed-off-by: Gary Lockyer <g...@catalyst.net.nz> Reviewed-by: Douglas Bagnall <douglas.bagn...@catalyst.net.nz> Autobuild-User(master): Gary Lockyer <g...@samba.org> Autobuild-Date(master): Mon May 6 01:18:22 UTC 2019 on sn-devel-184 (cherry picked from commit ad3af7cdffb98b7998857db609548fc96f60c669) commit 2cc3b4c42c5acfba2c0d1d5cee8e0c02f38c322c Author: Volker Lendecke <v...@samba.org> Date: Tue Apr 9 12:47:13 2019 +0200 lib: Initialize getline() arguments Keep "len" valid across the loop iterations for getline to consume Bug: https://bugzilla.samba.org/show_bug.cgi?id=13892 Signed-off-by: Volker Lendecke <v...@samba.org> Reviewed-by: Stefan Metzmacher <me...@samba.org> (cherry picked from commit c0b2272a7d15d266ce64c86cf6a313b5b0fb67fd) commit d1962a5f5278fc299af982d73e517c40a4b09320 Author: Douglas Bagnall <douglas.bagn...@catalyst.net.nz> Date: Fri Apr 5 09:25:15 2019 +1300 pytests/dns: use 2.6 compatible syntax BUG: https://bugzilla.samba.org/show_bug.cgi?id=13886 Signed-off-by: Douglas Bagnall <douglas.bagn...@catalyst.net.nz> ----------------------------------------------------------------------- Summary of changes: ctdb/common/event_script.c | 3 +- ctdb/common/run_proc.c | 7 +- ctdb/common/sock_daemon.c | 2 +- ctdb/server/ctdb_daemon.c | 48 +++- ctdb/server/ctdb_recoverd.c | 2 +- ctdb/tests/complex/11_ctdb_delip_removes_ip.sh | 10 +- ctdb/tests/complex/18_ctdb_reloadips.sh | 43 ++- ctdb/tests/complex/32_cifs_tickle.sh | 7 - ctdb/tests/complex/36_smb_reset_server.sh | 12 +- ctdb/tests/complex/37_nfs_reset_server.sh | 4 +- ctdb/tests/complex/60_rogueip_releaseip.sh | 2 +- ctdb/tests/complex/scripts/local.bash | 5 +- ctdb/tests/local_daemons.sh | 1 + ctdb/tests/run_tests.sh | 2 +- ctdb/tests/scripts/integration.bash | 72 +++-- ctdb/tests/simple/02_ctdb_tunables.sh | 6 +- ctdb/tests/simple/05_ctdb_listnodes.sh | 5 +- ctdb/tests/simple/08_ctdb_isnotrecmaster.sh | 10 +- ctdb/tests/simple/09_ctdb_ping.sh | 6 +- ctdb/tests/simple/11_ctdb_ip.sh | 14 +- ctdb/tests/simple/12_ctdb_getdebug.sh | 3 +- ctdb/tests/simple/14_ctdb_statistics.sh | 2 +- ctdb/tests/simple/15_ctdb_statisticsreset.sh | 21 +- ctdb/tests/simple/18_ctdb_reloadips.sh | 70 +++-- ctdb/tests/simple/19_ip_takeover_noop.sh | 4 +- ctdb/tests/simple/20_delip_iface_gc.sh | 10 +- ctdb/tests/simple/21_ctdb_attach.sh | 49 ++-- ctdb/tests/simple/23_ctdb_moveip.sh | 25 +- ctdb/tests/simple/24_ctdb_getdbmap.sh | 10 +- ctdb/tests/simple/25_dumpmemory.sh | 9 +- ..._ctdb_config_check_error_on_unreachable_ctdb.sh | 6 +- ctdb/tests/simple/27_ctdb_detach.sh | 71 +++-- ctdb/tests/simple/35_ctdb_getreclock.sh | 2 +- ctdb/tests/simple/51_message_ring.sh | 14 +- ctdb/tests/simple/52_fetch_ring.sh | 14 +- ctdb/tests/simple/53_transaction_loop.sh | 4 +- ctdb/tests/simple/54_transaction_loop_recovery.sh | 4 +- ctdb/tests/simple/55_ctdb_ptrans.sh | 12 +- .../simple/56_replicated_transaction_recovery.sh | 4 +- ctdb/tests/simple/58_ctdb_restoredb.sh | 8 +- ctdb/tests/simple/69_recovery_resurrect_deleted.sh | 10 +- ctdb/tests/simple/70_recoverpdbbyseqnum.sh | 4 +- ctdb/tests/simple/71_ctdb_wipedb.sh | 4 +- ctdb/tests/simple/72_update_record_persistent.sh | 4 +- ctdb/tests/simple/75_readonly_records_basic.sh | 24 +- ctdb/tests/simple/77_ctdb_db_recovery.sh | 6 +- ctdb/tests/simple/79_volatile_db_traverse.sh | 4 +- ctdb/tests/simple/80_ctdb_traverse.sh | 2 +- ctdb/tests/simple/81_tunnel_ring.sh | 14 +- ctdb/tests/simple/90_debug_hung_script.sh | 6 +- ctdb/tools/ctdb.c | 10 +- ctdb/wscript | 2 +- lib/torture/torture.h | 8 +- lib/util/debug.c | 2 +- lib/util/debug_s3.c | 44 ++- libcli/dns/resolvconf.c | 2 +- nsswitch/pam_winbind.c | 5 + nsswitch/tests/test_idmap_ad.sh | 137 ++++++++- python/samba/tests/dns.py | 2 +- selftest/target/Samba3.pm | 11 +- source3/client/smbspool.c | 2 +- source3/modules/vfs_ceph.c | 9 +- source3/rpc_client/cli_netlogon.c | 13 +- source3/rpc_server/eventlog/srv_eventlog_nt.c | 4 +- source3/selftest/tests.py | 2 +- source3/smbd/filename.c | 72 ++++- source3/smbd/reply.c | 4 + source3/smbd/smb2_getinfo.c | 9 + source3/smbd/smb2_server.c | 3 + source3/smbd/trans2.c | 57 ++++ source3/utils/smbcacls.c | 4 +- source3/utils/smbcquotas.c | 4 +- source3/winbindd/idmap_tdb2.c | 4 +- source3/winbindd/wb_xids2sids.c | 12 +- source4/auth/gensec/gensec_gssapi.c | 9 +- source4/lib/socket/socket_ip.c | 2 +- source4/libcli/raw/interfaces.h | 16 +- source4/libcli/raw/rawfileinfo.c | 11 + source4/libcli/raw/trans2.h | 1 + source4/ntvfs/ntvfs_generic.c | 2 + source4/ntvfs/posix/pvfs_qfileinfo.c | 2 + source4/ntvfs/posix/vfs_posix.c | 2 +- source4/torture/gentest.c | 4 + source4/torture/rpc/drsuapi_cracknames.c | 8 +- source4/torture/smb2/getinfo.c | 311 +++++++++++++++++++++ source4/torture/smb2/streams.c | 115 ++++++++ source4/torture/vfs/fruit.c | 2 +- 87 files changed, 1237 insertions(+), 351 deletions(-) Changeset truncated at 500 lines: diff --git a/ctdb/common/event_script.c b/ctdb/common/event_script.c index 8978d1452c0..8bdfdd0b5ca 100644 --- a/ctdb/common/event_script.c +++ b/ctdb/common/event_script.c @@ -117,7 +117,8 @@ int event_script_get_list(TALLOC_CTX *mem_ctx, } *out = script_list; - return 0; + ret = 0; + goto done; nomem: ret = ENOMEM; diff --git a/ctdb/common/run_proc.c b/ctdb/common/run_proc.c index 037b6d9651d..0c3c1de72fe 100644 --- a/ctdb/common/run_proc.c +++ b/ctdb/common/run_proc.c @@ -302,13 +302,15 @@ again: proc->fd = -1; } + DLIST_REMOVE(run_ctx->plist, proc); + /* Active run_proc request */ if (proc->req != NULL) { run_proc_done(proc->req); + } else { + talloc_free(proc); } - DLIST_REMOVE(run_ctx->plist, proc); - goto again; } @@ -426,6 +428,7 @@ static void run_proc_done(struct tevent_req *req) if (state->proc->output != NULL) { state->output = talloc_steal(state, state->proc->output); } + talloc_steal(state, state->proc); tevent_req_done(req); } diff --git a/ctdb/common/sock_daemon.c b/ctdb/common/sock_daemon.c index e5e16f8af12..6298653f4ec 100644 --- a/ctdb/common/sock_daemon.c +++ b/ctdb/common/sock_daemon.c @@ -893,7 +893,7 @@ static void sock_daemon_run_socket_fail(struct tevent_req *subreq) subreq, struct tevent_req); struct sock_daemon_run_state *state = tevent_req_data( req, struct sock_daemon_run_state); - const char *sockpath = NULL; + const char *sockpath = "INVALID"; int ret = 0; bool status; diff --git a/ctdb/server/ctdb_daemon.c b/ctdb/server/ctdb_daemon.c index a8691388d4a..aa0694548f8 100644 --- a/ctdb/server/ctdb_daemon.c +++ b/ctdb/server/ctdb_daemon.c @@ -928,6 +928,44 @@ static int ctdb_clientpid_destructor(struct ctdb_client_pid_list *client_pid) return 0; } +static int get_new_client_id(struct reqid_context *idr, + struct ctdb_client *client, + uint32_t *out) +{ + uint32_t client_id; + + client_id = reqid_new(idr, client); + /* + * Some places in the code (e.g. ctdb_control_db_attach(), + * ctdb_control_db_detach()) assign a special meaning to + * client_id 0. The assumption is that if client_id is 0 then + * the control has come from another daemon. Therefore, we + * should never return client_id == 0. + */ + if (client_id == 0) { + /* + * Don't leak ID 0. This is safe because the ID keeps + * increasing. A test will be added to ensure that + * this doesn't change. + */ + reqid_remove(idr, 0); + + client_id = reqid_new(idr, client); + } + + if (client_id == REQID_INVALID) { + return EINVAL; + } + + if (client_id == 0) { + /* Every other ID must have been used and we can't use 0 */ + reqid_remove(idr, 0); + return EINVAL; + } + + *out = client_id; + return 0; +} static void ctdb_accept_client(struct tevent_context *ev, struct tevent_fd *fde, uint16_t flags, @@ -971,7 +1009,15 @@ static void ctdb_accept_client(struct tevent_context *ev, client->ctdb = ctdb; client->fd = fd; - client->client_id = reqid_new(ctdb->idr, client); + + ret = get_new_client_id(ctdb->idr, client, &client->client_id); + if (ret != 0) { + DBG_ERR("Unable to get client ID (%d)\n", ret); + close(fd); + talloc_free(client); + return; + } + client->pid = peer_pid; client_pid = talloc(client, struct ctdb_client_pid_list); diff --git a/ctdb/server/ctdb_recoverd.c b/ctdb/server/ctdb_recoverd.c index 9b3559b2a92..3e63bd1e7a5 100644 --- a/ctdb/server/ctdb_recoverd.c +++ b/ctdb/server/ctdb_recoverd.c @@ -1134,7 +1134,7 @@ static int helper_run(struct ctdb_recoverd *rec, TALLOC_CTX *mem_ctx, state->done = false; - fde = tevent_add_fd(rec->ctdb->ev, rec->ctdb, state->fd[0], + fde = tevent_add_fd(rec->ctdb->ev, state, state->fd[0], TEVENT_FD_READ, helper_handler, state); if (fde == NULL) { goto fail; diff --git a/ctdb/tests/complex/11_ctdb_delip_removes_ip.sh b/ctdb/tests/complex/11_ctdb_delip_removes_ip.sh index b5c8866d67a..543472c0f22 100755 --- a/ctdb/tests/complex/11_ctdb_delip_removes_ip.sh +++ b/ctdb/tests/complex/11_ctdb_delip_removes_ip.sh @@ -22,8 +22,8 @@ cluster_is_healthy select_test_node_and_ips get_test_ip_mask_and_iface -echo "Checking that node ${test_node} hosts ${test_ip} on interface ${iface}..." -try_command_on_node $test_node "ip addr show dev $iface | grep -E 'inet6?[[:space:]]*${test_ip}/'" +echo "Checking that node ${test_node} hosts ${test_ip}..." +try_command_on_node $test_node "ip addr show to ${test_ip} | grep -q ." echo "Attempting to remove ${test_ip} from node ${test_node}." try_command_on_node $test_node $CTDB delip $test_ip @@ -33,10 +33,10 @@ wait_until_ips_are_on_node '!' $test_node $test_ip timeout=60 increment=5 count=0 -echo "Waiting for ${test_ip} to disappear from ${iface}..." +echo "Waiting for ${test_ip} to disappear from node ${test_node}..." while : ; do - try_command_on_node -v $test_node "ip addr show dev $iface" - if echo "$out" | grep -E 'inet6?[[:space:]]*${test_ip}/'; then + try_command_on_node -v $test_node "ip addr show to ${test_node}" + if -n "$out" ; then echo "Still there..." if [ $(($count * $increment)) -ge $timeout ] ; then echo "BAD: Timed out waiting..." diff --git a/ctdb/tests/complex/18_ctdb_reloadips.sh b/ctdb/tests/complex/18_ctdb_reloadips.sh index 2beff771874..26782130430 100755 --- a/ctdb/tests/complex/18_ctdb_reloadips.sh +++ b/ctdb/tests/complex/18_ctdb_reloadips.sh @@ -48,12 +48,12 @@ select_test_node_and_ips echo "Getting public IP information from CTDB..." try_command_on_node any "$CTDB ip -X -v all" -ctdb_ip_info=$(echo "$out" | awk -F'|' 'NR > 1 { print $2, $3, $5 }') +ctdb_ip_info=$(awk -F'|' 'NR > 1 { print $2, $3, $5 }' "$outfile") echo "Getting IP information from interfaces..." try_command_on_node all "ip addr show" -ip_addr_info=$(echo "$out" | \ - awk '$1 == "inet" { ip = $2; sub(/\/.*/, "", ip); print ip }') +ip_addr_info=$(awk '$1 == "inet" { ip = $2; sub(/\/.*/, "", ip); print ip }' \ + "$outfile") prefix="" for b in $(seq 0 255) ; do @@ -168,7 +168,7 @@ check_ips () try_command_on_node $test_node "ip addr show dev ${iface}" local ip_addrs_file=$(mktemp) - echo "$out" | \ + cat "$outfile" | \ sed -n -e "s@.*inet * \(${prefix//./\.}\.[0-9]*\)/.*@\1@p" | \ sort >"$ip_addrs_file" @@ -184,6 +184,33 @@ check_ips () fi } +# ctdb reloadips will fail if it can't disable takover runs. The most +# likely reason for this is that there is already a takeover run in +# progress. We can't predict when this will happen, so retry if this +# occurs. +do_ctdb_reloadips () +{ + local retry_max=10 + local retry_count=0 + while : ; do + if try_command_on_node "$test_node" "$CTDB reloadips" ; then + return 0 + fi + + if [ "$out" != "Failed to disable takeover runs" ] ; then + return 1 + fi + + if [ $retry_count -ge $retry_max ] ; then + return 1 + fi + + retry_count=$((retry_count + 1)) + echo "Retrying..." + sleep_for 1 + done +} + #################### new_ip_max=100 @@ -193,7 +220,7 @@ new_ip_max=100 add_ips_to_original_config \ $test_node "$addresses" "$iface" "$prefix" 1 $new_ip_max -try_command_on_node $test_node "$CTDB reloadips" +do_ctdb_reloadips check_ips $test_node "$iface" "$prefix" 1 $new_ip_max @@ -207,7 +234,7 @@ echo "Using 'ctdb reloadips' to remove the 1st address just added..." add_ips_to_original_config \ $test_node "$addresses" "$iface" "$prefix" 2 $new_ip_max -try_command_on_node $test_node "$CTDB reloadips" +do_ctdb_reloadips check_ips $test_node "$iface" "$prefix" 2 $new_ip_max @@ -222,7 +249,7 @@ echo "Updating to include only about 1/2 of the new IPs..." add_ips_to_original_config \ $test_node "$addresses" "$iface" "$prefix" $start $new_ip_max -try_command_on_node $test_node "$CTDB reloadips" +do_ctdb_reloadips check_ips $test_node "$iface" "$prefix" $start $new_ip_max @@ -234,6 +261,6 @@ try_command_on_node any $CTDB sync echo "Restoring original IP configuration..." restore_public_addresses -try_command_on_node $test_node "$CTDB reloadips" +do_ctdb_reloadips check_ips $test_node "$iface" "$prefix" 0 diff --git a/ctdb/tests/complex/32_cifs_tickle.sh b/ctdb/tests/complex/32_cifs_tickle.sh index 4f2cdadbdfc..bfe3df4e82f 100755 --- a/ctdb/tests/complex/32_cifs_tickle.sh +++ b/ctdb/tests/complex/32_cifs_tickle.sh @@ -61,13 +61,6 @@ echo "Source socket is $src_socket" # we sometimes beat the registration. echo "Checking if CIFS connection is tracked by CTDB on test node..." wait_until 10 check_tickles $test_node $test_ip $test_port $src_socket -echo "$out" - -if [ "${out/SRC: ${src_socket} /}" != "$out" ] ; then - echo "GOOD: CIFS connection tracked OK by CTDB." -else - die "BAD: Socket not tracked by CTDB." -fi # This is almost immediate. However, it is sent between nodes # asynchonously, so it is worth checking... diff --git a/ctdb/tests/complex/36_smb_reset_server.sh b/ctdb/tests/complex/36_smb_reset_server.sh index 0de77722fc3..870b80661aa 100755 --- a/ctdb/tests/complex/36_smb_reset_server.sh +++ b/ctdb/tests/complex/36_smb_reset_server.sh @@ -59,16 +59,8 @@ echo "Source socket is $src_socket" # This should happen as soon as connection is up... but unless we wait # we sometimes beat the registration. -echo "Checking if CIFS connection is tracked by CTDB on test node..." +echo "Waiting until SMB connection is tracked by CTDB on test node..." wait_until 10 check_tickles $test_node $test_ip $test_port $src_socket -echo "$out" - -if [ "${out/SRC: ${src_socket} /}" != "$out" ] ; then - echo "GOOD: CIFS connection tracked OK by CTDB." -else - echo "BAD: Socket not tracked by CTDB." - exit 1 -fi # It would be nice if ss consistently used local/peer instead of src/dst ss_filter="src ${test_ip}:${test_port} dst ${src_socket}" @@ -80,7 +72,7 @@ if [ -z "$out" ] ; then exit 1 fi echo "GOOD: ss lists the socket:" -echo "$out" +cat "$outfile" echo "Disabling node $test_node" try_command_on_node 1 $CTDB disable -n $test_node diff --git a/ctdb/tests/complex/37_nfs_reset_server.sh b/ctdb/tests/complex/37_nfs_reset_server.sh index 7190af0f552..32ff9295cc6 100755 --- a/ctdb/tests/complex/37_nfs_reset_server.sh +++ b/ctdb/tests/complex/37_nfs_reset_server.sh @@ -60,7 +60,7 @@ echo "Source socket is $src_socket" echo "Wait until NFS connection is tracked by CTDB on test node ..." wait_until $((monitor_interval * 2)) \ check_tickles $test_node $test_ip $test_port $src_socket -echo "$out" +cat "$outfile" # It would be nice if ss consistently used local/peer instead of src/dst ss_filter="src ${test_ip}:${test_port} dst ${src_socket}" @@ -72,7 +72,7 @@ if [ -z "$out" ] ; then exit 1 fi echo "GOOD: ss lists the socket:" -echo "$out" +cat "$outfile" echo "Disabling node $test_node" try_command_on_node 1 $CTDB disable -n $test_node diff --git a/ctdb/tests/complex/60_rogueip_releaseip.sh b/ctdb/tests/complex/60_rogueip_releaseip.sh index 2fddc06f867..88e4e554c34 100755 --- a/ctdb/tests/complex/60_rogueip_releaseip.sh +++ b/ctdb/tests/complex/60_rogueip_releaseip.sh @@ -31,7 +31,7 @@ for i in $all_pnns ; do continue fi try_command_on_node $i "$CTDB ip" - n=$(awk -v ip="$test_ip" '$1 == ip { print }' <<<"$out") + n=$(awk -v ip="$test_ip" '$1 == ip { print }' "$outfile") if [ -n "$n" ] ; then other_node="$i" break diff --git a/ctdb/tests/complex/scripts/local.bash b/ctdb/tests/complex/scripts/local.bash index 7787de8f111..787f597edcc 100644 --- a/ctdb/tests/complex/scripts/local.bash +++ b/ctdb/tests/complex/scripts/local.bash @@ -67,7 +67,7 @@ check_tickles () local src_socket="$4" try_command_on_node $node ctdb gettickles $test_ip $test_port # SRC: 10.0.2.45:49091 DST: 10.0.2.143:445 - [ "${out/SRC: ${src_socket} /}" != "$out" ] + grep -Fq "SRC: ${src_socket} " "$outfile" } check_tickles_all () @@ -79,8 +79,7 @@ check_tickles_all () try_command_on_node all ctdb gettickles $test_ip $test_port # SRC: 10.0.2.45:49091 DST: 10.0.2.143:445 - local t="${src_socket//./\\.}" - local count=$(grep -E -c "SRC: ${t} " <<<"$out" || true) + local count=$(grep -Fc "SRC: ${src_socket} " "$outfile" || true) [ $count -eq $numnodes ] } diff --git a/ctdb/tests/local_daemons.sh b/ctdb/tests/local_daemons.sh index 3c3897feb50..5a92a24e9e7 100755 --- a/ctdb/tests/local_daemons.sh +++ b/ctdb/tests/local_daemons.sh @@ -119,6 +119,7 @@ setup_socket_wrapper () ln -s "$_socket_wrapper_so" "$_so" _d="${directory}/sw" + rm -rf "$_d" mkdir -p "$_d" } diff --git a/ctdb/tests/run_tests.sh b/ctdb/tests/run_tests.sh index f5be01a8d66..a9c68464883 100755 --- a/ctdb/tests/run_tests.sh +++ b/ctdb/tests/run_tests.sh @@ -7,7 +7,7 @@ Usage: $0 [OPTIONS] [TESTS] Options: -A Use "cat -A" to print test output (only some tests) -c Run integration tests on a cluster - -C Clean up - kill daemons and remove TEST_VAR_DIR when done + -C Remove TEST_VAR_DIR when done -d Print descriptions of tests instead of filenames (dodgy!) -D Show diff between failed/expected test output (some tests only) -e Exit on the first test failure diff --git a/ctdb/tests/scripts/integration.bash b/ctdb/tests/scripts/integration.bash index 6ba531a4a76..30725c48e53 100644 --- a/ctdb/tests/scripts/integration.bash +++ b/ctdb/tests/scripts/integration.bash @@ -72,7 +72,20 @@ ctdb_test_init () ######################################## -# Sets: $out +# Sets: $out, $outfile +# * The first 1KB of output is put into $out +# * Tests should use $outfile for handling large output +# * $outfile is removed after each test +out="" +outfile="${TEST_VAR_DIR}/try_command_on_node.out" + +outfile_cleanup () +{ + rm -f "$outfile" +} + +ctdb_test_exit_hook_add outfile_cleanup + try_command_on_node () { local nodespec="$1" ; shift @@ -91,16 +104,19 @@ try_command_on_node () local cmd="$*" - out=$(onnode -q $onnode_opts "$nodespec" "$cmd" 2>&1) || { + local status=0 + onnode -q $onnode_opts "$nodespec" "$cmd" >"$outfile" 2>&1 || status=$? + out=$(dd if="$outfile" bs=1k count=1 2>/dev/null) + if [ $status -ne 0 ] ; then echo "Failed to execute \"$cmd\" on node(s) \"$nodespec\"" - echo "$out" + cat "$outfile" return 1 - } + fi if $verbose ; then echo "Output of \"$cmd\":" - echo "$out" + cat "$outfile" fi } @@ -108,11 +124,10 @@ sanity_check_output () { local min_lines="$1" local regexp="$2" # Should be anchored as necessary. - local output="$3" local ret=0 - local num_lines=$(echo "$output" | wc -l) + local num_lines=$(wc -l <"$outfile") echo "There are $num_lines lines of output" if [ $num_lines -lt $min_lines ] ; then echo "BAD: that's less than the required number (${min_lines})" @@ -121,7 +136,7 @@ sanity_check_output () local status=0 local unexpected # local doesn't pass through status of command on RHS. - unexpected=$(echo "$output" | egrep -v "$regexp") || status=$? + unexpected=$(grep -Ev "$regexp" "$outfile") || status=$? # Note that this is reversed. if [ $status -eq 0 ] ; then @@ -135,30 +150,7 @@ sanity_check_output () return $ret } -sanity_check_ips () -{ - local ips="$1" # list of "ip node" lines - - echo "Sanity checking IPs..." - - local x ipp prev - prev="" - while read x ipp ; do - [ "$ipp" = "-1" ] && break - if [ -n "$prev" -a "$ipp" != "$prev" ] ; then - echo "OK" - return 0 - fi - prev="$ipp" - done <<<"$ips" - - echo "BAD: a node was -1 or IPs are only assigned to one node:" - echo "$ips" - echo "Are you running an old version of CTDB?" - return 1 -} - -# This returns a list of "ip node" lines in $out +# This returns a list of "ip node" lines in $outfile all_ips_on_node() { local node="$1" @@ -179,9 +171,9 @@ _select_test_node_and_ips () -- Samba Shared Repository