You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The Services (HTTP service, UI service, remote cfg service, etc) have dependencies, laid out in their DependsOn parameter. However, the scheduler does not enforce any starting order and ensure other services are fully available before starting ones that depend upon them.
This caused a panic #2144 when the HTTP service tried to install the UI service's endpoints that depend on the remote config service, but the remote config service had not yet executed its Run() function and stored a variable that the UI service depended upon. This was a race condition that would not have been present if the services were started in order, with that order informed by the DependsOn parameter.
This will require changes to the Scheduler to start components in order, and the ServiceNode (and likely other Node) implementations need a Wait Group or chan or mutex provided to be able to inform the scheduler that they are ready for their dependent components to start.
Use case
This will help prevent future issues, and enforce the DependsOn contract in a way that allows developers to trust the availability of other services.
The text was updated successfully, but these errors were encountered:
Request
The Services (HTTP service, UI service, remote cfg service, etc) have dependencies, laid out in their DependsOn parameter. However, the scheduler does not enforce any starting order and ensure other services are fully available before starting ones that depend upon them.
This caused a panic #2144 when the HTTP service tried to install the UI service's endpoints that depend on the remote config service, but the remote config service had not yet executed its Run() function and stored a variable that the UI service depended upon. This was a race condition that would not have been present if the services were started in order, with that order informed by the DependsOn parameter.
This will require changes to the Scheduler to start components in order, and the ServiceNode (and likely other Node) implementations need a Wait Group or chan or mutex provided to be able to inform the scheduler that they are ready for their dependent components to start.
Use case
This will help prevent future issues, and enforce the DependsOn contract in a way that allows developers to trust the availability of other services.
The text was updated successfully, but these errors were encountered: