[Tile-serving] [openstreetmap/osm2pgsql] -fsanitize=address reported memory leaks (#729)

Paul Norman notifications at github.com
Sat Mar 25 11:12:22 UTC 2017


with `./osm2pgsql -d osm2pgsql_test -S ../default.style ../tests/liechtenstein-2013-08-03.osm.pbf`

```
Direct leak of 57344 byte(s) in 7 object(s) allocated from:                                                                                                                                            [205/1878]
    #0 0x7f16b091dbf0 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.3+0xc2bf0)                                                                                                                #1 0x564ecd221220 in elem_cache_t<middle_ram_t::ramWay, 10ul>::set(long, middle_ram_t::ramWay*) /home/pnorman/osm/osm2pgsql/middle-ram.hpp:58
    #2 0x564ecd21f0f0 in middle_ram_t::ways_set(osmium::Way const&) /home/pnorman/osm/osm2pgsql/middle-ram.cpp:43
    #3 0x564ecd155e74 in osmdata_t::way_add(osmium::Way*) /home/pnorman/osm/osm2pgsql/osmdata.cpp:50                                                                                                                 #4 0x564ecd194a9f in parse_osmium_t::way(osmium::Way&) /home/pnorman/osm/osm2pgsql/parse-osmium.cpp:168
    #5 0x564ecd1e7a77 in void osmium::detail::apply_item_impl<parse_osmium_t&, osmium::memory::Item>(osmium::memory::Item&, parse_osmium_t&) /home/pnorman/osm/osm2pgsql/contrib/libosmium/osmium/visitor.hpp:64
    #6 0x564ecd1e1b8d in void osmium::apply_item<osmium::memory::Item, parse_osmium_t&>(osmium::memory::Item&, parse_osmium_t&) /home/pnorman/osm/osm2pgsql/contrib/libosmium/osmium/visitor.hpp:206
    #7 0x564ecd1d944c in void osmium::apply<osmium::io::InputIterator<osmium::io::Reader, osmium::memory::Item>, parse_osmium_t&>(osmium::io::InputIterator<osmium::io::Reader, osmium::memory::Item>, osmium::io
::InputIterator<osmium::io::Reader, osmium::memory::Item>, parse_osmium_t&) /home/pnorman/osm/osm2pgsql/contrib/libosmium/osmium/visitor.hpp:220
    #8 0x564ecd1cfa20 in void osmium::apply<osmium::io::Reader, parse_osmium_t&>(osmium::io::Reader&, parse_osmium_t&) /home/pnorman/osm/osm2pgsql/contrib/libosmium/osmium/visitor.hpp:227
    #9 0x564ecd194607 in parse_osmium_t::stream_file(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::alloca
tor<char> > const&) /home/pnorman/osm/osm2pgsql/parse-osmium.cpp:128
    #10 0x564ecd139e37 in main /home/pnorman/osm/osm2pgsql/osm2pgsql.cpp:86
    #11 0x7f16ae4d82b0 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x202b0)
```

```
Direct leak of 8192 byte(s) in 1 object(s) allocated from:
    #0 0x7f16b091dbf0 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.3+0xc2bf0)
    #1 0x564ecd2214a6 in elem_cache_t<middle_ram_t::ramRel, 10ul>::set(long, middle_ram_t::ramRel*) /home/pnorman/osm/osm2pgsql/middle-ram.hpp:58
    #2 0x564ecd21f1d0 in middle_ram_t::relations_set(osmium::Relation const&) /home/pnorman/osm/osm2pgsql/middle-ram.cpp:48
    #3 0x564ecd155fc2 in osmdata_t::relation_add(osmium::Relation const&) /home/pnorman/osm/osm2pgsql/osmdata.cpp:61
    #4 0x564ecd194c00 in parse_osmium_t::relation(osmium::Relation const&) /home/pnorman/osm/osm2pgsql/parse-osmium.cpp:185
    #5 0x564ecd1e7ab8 in void osmium::detail::apply_item_impl<parse_osmium_t&, osmium::memory::Item>(osmium::memory::Item&, parse_osmium_t&) /home/pnorman/osm/osm2pgsql/contrib/libosmium/osmium/visitor.hpp:68
    #6 0x564ecd1e1b8d in void osmium::apply_item<osmium::memory::Item, parse_osmium_t&>(osmium::memory::Item&, parse_osmium_t&) /home/pnorman/osm/osm2pgsql/contrib/libosmium/osmium/visitor.hpp:206
    #7 0x564ecd1d944c in void osmium::apply<osmium::io::InputIterator<osmium::io::Reader, osmium::memory::Item>, parse_osmium_t&>(osmium::io::InputIterator<osmium::io::Reader, osmium::memory::Item>, osmium::io
::InputIterator<osmium::io::Reader, osmium::memory::Item>, parse_osmium_t&) /home/pnorman/osm/osm2pgsql/contrib/libosmium/osmium/visitor.hpp:220
    #8 0x564ecd1cfa20 in void osmium::apply<osmium::io::Reader, parse_osmium_t&>(osmium::io::Reader&, parse_osmium_t&) /home/pnorman/osm/osm2pgsql/contrib/libosmium/osmium/visitor.hpp:227
    #9 0x564ecd194607 in parse_osmium_t::stream_file(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::alloca
tor<char> > const&) /home/pnorman/osm/osm2pgsql/parse-osmium.cpp:128
    #10 0x564ecd139e37 in main /home/pnorman/osm/osm2pgsql/osm2pgsql.cpp:86
    #11 0x7f16ae4d82b0 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x202b0)
```

... indirect leaks ...

SUMMARY: AddressSanitizer: 2976250 byte(s) leaked in 22941 allocation(s).

I didn't list the indirect leaks because there's a bunch and the advice out there is to fix the direct ones first, which will cause many of the indirects to go away.

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/openstreetmap/osm2pgsql/issues/729
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openstreetmap.org/pipermail/tile-serving/attachments/20170325/427f16ac/attachment.html>


More information about the Tile-serving mailing list