Skip to content

GitLab

  • Menu
Projects Groups Snippets
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
  • Kea Kea
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 505
    • Issues 505
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 53
    • Merge requests 53
  • Deployments
    • Deployments
    • Releases
  • Packages & Registries
    • Packages & Registries
    • Container Registry
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Commits
  • Issue Boards
Collapse sidebar
  • ISC Open Source Projects
  • KeaKea
  • Issues
  • #1818
Closed
Open
Created Apr 22, 2021 by Thomas Markwalder@tmarkMaintainer

HA+MT Hook libs need a way to honor or/be notified of CriticalSection entry/exit

When Kea core needs to do critical work, it enters a critical section, (see util::MultiThreadingCriticalSection). Currently this causes DHCP threads to be destroyed, thus eliminating contention for critical resources that need to be manipulated, and the threads are recreated upon critical section exit. MT hooks need the opportunity to stop/pause and start/resume in-step with this to avoid train wrecks. One notion that @razvan and I discussed was having a way to register critical section entry/exit callbacks with core. These would be invoked as critical sections are entered and exited.

As @razvan described "...most things are related to having http client/listener threads running while entering CS (mostly while other commands are run: lease updates/config-reload/config-set/config-test)."

I am breaking this down into at least two MRs:

  1. Make it possible to pause/resume thread-pools in HttpClient and CmdHttpListener
  2. Add Critical section entry/exit callbacks and integrate their use into HA
Edited May 04, 2021 by Thomas Markwalder
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information
Assignee
Assign to
Time tracking