[SCM] CTDB repository - branch 1.0.56 updated - 25000c39a9013bf60c6a8a0396c168df14365adb

Ronnie Sahlberg sahlberg at samba.org
Tue Sep 16 02:26:31 GMT 2008


The branch, 1.0.56 has been updated
       via  25000c39a9013bf60c6a8a0396c168df14365adb (commit)
       via  2e2ff96ef5508fabc1c22b9c37944a0b707ba809 (commit)
       via  34d823cf6b8c728249d3de378659e6f678cde275 (commit)
       via  960c18d318194afcf847b84e16899c1db385ccec (commit)
       via  2bac955be1f81d692a448769eb375b768a57c0f6 (commit)
      from  196973fef38a9b258e0976d5454161d11d573ddc (commit)

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


- Log -----------------------------------------------------------------
commit 25000c39a9013bf60c6a8a0396c168df14365adb
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Tue Sep 16 12:20:17 2008 +1000

    Cant use '-' in the release version. switch to '_'

commit 2e2ff96ef5508fabc1c22b9c37944a0b707ba809
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Tue Sep 16 12:16:01 2008 +1000

    New version 1.0.56-1
    
    This relases fixes three memory leaks from the 1.0.56 release.

commit 34d823cf6b8c728249d3de378659e6f678cde275
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Tue Sep 16 09:00:48 2008 +1000

    fix a slow memory leak in the recovery daemon in the error paths for the
    memdump function
    (cherry picked from commit 5e641ef9d6cca286061138a9680dcf2495736e8b)

commit 960c18d318194afcf847b84e16899c1db385ccec
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Tue Sep 16 07:55:57 2008 +1000

    fix some slow memory leaks in the vacuuming handler in the recovery
    daemon
    (cherry picked from commit 95bf36559d62f29e6f538f3a173b504ef3258341)

commit 2bac955be1f81d692a448769eb375b768a57c0f6
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Tue Sep 16 06:50:28 2008 +1000

    From Volker L
    Fix a slow memory leak in the recovery daemon if there is a recoery
    triggered during the public ip reassignment process
    (cherry picked from commit 0aca4daf908b76d6013ff3dfad41beb9114fc1a3)

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

Summary of changes:
 packaging/RPM/ctdb.spec |    4 +++-
 server/ctdb_recoverd.c  |   10 ++++++++++
 2 files changed, 13 insertions(+), 1 deletions(-)


Changeset truncated at 500 lines:

diff --git a/packaging/RPM/ctdb.spec b/packaging/RPM/ctdb.spec
index 93b9d3f..6c6d8d3 100644
--- a/packaging/RPM/ctdb.spec
+++ b/packaging/RPM/ctdb.spec
@@ -5,7 +5,7 @@ Vendor: Samba Team
 Packager: Samba Team <samba at samba.org>
 Name: ctdb
 Version: 1.0
-Release: 56
+Release: 56_1
 Epoch: 0
 License: GNU GPL version 3
 Group: System Environment/Daemons
@@ -118,6 +118,8 @@ fi
 %{_includedir}/ctdb_private.h
 
 %changelog
+* Tue Sep 16 2008 : Version 1.0.56-1
+ - backported fixes for three memory leaks from HEAD
 * Mon Aug 11 2008 : Version 1.0.56
  - fix a memory leak in the recovery daemon.
 * Mon Aug 11 2008 : Version 1.0.55
diff --git a/server/ctdb_recoverd.c b/server/ctdb_recoverd.c
index c503aa5..b1bab7a 100644
--- a/server/ctdb_recoverd.c
+++ b/server/ctdb_recoverd.c
@@ -880,6 +880,7 @@ static void vacuum_fetch_handler(struct ctdb_context *ctdb, uint64_t srvid,
 	r = (struct ctdb_rec_data *)&recs->data[0];
 
 	if (recs->count == 0) {
+		talloc_free(tmp_ctx);
 		return;
 	}
 
@@ -888,6 +889,7 @@ static void vacuum_fetch_handler(struct ctdb_context *ctdb, uint64_t srvid,
 	for (v=rec->vacuum_info;v;v=v->next) {
 		if (srcnode == v->srcnode && recs->db_id == v->ctdb_db->db_id) {
 			/* we're already working on records from this node */
+			talloc_free(tmp_ctx);
 			return;
 		}
 	}
@@ -930,6 +932,7 @@ static void vacuum_fetch_handler(struct ctdb_context *ctdb, uint64_t srvid,
 	v = talloc_zero(rec, struct vacuum_info);
 	if (v == NULL) {
 		DEBUG(DEBUG_CRIT,(__location__ " Out of memory\n"));
+		talloc_free(tmp_ctx);
 		return;
 	}
 
@@ -940,6 +943,7 @@ static void vacuum_fetch_handler(struct ctdb_context *ctdb, uint64_t srvid,
 	if (v->recs == NULL) {
 		DEBUG(DEBUG_CRIT,(__location__ " Out of memory\n"));
 		talloc_free(v);
+		talloc_free(tmp_ctx);
 		return;		
 	}
 	v->r = 	(struct ctdb_rec_data *)&v->recs->data[0];
@@ -949,6 +953,7 @@ static void vacuum_fetch_handler(struct ctdb_context *ctdb, uint64_t srvid,
 	talloc_set_destructor(v, vacuum_info_destructor);
 
 	vacuum_fetch_next(v);
+	talloc_free(tmp_ctx);
 }
 
 
@@ -1748,6 +1753,7 @@ static void mem_dump_handler(struct ctdb_context *ctdb, uint64_t srvid,
 
 	if (data.dsize != sizeof(struct rd_memdump_reply)) {
 		DEBUG(DEBUG_ERR, (__location__ " Wrong size of return address.\n"));
+		talloc_free(tmp_ctx);
 		return;
 	}
 	rd = (struct rd_memdump_reply *)data.dptr;
@@ -1770,6 +1776,7 @@ DEBUG(DEBUG_ERR, ("recovery master memory dump\n"));
 	ret = ctdb_send_message(ctdb, rd->pnn, rd->srvid, *dump);
 	if (ret != 0) {
 		DEBUG(DEBUG_ERR,("Failed to send rd memdump reply message\n"));
+		talloc_free(tmp_ctx);
 		return;
 	}
 
@@ -2181,6 +2188,7 @@ static int verify_ip_allocation(struct ctdb_context *ctdb, uint32_t pnn)
 	if (timeval_compare(&uptime1->last_recovery_started,
 			    &uptime2->last_recovery_started) != 0) {
 		DEBUG(DEBUG_NOTICE, (__location__ " last recovery time changed while we read the public ip list. skipping public ip address check\n"));
+		talloc_free(mem_ctx);
 		return 0;
 	}
 
@@ -2188,6 +2196,7 @@ static int verify_ip_allocation(struct ctdb_context *ctdb, uint32_t pnn)
 	if (timeval_compare(&uptime1->last_recovery_finished,
 			    &uptime2->last_recovery_finished) != 0) {
 		DEBUG(DEBUG_NOTICE, (__location__ " last recovery time changed while we read the public ip list. skipping public ip address check\n"));
+		talloc_free(mem_ctx);
 		return 0;
 	}
 
@@ -2195,6 +2204,7 @@ static int verify_ip_allocation(struct ctdb_context *ctdb, uint32_t pnn)
 	if (timeval_compare(&uptime1->last_recovery_finished,
 			    &uptime1->last_recovery_started) != 1) {
 		DEBUG(DEBUG_NOTICE, (__location__ " in the middle of recovery. skipping public ip address check\n"));
+		talloc_free(mem_ctx);
 
 		return 0;
 	}


-- 
CTDB repository


More information about the samba-cvs mailing list