]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
BUG/MINOR: activity/memprofile: reinitialize the free calls on DSO summary
authorWilly Tarreau <w@1wt.eu>
Thu, 21 Nov 2024 14:26:23 +0000 (15:26 +0100)
committerWilly Tarreau <w@1wt.eu>
Thu, 21 Nov 2024 18:58:05 +0000 (19:58 +0100)
In commit 401fb0e87a ("MINOR: activity/memprofile: show per-DSO stats")
we added a summary per DSO. However the free calls/tot were not initialized
when creating a new entry because initially they were applied to any entry,
but since we don't update free calls for non-free capable callers, we still
need to reinitialize these entries when reassigning one. Because of this
bug, a "show profiling memory" output can randomly show highly negative
values on the DSO lines if it turns out that the DSO entry was created on
an alloc instead of a realloc/free.

Since the commit above was backported to 2.9, this one must go there as
well.

src/activity.c

index 1c43b245549164d2990ae55fc322d24c98a70bd4..d65508856f240d858a38a598e96eaa1a1e74d283 100644 (file)
@@ -900,6 +900,9 @@ static int cli_io_handler_show_profiling(struct appctx *appctx)
                            (entry->method != MEMPROF_METH_CALLOC)) {
                                tmp_memstats[j].free_calls  = entry->free_calls;
                                tmp_memstats[j].free_tot    = entry->free_tot;
+                       } else {
+                               tmp_memstats[j].free_calls  = 0;
+                               tmp_memstats[j].free_tot    = 0;
                        }
                } else {
                        tmp_memstats[j].alloc_calls += entry->alloc_calls;