[Tile-serving] [openstreetmap/mod_tile] Examine memory usage for potential leaks (Issue #445)
Roland Bosa
notifications at github.com
Tue Jul 2 14:34:40 UTC 2024
@hummeltech I [rewrote](https://github.com/openstreetmap/mod_tile/commit/a0a6586a7a35a14606542dcf070a2e40e66a605c?diff=unified&w=1) the shutdown code a little and hooked it into the signal handler. I have only done minimal testing on this, but feel free to take a look at "[the good parts](https://github.com/openstreetmap/mod_tile/compare/master...rolandbosa:mod_tile:clean_shutdown)".
I do get a message from `jemalloc` about leaks now, but I don't recognize any of the symbols:
```
...
** INFO: 13:19:04.695: Render thread 7/8 exited.
** INFO: 13:19:04.695: Destroying request queue...
** INFO: 13:19:04.695: Request queue destroyed.
<jemalloc>: Leak approximation summary: ~2488287 bytes, ~5 objects, >= 3 contexts
<jemalloc>: Run jeprof on dump output for leak detail
❯ jeprof --text src/renderd jeprof.11418.0.f.heap
Using local file src/renderd.
Using local file jeprof.11418.0.f.heap.
Total: 2.6 MB
1.6 61.4% 61.4% 2.1 80.7% std::vector::_M_realloc_insert
0.5 19.3% 80.7% 0.5 19.3% get_self_exe_path
0.5 19.3% 100.0% 0.5 19.3% __trans_list_add
0.0 0.0% 100.0% 0.5 19.3% Option::Option
0.0 0.0% 100.0% 2.1 80.7% SubProcessTimed::~SubProcessTimed
0.0 0.0% 100.0% 2.6 100.0% _dl_init
0.0 0.0% 100.0% 2.6 100.0% _dl_start_user
0.0 0.0% 100.0% 2.1 80.7% build_options
0.0 0.0% 100.0% 2.6 100.0% call_init
0.0 0.0% 100.0% 0.5 19.3% flnl_result_alloc
0.0 0.0% 100.0% 2.1 80.7% fmt::v7::detail::error_handler::on_error
```
The above output is from spinning up `renderd` and immediately asking it to exit (no tile rendering). The output below has force-rendered all tiles at zoom level 4 and 6 and shows the same leaks: I think the rendering code itself seems to be leak-free if allowed to terminate.
```
** INFO: 14:28:32.856: Render thread 7/8 exited.
** INFO: 14:28:32.856: Destroying request queue...
** INFO: 14:28:32.856: Request queue destroyed.
<jemalloc>: Leak approximation summary: ~2488287 bytes, ~5 objects, >= 3 contexts
<jemalloc>: Run jeprof on dump output for leak detail
❯ jeprof --text src/renderd jeprof.17275.0.f.heap
Using local file src/renderd.
Using local file jeprof.17275.0.f.heap.
Total: 2.6 MB
1.6 61.4% 61.4% 2.1 80.7% std::vector::_M_realloc_insert
0.5 19.3% 80.7% 0.5 19.3% get_self_exe_path
0.5 19.3% 100.0% 0.5 19.3% __trans_list_add
0.0 0.0% 100.0% 0.5 19.3% Option::Option
0.0 0.0% 100.0% 2.1 80.7% SubProcessTimed::~SubProcessTimed
0.0 0.0% 100.0% 2.6 100.0% _dl_init
0.0 0.0% 100.0% 2.6 100.0% _dl_start_user
0.0 0.0% 100.0% 2.1 80.7% build_options
0.0 0.0% 100.0% 2.6 100.0% call_init
0.0 0.0% 100.0% 0.5 19.3% flnl_result_alloc
0.0 0.0% 100.0% 2.1 80.7% fmt::v7::detail::error_handler::on_error
```
--
Reply to this email directly or view it on GitHub:
https://github.com/openstreetmap/mod_tile/issues/445#issuecomment-2203386021
You are receiving this because you are subscribed to this thread.
Message ID: <openstreetmap/mod_tile/issues/445/2203386021 at github.com>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openstreetmap.org/pipermail/tile-serving/attachments/20240702/02b0add3/attachment.htm>
More information about the Tile-serving
mailing list