[SCM] Samba Shared Repository - branch master updated

Martin Schwenke martins at samba.org
Mon Jan 22 10:12:02 UTC 2018


The branch, master has been updated
       via  9daf40c talloc: Fix documentation typo
       via  33c0f55 ctdb-tests: Avoid race condition in sock_daemon test 5
      from  ac9d528 docs: Remove prog_guide4.txt

https://git.samba.org/?p=samba.git;a=shortlog;h=master


- Log -----------------------------------------------------------------
commit 9daf40c55af61081abca663c7250f103d5b2a0df
Author: Martin Schwenke <martin at meltin.net>
Date:   Thu Jan 18 16:08:15 2018 +1100

    talloc: Fix documentation typo
    
    Signed-off-by: Martin Schwenke <martin at meltin.net>
    Reviewed-by: Amitay Isaacs <amitay at gmail.com>
    
    Autobuild-User(master): Martin Schwenke <martins at samba.org>
    Autobuild-Date(master): Mon Jan 22 11:11:38 CET 2018 on sn-devel-144

commit 33c0f5599d93a34619c8f37945f79a6e399a1b5e
Author: Amitay Isaacs <amitay at gmail.com>
Date:   Mon Jan 22 12:54:49 2018 +1100

    ctdb-tests: Avoid race condition in sock_daemon test 5
    
    This test fails when it takes more than 10s to run.  This can occur
    when the system is loaded and socket-wrapper is used.
    
    Signed-off-by: Amitay Isaacs <amitay at gmail.com>
    Reviewed-by: Martin Schwenke <martin at meltin.net>

-----------------------------------------------------------------------

Summary of changes:
 ctdb/tests/src/sock_daemon_test.c | 26 +++++++++++++++++---------
 lib/talloc/talloc.h               |  2 +-
 2 files changed, 18 insertions(+), 10 deletions(-)


Changeset truncated at 500 lines:

diff --git a/ctdb/tests/src/sock_daemon_test.c b/ctdb/tests/src/sock_daemon_test.c
index 5641d37..ebc0b85 100644
--- a/ctdb/tests/src/sock_daemon_test.c
+++ b/ctdb/tests/src/sock_daemon_test.c
@@ -668,7 +668,8 @@ static void test4(TALLOC_CTX *mem_ctx, const char *pidfile,
  * Start daemon, multiple client connects, requests, disconnects
  */
 
-#define TEST5_MAX_CLIENTS	10
+#define TEST5_VALID_CLIENTS	10
+#define TEST5_MAX_CLIENTS	100
 
 struct test5_pkt {
 	uint32_t len;
@@ -710,7 +711,8 @@ static void test5_client_callback(uint8_t *buf, size_t buflen,
 	state->done = true;
 }
 
-static int test5_client(const char *sockpath, int id)
+static int test5_client(const char *sockpath, int id, pid_t pid_server,
+			pid_t *client_pid)
 {
 	pid_t pid;
 	int fd[2];
@@ -760,7 +762,9 @@ static int test5_client(const char *sockpath, int id)
 		close(fd[0]);
 		state.fd = -1;
 
-		sleep(10);
+		while (kill(pid_server, 0) == 0 || errno != ESRCH) {
+			sleep(1);
+		}
 		exit(0);
 	}
 
@@ -775,6 +779,7 @@ static int test5_client(const char *sockpath, int id)
 
 	close(fd[0]);
 
+	*client_pid = pid;
 	return ret;
 }
 
@@ -788,12 +793,12 @@ static bool test5_connect(struct sock_client_context *client,
 	struct test5_server_state *state =
 		(struct test5_server_state *)private_data;
 
-	if (state->num_clients == TEST5_MAX_CLIENTS) {
+	if (state->num_clients == TEST5_VALID_CLIENTS) {
 		return false;
 	}
 
 	state->num_clients += 1;
-	assert(state->num_clients <= TEST5_MAX_CLIENTS);
+	assert(state->num_clients <= TEST5_VALID_CLIENTS);
 	return true;
 }
 
@@ -925,6 +930,7 @@ static void test5(TALLOC_CTX *mem_ctx, const char *pidfile,
 	pid_t pid_server, pid;
 	int fd[2], ret, i;
 	ssize_t n;
+	pid_t client_pid[TEST5_MAX_CLIENTS];
 
 	pid = getpid();
 
@@ -968,16 +974,18 @@ static void test5(TALLOC_CTX *mem_ctx, const char *pidfile,
 
 	close(fd[0]);
 
-	for (i=0; i<100; i++) {
-		ret = test5_client(sockpath, i);
-		if (i < TEST5_MAX_CLIENTS) {
+	for (i=0; i<TEST5_MAX_CLIENTS; i++) {
+		ret = test5_client(sockpath, i, pid_server, &client_pid[i]);
+		if (i < TEST5_VALID_CLIENTS) {
 			assert(ret == i+1);
 		} else {
 			assert(ret == 0);
 		}
 	}
 
-	for (i=0; i<100; i++) {
+	for (i=TEST5_MAX_CLIENTS-1; i>=0; i--) {
+		kill(client_pid[i], SIGKILL);
+
 		pid = wait(&ret);
 		assert(pid != -1);
 	}
diff --git a/lib/talloc/talloc.h b/lib/talloc/talloc.h
index 618430a..dda308d 100644
--- a/lib/talloc/talloc.h
+++ b/lib/talloc/talloc.h
@@ -1226,7 +1226,7 @@ size_t talloc_array_length(const void *ctx);
  *
  * @code
  *     ptr = talloc_array(ctx, type, count);
- *     if (ptr) memset(ptr, sizeof(type) * count);
+ *     if (ptr) memset(ptr, 0, sizeof(type) * count);
  * @endcode
  */
 void *talloc_zero_array(const void *ctx, #type, unsigned count);


-- 
Samba Shared Repository



More information about the samba-cvs mailing list