Skip to content

Collector Shutdown should block until Run cleans up #4947

@cpheps

Description

@cpheps

Is your feature request related to a problem? Please describe.
Discussion from 4878 led to a decision to design Shutdown to follow language patterns for how it and Run should operate. Following http.Server as an example the following behaviors should be met:

  1. Shutdown be safe to be called at any point. Even if there is no action to take
  2. If Shutdown is called before Run it will exit cleanly and the next call to Run will exit due to the previous Shutdown
  3. If Shutdown is called while Run is active it should block until Run has confirmed shutdown.

Point 3 isn't currently implemented but desired behavior.

Describe the solution you'd like
Shutdown will block until Run has confirmed cleanup. Whatever Shutdown checks for should not stop it from cleanly exiting if Run hasn't been called yet or after Run was called.

Describe alternatives you've considered
Alternative is don't block Shutdown and just exit like it does now after closing the channel.

Additional context
Action item from #4878

If we want to go this route I think there needs to be some discussion on what Shutdown should block on. It seems like it should be when the state is Closing but that won't allow Shutdown to cleanly exit if called before or after Run.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workinggood first issueGood for newcomershelp wantedGood issue for contributors to OpenTelemetry Service to pick uppriority:p2Medium

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions