diff --git a/pyslurm/core/job/stats.pyx b/pyslurm/core/job/stats.pyx index 0fa2eb13..13ce7a1c 100644 --- a/pyslurm/core/job/stats.pyx +++ b/pyslurm/core/job/stats.pyx @@ -70,6 +70,7 @@ cdef load_single(JobStep step): else: verify_rpc(rc) + memset(&locks, 0, sizeof(assoc_mgr_lock_t)) memset(&db_step, 0, sizeof(slurmdb_step_rec_t)) memset(&db_step.stats, 0, sizeof(slurmdb_stats_t)) diff --git a/pyslurm/core/job/step.pyx b/pyslurm/core/job/step.pyx index 160db719..719257eb 100644 --- a/pyslurm/core/job/step.pyx +++ b/pyslurm/core/job/step.pyx @@ -190,6 +190,9 @@ cdef class JobStep: def _dealloc_impl(self): slurm_free_job_step_info_members(self.ptr) + # Bug in slurm_free_job_step_info_members - submit_line is not freed + # there. + xfree(self.ptr.submit_line) xfree(self.ptr) slurm_free_update_step_msg(self.umsg) self.umsg = NULL diff --git a/valgrind-pyslurm.supp b/valgrind-pyslurm.supp index d7243f44..bda85a8e 100644 --- a/valgrind-pyslurm.supp +++ b/valgrind-pyslurm.supp @@ -33,6 +33,15 @@ ... } +{ + Slurm topology_g_init + Memcheck:Leak + match-leak-kinds: possible + ... + fun:topology_g_init + ... +} + { Slurm slurm_auth_init Memcheck:Leak @@ -43,11 +52,19 @@ } { - Slurm slurm_conf_init/slurm_init + Slurm slurm_conf_init Memcheck:Leak match-leak-kinds: possible ... fun:slurm_conf_init + ... +} + +{ + Slurm slurm_init + Memcheck:Leak + match-leak-kinds: possible + ... fun:slurm_init ... }