Opened 4 years ago
Closed 4 years ago
#24660 closed defect (fixed)
Memory leak in SubgraphSearch
Reported by: | Konrad127123 | Owned by: | |
---|---|---|---|
Priority: | major | Milestone: | sage-8.2 |
Component: | graph theory | Keywords: | memory leak, SubgraphSearch |
Cc: | Merged in: | ||
Authors: | Konrad K. Dabrowski | Reviewers: | David Coudert |
Report Upstream: | N/A | Work issues: | |
Branch: | 77b8490 (Commits, GitHub, GitLab) | Commit: | 77b84909751cc78971a686854266b8b371415dc9 |
Dependencies: | Stopgaps: |
Description (last modified by )
In SubgraphSearch? in generic_graph_pyx.pyx
cinit contains the line: self.tmp_array = <int *> sig_malloc(self.ng * sizeof(int))
but dealloc is missing the line: sig_free(self.tmp_array)
This leads to a memory leak, which can be demonstrated with:
g=graphs.PathGraph(4) f=graphs.CycleGraph(4) for i in xrange(1,1000000): g.subgraph_search(f,induced=True) if i%10000==0: print(sage.misc.getusage.linux_memory_usage())
Currently, the memory usage keeps increasing (about 32 bytes per iteration of the loop). With the line added, the memory usage is constant.
Change History (6)
comment:1 Changed 4 years ago by
- Component changed from PLEASE CHANGE to memleak
- Description modified (diff)
- Keywords memory leak SubgraphSearch added
- Type changed from PLEASE CHANGE to defect
comment:2 Changed 4 years ago by
- Branch set to u/Konrad127123/memory_leak_in_subgraphsearch
comment:3 Changed 4 years ago by
- Commit set to 77b84909751cc78971a686854266b8b371415dc9
- Description modified (diff)
- Status changed from new to needs_review
comment:4 Changed 4 years ago by
- Component changed from memleak to graph theory
comment:5 Changed 4 years ago by
- Reviewers set to David Coudert
- Status changed from needs_review to positive_review
Right. Thanks.
That's a typical example in which the memory allocator of sage.ext.memory_allocator.pxd
could ease our life. See examples in src/sage/graphs/mcqd.pyx
and src/sage/graphs/distances_all_pairs.pyx
and src/sage/graphs/centrality.pyx
and src/sage/graphs/base/static_sparse_graph.pyx
. But your fix is OK.
comment:6 Changed 4 years ago by
- Branch changed from u/Konrad127123/memory_leak_in_subgraphsearch to 77b84909751cc78971a686854266b8b371415dc9
- Resolution set to fixed
- Status changed from positive_review to closed
New commits:
Add missing free in SubgraphSearch.