Skip to content

Commit 7337c42

Browse files
committed
DEBUG: cli: make it possible for "debug dev loop" to trigger warnings
A new argument "warn" allows to force the emission of a warning while stuck in the loop by making the internal state inconsistent.
1 parent 148eb58 commit 7337c42

File tree

1 file changed

+7
-2
lines changed

1 file changed

+7
-2
lines changed

src/debug.c

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -973,11 +973,13 @@ static int debug_parse_cli_loop(char **args, char *payload, struct appctx *appct
973973
struct timeval deadline, curr;
974974
int loop = atoi(args[3]);
975975
int isolate;
976+
int warn;
976977

977978
if (!cli_has_level(appctx, ACCESS_LVL_ADMIN))
978979
return 1;
979980

980981
isolate = strcmp(args[4], "isolated") == 0;
982+
warn = strcmp(args[4], "warn") == 0;
981983

982984
_HA_ATOMIC_INC(&debug_commands_issued);
983985
gettimeofday(&curr, NULL);
@@ -986,8 +988,11 @@ static int debug_parse_cli_loop(char **args, char *payload, struct appctx *appct
986988
if (isolate)
987989
thread_isolate();
988990

989-
while (tv_ms_cmp(&curr, &deadline) < 0)
991+
while (tv_ms_cmp(&curr, &deadline) < 0) {
992+
if (warn)
993+
_HA_ATOMIC_AND(&th_ctx->flags, ~TH_FL_STUCK);
990994
gettimeofday(&curr, NULL);
995+
}
991996

992997
if (isolate)
993998
thread_release();
@@ -2748,7 +2753,7 @@ static struct cli_kw_list cli_kws = {{ },{
27482753
{{ "debug", "dev", "hash", NULL }, "debug dev hash [msg] : return msg hashed if anon is set", debug_parse_cli_hash, NULL, NULL, NULL, 0 },
27492754
{{ "debug", "dev", "hex", NULL }, "debug dev hex <addr> [len] : dump a memory area", debug_parse_cli_hex, NULL, NULL, NULL, ACCESS_EXPERT },
27502755
{{ "debug", "dev", "log", NULL }, "debug dev log [msg] ... : send this msg to global logs", debug_parse_cli_log, NULL, NULL, NULL, ACCESS_EXPERT },
2751-
{{ "debug", "dev", "loop", NULL }, "debug dev loop <ms> [isolated] : loop this long, possibly isolated", debug_parse_cli_loop, NULL, NULL, NULL, ACCESS_EXPERT },
2756+
{{ "debug", "dev", "loop", NULL }, "debug dev loop <ms> [isolated|warn] : loop this long, possibly isolated", debug_parse_cli_loop, NULL, NULL, NULL, ACCESS_EXPERT },
27522757
#if defined(DEBUG_MEM_STATS)
27532758
{{ "debug", "dev", "memstats", NULL }, "debug dev memstats [reset|all|match ...]: dump/reset memory statistics", debug_parse_cli_memstats, debug_iohandler_memstats, debug_release_memstats, NULL, 0 },
27542759
#endif

0 commit comments

Comments
 (0)