Skip to content

Conversation

patriknw
Copy link
Contributor

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.

@patriknw
Copy link
Contributor Author

Refs #17253

@akka-ci akka-ci added the validating PR is currently being validated by Jenkins label Aug 27, 2015
@akka-ci akka-ci added needs-attention Indicates a PR validation failure (set by CI infrastructure) and removed validating PR is currently being validated by Jenkins labels Aug 27, 2015
@akka-ci
Copy link

akka-ci commented Aug 27, 2015

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://jenkins.akka.io/job/pr-validator-per-commit-jenkins/3527/

@patriknw
Copy link
Contributor Author

ah, required some mima filters also for the internal changes

@akka-ci akka-ci added validating PR is currently being validated by Jenkins and removed needs-attention Indicates a PR validation failure (set by CI infrastructure) labels Aug 27, 2015
@drewhk
Copy link
Contributor

drewhk commented Aug 27, 2015

LGTM

@akka-ci akka-ci added needs-attention Indicates a PR validation failure (set by CI infrastructure) and removed validating PR is currently being validated by Jenkins labels Aug 27, 2015
@akka-ci
Copy link

akka-ci commented Aug 27, 2015

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://jenkins.akka.io/job/pr-validator-per-commit-jenkins/3529/

@patriknw
Copy link
Contributor Author

the failure was unrelated (but new) issue #18336

@patriknw
Copy link
Contributor Author

patriknw commented Sep 1, 2015

PLS BUILD

@akka-ci akka-ci added validating PR is currently being validated by Jenkins tested PR that was successfully built and tested by Jenkins and removed needs-attention Indicates a PR validation failure (set by CI infrastructure) validating PR is currently being validated by Jenkins labels Sep 1, 2015
@akka-ci
Copy link

akka-ci commented Sep 1, 2015

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://jenkins.akka.io/job/pr-validator-per-commit-jenkins/3568/

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.
@patriknw patriknw force-pushed the wip-17253-cluster-startup-patriknw branch from fc3f39c to 737a50e Compare September 3, 2015 16:10
patriknw added a commit that referenced this pull request Sep 3, 2015
@patriknw patriknw merged commit 4cbfe3d into master Sep 3, 2015
@patriknw patriknw deleted the wip-17253-cluster-startup-patriknw branch September 3, 2015 16:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
tested PR that was successfully built and tested by Jenkins
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants