diff options
author | Jeff Darcy <jdarcy@redhat.com> | 2014-03-25 18:37:16 +0000 |
---|---|---|
committer | Jeff Darcy <jdarcy@redhat.com> | 2014-04-22 14:33:31 +0000 |
commit | 90366df60fa3b9b2915a4a8d804c2e95ae1948e7 (patch) | |
tree | cd75a682bcfb5b83d7d476551b748a6d0af1556b /xlators/cluster/nsr-recon/src/recon_xlator.c | |
parent | 66909ef9da737371395e63fd2557f118f6672446 (diff) |
nsr: fix more reconciliation resource leaks
Also fixed GF_CALLOC calls to use proper memory types instead of
always gf_mt_recon_private_t, so we that we can use state dumps
to see what's leaking. This in turn required solving some very
"interesting" problems to do with xlator/GFAPI mixing and THIS
(which is used within GF_CALLOC).
Change-Id: I3f928c9ac89600649bb3934664a3c4f6c43937e5
Signed-off-by: Jeff Darcy <jdarcy@redhat.com>
Diffstat (limited to 'xlators/cluster/nsr-recon/src/recon_xlator.c')
-rw-r--r-- | xlators/cluster/nsr-recon/src/recon_xlator.c | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/xlators/cluster/nsr-recon/src/recon_xlator.c b/xlators/cluster/nsr-recon/src/recon_xlator.c index da389fccf..ffbf74296 100644 --- a/xlators/cluster/nsr-recon/src/recon_xlator.c +++ b/xlators/cluster/nsr-recon/src/recon_xlator.c @@ -300,7 +300,8 @@ gf_boolean_t nsr_recon_libchangelog_get_records(xlator_t *this, char *bp, int32_ "libchangelog_get_records called for term %d index from %d to %d \n", term, first, last ); - orig = rb = GF_CALLOC(128, ((last - first) + 1), gf_mt_recon_private_t); + orig = rb = GF_CALLOC(128, ((last - first) + 1), + gf_mt_recon_changelog_buf_t); sprintf(path,"%s/%s%d",bp,"TERM.",term); fd = open(path, O_RDONLY); @@ -558,7 +559,7 @@ nsr_recon_open (call_frame_t *frame, xlator_t *this, nsr_recon_fd_t *rfd = NULL; recon_main_log (this->name, GF_LOG_INFO, "nsr_recon_open called for path %s \n",loc->path ); - rfd = GF_CALLOC (1, sizeof (*rfd), gf_mt_recon_private_t); + rfd = GF_CALLOC (1, sizeof (*rfd), gf_mt_recon_fd_t); if (!rfd) { op_ret = -1; op_errno = ENOMEM; @@ -896,10 +897,10 @@ init (xlator_t *this) priv->replica_group_members = GF_CALLOC (priv->replica_group_size, sizeof(char *), - gf_mt_recon_private_t); + gf_mt_recon_members_list_t); priv->replica_group_members[0] = GF_CALLOC (1, strlen(local), - gf_mt_recon_private_t); + gf_mt_recon_member_name_t); if (!priv->replica_group_members || !(priv->replica_group_members[0])) { gf_log (this->name, GF_LOG_ERROR, "str allocation error\n"); @@ -912,7 +913,8 @@ init (xlator_t *this) member = strtok(members, ","); else member = strtok(NULL, ","); - priv->replica_group_members[i] = GF_CALLOC (1, strlen(member) + 1, gf_mt_recon_private_t); + priv->replica_group_members[i] = GF_CALLOC (1, + strlen(member) + 1, gf_mt_recon_member_name_t); if (!priv->replica_group_members[i]) { gf_log (this->name, GF_LOG_ERROR, "str allocation error\n"); |