nomad-driver-podman icon indicating copy to clipboard operation
nomad-driver-podman copied to clipboard

WIP: actor based state handling, streaming container stats and podman events

Open towe75 opened this issue 4 years ago • 2 comments

Goals of this branch:

  • avoid mutexes for taskhandle storage
  • replace per-task container stats polling with a single stats stream
  • replace per-task container dead check with a podman event stream observer
  • fix a long standing race condition with very short living containers

General idea is to replace the mutex based task store with a message based actor. The actors mailbox, a simple channel, serializes all requests and makes explicit locking unnecessary in a lot of cases.

It's expected that these changes greatly improve the performance of this plugin.

One bug that i found while working on the branch: https://github.com/containers/podman/issues/8864

towe75 avatar Jan 03 '21 19:01 towe75

CLA assistant check
All committers have signed the CLA.

hashicorp-cla avatar Mar 12 '22 18:03 hashicorp-cla

Hi @towe75, this looks great. What would be needed to move this forward? Also I See that you are restarting the stats/event streams after some delay if the fail. Wouldn't that mean that we loose events?

apollo13 avatar Sep 29 '23 11:09 apollo13