[geos-devel] [GEOS] #923: Memory leak in GEOSNode

GEOS geos-trac at osgeo.org
Wed Sep 19 17:58:59 PDT 2018


#923: Memory leak in GEOSNode
-------------------------+---------------------------
 Reporter:  Algunenano   |       Owner:  geos-devel@…
     Type:  defect       |      Status:  new
 Priority:  major        |   Milestone:  3.8.0
Component:  Default      |     Version:  master
 Severity:  Significant  |  Resolution:
 Keywords:               |
-------------------------+---------------------------

Comment (by cvvergara):

 on master:

 {{{
 git checkout upstream/master
 M       .editorconfig
 M       CMakeLists.txt
 M       tests/CMakeLists.txt
 A       tests/issue923/CMakeLists.txt
 A       tests/issue923/Makefile.am
 A       tests/issue923/geos_leak.c
 HEAD is now at f7867f9... Merge branch 'no-exception-pointers'
 $  make -j 2 && time ctest -T memcheck
 [  0%] Built target geos_revision
 [ 38%] Built target geos
 [ 39%] Built target geos_c
 [ 41%] Built target test_xmltester
 [ 80%] Built target geos-static
 [ 80%] Built target test_simplewkttester
 [ 80%] Built target test_sweep_line_speed
 [ 80%] Built target test_bug234
 [ 80%] Built target perf_class_sizes
 [ 81%] Built target perf_iterated_buffer
 [ 81%] Built target perf_rectangle_intersects
 [ 81%] Built target perf_geos_leak
 [ 81%] Built target perf_memleak_mp_prep
 [100%] Built target test_geos_unit
    Site: vicky-desktop
    Build name: Linux-c++
 Memory check project /home/vicky/geos/vicky/build
     Start 1: test_geos_unit
 1/9 MemCheck #1: test_geos_unit ...................   Passed   27.28 sec
     Start 2: test_xmltester
 2/9 MemCheck #2: test_xmltester ...................   Passed  415.55 sec
     Start 3: test_bug234
 3/9 MemCheck #3: test_bug234 ......................   Passed    1.58 sec
     Start 4: test_sweep_line_speed
 4/9 MemCheck #4: test_sweep_line_speed ............   Passed   56.95 sec
     Start 5: perf_class_sizes
 5/9 MemCheck #5: perf_class_sizes .................   Passed    0.52 sec
     Start 6: perf_iterated_buffer
 6/9 MemCheck #6: perf_iterated_buffer .............   Passed  786.23 sec
     Start 7: perf_rectangle_intersects
 7/9 MemCheck #7: perf_rectangle_intersects ........   Passed   21.77 sec
     Start 8: perf_memleak_mp_prep
 8/9 MemCheck #8: perf_memleak_mp_prep .............   Passed  706.61 sec
     Start 9: perf_geos_leak
 9/9 MemCheck #9: perf_geos_leak ...................   Passed    1.02 sec

 100% tests passed, 0 tests failed out of 9

 Total Test time (real) = 2017.52 sec
 -- Processing memory checking output: ########
 Memory checking results:
 Memory Leak - 73
 Potential Memory Leak - 24

 real    33m37.631s
 user    33m16.057s
 sys     0m4.542s
 }}}

 in particular:

 {{{
 $ make -j 2 && ctest -T memcheck -R perf_geos_leak
 [  0%] Built target geos_revision
 [ 38%] Built target geos
 [ 39%] Built target geos_c
 [ 41%] Built target test_xmltester
 [ 41%] Built target test_simplewkttester
 [ 80%] Built target geos-static
 [ 80%] Built target test_sweep_line_speed
 [ 80%] Built target test_bug234
 [ 80%] Built target perf_class_sizes
 [ 81%] Built target perf_iterated_buffer
 [ 81%] Built target perf_rectangle_intersects
 [ 81%] Built target perf_memleak_mp_prep
 [ 81%] Built target perf_geos_leak
 [100%] Built target test_geos_unit
    Site: vicky-desktop
    Build name: Linux-c++
 Memory check project /home/vicky/geos/vicky/build
     Start 9: perf_geos_leak
 1/1 MemCheck #9: perf_geos_leak ...................   Passed    1.05 sec

 100% tests passed, 0 tests failed out of 1

 Total Test time (real) =   1.05 sec
 -- Processing memory checking output:
 Memory checking results:
 Memory Leak - 1
 Potential Memory Leak - 3
 }}}

 3.7.0
 {{{
 Memory Leak - 69
 Potential Memory Leak - 23
 }}}

 3.8.0-dev
 {{{
 Memory Leak - 73
 Potential Memory Leak - 24
 }}}

 Now that I have a test that I can run to catch memory leaks with valgrind,
 I can proceed to test my  commits, one by one to see which of the 16
 commits that I had to squash added leaks.

-- 
Ticket URL: <https://trac.osgeo.org/geos/ticket/923#comment:13>
GEOS <http://trac.osgeo.org/geos>
GEOS (Geometry Engine - Open Source) is a C++ port of the Java Topology Suite (JTS).


More information about the geos-devel mailing list