Project

General

Profile

Actions

Task #4682

open

Task #2693: tracking: libsuricata

tracking: clean up globals and thread locals

Added by Victor Julien about 4 years ago. Updated 3 days ago.

Status:
Assigned
Priority:
Normal
Assignee:
Target version:
Effort:
Difficulty:
Label:

Description

As we want to turn Suricata into libsuricata where there could be multiple instances of the suricata code in the consuming app, the suricata code can't rely on any globals or thread local vars.

While thread locals work in the context of the Suricata application, as a library, where users are bringing their own threads, it's possible that multiple, but distinct instances of the Suricata engine are run on the same thread. In this case, using thread locals can leak state from one instance into another. The thread pool is a good example here, as each instance may have its own pool settings and pre-allocated packet sizes.


Subtasks 4 (3 open1 closed)

Task #4683: detect: remove sigmatch_table in favor of a dynamic storage optionClosedPhilippe AntoineActions
Task #4684: libsuricata: define global context types for instance and per thread storageNewJason IshActions
Task #8078: threading: don't use thread local for packet poolAssignedOISF DevActions
Task #8106: misc: don't use global for SCInstanceIn ProgressJason IshActions

Related issues 1 (1 open0 closed)

Blocks Suricata - Story #8098: 9.0.0: libsuricataAssignedVictor JulienActions
Actions #1

Updated by Philippe Antoine over 1 year ago

  • Assignee set to Jason Ish
  • Target version set to TBD
Actions #2

Updated by Jason Ish 15 days ago

  • Status changed from New to Assigned
  • Target version changed from TBD to 9.0.0-beta1
Actions #3

Updated by Jason Ish 9 days ago

  • Subtask #8078 added
Actions #4

Updated by Jason Ish 9 days ago

  • Description updated (diff)
Actions #5

Updated by Jason Ish 6 days ago

Actions #6

Updated by Jason Ish 3 days ago

  • Subtask #8106 added
Actions

Also available in: Atom PDF