[SCM] CTDB repository - branch master updated - ctdb-1.0.114-302-gf8642d0

Ronnie Sahlberg sahlberg at samba.org
Thu Sep 2 20:01:13 MDT 2010


The branch, master has been updated
       via  f8642d0438c6bbb34a72c25d6a904b626e247410 (commit)
       via  b5169e037fe113a5b62f510646b8fefc055c053b (commit)
      from  96cbd2c0aa9a4641a42b3c33374675fa732ed1e5 (commit)

http://gitweb.samba.org/?p=sahlberg/ctdb.git;a=shortlog;h=master


- Log -----------------------------------------------------------------
commit f8642d0438c6bbb34a72c25d6a904b626e247410
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Fri Sep 3 11:58:27 2010 +1000

    When memory allocations for recovery fails,
    dont dereference a null pointer while trying to print the log message for the failure.
    
    also shutdown ctdb with ctdb_fatal()

commit b5169e037fe113a5b62f510646b8fefc055c053b
Author: Harald Klatte <klatte at hrz.uni-kassel.de>
Date:   Mon Aug 30 10:40:43 2010 +0200

    AIX bind wants the correct addrsize

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

Summary of changes:
 common/system_common.c |    5 ++++-
 server/ctdb_recover.c  |    6 ++----
 2 files changed, 6 insertions(+), 5 deletions(-)


Changeset truncated at 500 lines:

diff --git a/common/system_common.c b/common/system_common.c
index 9aa4620..f28045f 100644
--- a/common/system_common.c
+++ b/common/system_common.c
@@ -50,13 +50,16 @@ bool ctdb_sys_have_ip(ctdb_sock_addr *_addr)
 	int ret;
 	ctdb_sock_addr __addr = *_addr;
 	ctdb_sock_addr *addr = &__addr;
+	socklen_t addrlen;
 
 	switch (addr->sa.sa_family) {
 	case AF_INET:
 		addr->ip.sin_port = 0;
+		addrlen = sizeof(struct sockaddr_in);
 		break;
 	case AF_INET6:
 		addr->ip6.sin6_port = 0;
+		addrlen = sizeof(struct sockaddr_in6);
 		break;
 	}
 
@@ -65,7 +68,7 @@ bool ctdb_sys_have_ip(ctdb_sock_addr *_addr)
 		return false;
 	}
 
-	ret = bind(s, (struct sockaddr *)addr, sizeof(ctdb_sock_addr));
+	ret = bind(s, (struct sockaddr *)addr, addrlen);
 
 	close(s);
 	return ret == 0;
diff --git a/server/ctdb_recover.c b/server/ctdb_recover.c
index e1c7b16..81e2d4b 100644
--- a/server/ctdb_recover.c
+++ b/server/ctdb_recover.c
@@ -340,10 +340,8 @@ static int traverse_pulldb(struct tdb_context *tdb, TDB_DATA key, TDB_DATA data,
 	}
 	params->pulldata = talloc_realloc_size(NULL, params->pulldata, rec->length + params->len);
 	if (params->pulldata == NULL) {
-		DEBUG(DEBUG_ERR,(__location__ " Failed to expand pulldb_data to %u (%u records)\n", 
-			 rec->length + params->len, params->pulldata->count));
-		params->failed = true;
-		return -1;
+		DEBUG(DEBUG_CRIT,(__location__ " Failed to expand pulldb_data to %u\n", rec->length + params->len));
+		ctdb_fatal(params->ctdb, "failed to allocate memory for recovery. shutting down\n");
 	}
 	params->pulldata->count++;
 	memcpy(params->len+(uint8_t *)params->pulldata, rec, rec->length);


-- 
CTDB repository


More information about the samba-cvs mailing list