]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
MINOR: activity: better report nil than ffff in unknown callers
authorWilly Tarreau <w@1wt.eu>
Thu, 21 Nov 2024 09:28:14 +0000 (10:28 +0100)
committerWilly Tarreau <w@1wt.eu>
Thu, 21 Nov 2024 18:58:06 +0000 (19:58 +0100)
For unknown callers we try to get the lowest known address and we
purposely ignore NULL during calculation of the min. But the side
effect is that we also report ffff in the per-DSO address. Better
catch this case and finally accept to report nil. Before it would
report this:

  $ socat - /tmp/sock1 <<< "show profiling memory" |grep nil
        50000          10        9600000           9440|            (nil) [other] unknown(192) [delta=9590560] [pool=http_txn]
        50000          10        9600000           9440|            (nil) DSO:other; delta_calls=49990; delta_bytes=9590560

now it reports this:

  $ socat - /tmp/sock1 <<< "show profiling memory" |grep nil
        50000          11        9600000           9656|            (nil) [other] unknown(192) [delta=9590344] [pool=connection]
        50000          11        9600000           9656|            (nil) DSO:other; delta_calls=49989; delta_bytes=9590344

src/activity.c

index b6939d9d54fdfcf0b0b1df4d63a95379e28b193a..203e3e27551220ca1bb40c1d6adaf6c3cccbfa1e 100644 (file)
@@ -951,7 +951,7 @@ static int cli_io_handler_show_profiling(struct appctx *appctx)
                chunk_appendf(&trash, "%11llu %11llu %14llu %14llu| %16p DSO:%s;",
                              entry->alloc_calls, entry->free_calls,
                              entry->alloc_tot, entry->free_tot,
-                             entry->caller, entry->info ? (const char*)entry->info : "other");
+                             entry->caller == (void*)-1 ? 0 : entry->caller, entry->info ? (const char*)entry->info : "other");
 
                if (entry->alloc_tot != entry->free_tot)
                        chunk_appendf(&trash, " delta_calls=%lld; delta_bytes=%lld",