Skip to content

circus watchers need an async_kill option in some cases #987

Description

@thefab

When you have several watchers with:

  • big graceful_timeout (600 seconds in our case)
  • max_age values > 0

The call of manage_watchers of the Arbiter from the Controller can be very long (600 seconds in our case). During this delay, circus is not blocked (thanks to tornado ioloop) but:

  • some intrusive commands are forbidden (because manage_watchers is running)
  • no other manage_watchers is launched

So during this graceful 600s period, other dead or expired processes (even for other watchers) are not (re)launched anymore.

The real fix is really intrusive and complex because of concurrency issues.

We are working on a little fix based on a "async_kill" flag (at the watcher level).

Ideas and advices are welcome

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions