[Bug fortran/91537] New: Memory leak involving nested allocatable derived types
townsend at astro dot wisc.edu
gcc-bugzilla@gcc.gnu.org
Sat Aug 24 04:58:00 GMT 2019
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91537
Bug ID: 91537
Summary: Memory leak involving nested allocatable derived types
Product: gcc
Version: 8.3.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: fortran
Assignee: unassigned at gcc dot gnu.org
Reporter: townsend at astro dot wisc.edu
Target Milestone: ---
Created attachment 46748
--> https://gcc.gnu.org/bugzilla/attachment.cgi?id=46748&action=edit
Leak demonstration program
The attached test program demonstrates a memory leak on gfortran 8.3.0.
Intriguingly, valgrind reports no leak; but the memory usage grows steadily
over time, even though only ALLOCATABLE arrays are used. By the end of
execution, 4GB is being used.
To demonstrate the memory growth, I use the routine system_mem_usage, which
looks at files inside /proc to find the current RSS. Of course, this only works
on Linux -- for those on other platforms, you may have to comment out (or
rework) the call.
Typical output is as follows (from ./test_leak_new | tail -10):
91 3682816
92 3722680
93 3762808
94 3802672
95 3842800
96 3882664
97 3922792
98 3962656
99 4002784
100 4042648
The first number is the iteration number, the second is the RSS. So, 4GB by the
end of execution, despite the fact that bp is explicitly deallocated at the end
of each loop.
The test program may seem a little contrived, but it's a cut-down version of
production code (which shows the same valgrind-invisible leak behavior).
cheers,
Rich
More information about the Gcc-bugs
mailing list