=clu #17253 Improve cluster startup thread usage
When using a dispatcher (default or separate cluster dispatcher) with less than 5 threads the Cluster extension initialization could deadlock. It was reproducable by adding a sleep before the Await of GetClusterCoreRef in the Cluster extension constructor. The reason was that other cluster actors were started too early and they also tried to get the Cluster extension and thereby blocking dispatcher threads. Note that the Cluster extension is started via ClusterActorRefProvider before ActorSystem.apply returns. The improvement is to start the cluster child actors lazily when the GetClusterCoreRef is received.
This commit is contained in:
parent
bc568e2a1b
commit
737a50ebf3
4 changed files with 120 additions and 14 deletions
|
|
@ -545,7 +545,12 @@ object MiMa extends AutoPlugin {
|
|||
ProblemFilters.exclude[MissingMethodProblem]("akka.japi.Pair.toString"),
|
||||
|
||||
// #17805
|
||||
ProblemFilters.exclude[MissingMethodProblem]("akka.actor.ActorCell.clearActorFields")
|
||||
ProblemFilters.exclude[MissingMethodProblem]("akka.actor.ActorCell.clearActorFields"),
|
||||
|
||||
// internal changes introduced by #17253
|
||||
ProblemFilters.exclude[IncompatibleResultTypeProblem]("akka.cluster.ClusterDaemon.coreSupervisor"),
|
||||
ProblemFilters.exclude[MissingMethodProblem]("akka.cluster.ClusterCoreSupervisor.publisher"),
|
||||
ProblemFilters.exclude[IncompatibleResultTypeProblem]("akka.cluster.ClusterCoreSupervisor.coreDaemon")
|
||||
|
||||
)
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue