From f80d26db0b62d4a547290a1cf536754f79927a3b Mon Sep 17 00:00:00 2001 From: Vincent Li Date: Fri, 4 Aug 2023 17:49:35 +0000 Subject: [PATCH] flow-bypass: Set bypass thread to running state When running Suricata in XDP bypass mode (bypass: yes), Suricata started up with error: Error: threads: thread "FB" failed to start in time: flags 0003 "FB" thread does not transition from THV_INIT_DONE to THV_RUNNING. Set "FB" thread THV_RUNNING state in BypassedFlowManager(). Bug: #6254 Signed-off-by: Vincent Li --- src/flow-bypass.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/flow-bypass.c b/src/flow-bypass.c index 8dbb5ab17d74..10ecf91f494e 100644 --- a/src/flow-bypass.c +++ b/src/flow-bypass.c @@ -93,7 +93,14 @@ static TmEcode BypassedFlowManager(ThreadVars *th_v, void *thread_data) if (!found) return TM_ECODE_OK; + TmThreadsSetFlag(th_v, THV_RUNNING); + while (1) { + if (TmThreadsCheckFlag(th_v, THV_PAUSE)) { + TmThreadsSetFlag(th_v, THV_PAUSED); + TmThreadTestThreadUnPaused(th_v); + TmThreadsUnsetFlag(th_v, THV_PAUSED); + } SCLogDebug("Dumping the table"); gettimeofday(&tv, NULL); TIMEVAL_TO_TIMESPEC(&tv, &curtime);