{"action":"created","issue":{"url":"https://api.github.com/repos/akkadotnet/akka.net/issues/2024","repository_url":"https://api.github.com/repos/akkadotnet/akka.net","labels_url":"https://api.github.com/repos/akkadotnet/akka.net/issues/2024/labels{/name}","comments_url":"https://api.github.com/repos/akkadotnet/akka.net/issues/2024/comments","events_url":"https://api.github.com/repos/akkadotnet/akka.net/issues/2024/events","html_url":"https://github.com/akkadotnet/akka.net/issues/2024","id":157783573,"number":2024,"title":"ActorCell updates, rewrites to support proper child termination / recreation","user":{"login":"Aaronontheweb","id":326939,"avatar_url":"https://avatars.githubusercontent.com/u/326939?v=3","gravatar_id":"","url":"https://api.github.com/users/Aaronontheweb","html_url":"https://github.com/Aaronontheweb","followers_url":"https://api.github.com/users/Aaronontheweb/followers","following_url":"https://api.github.com/users/Aaronontheweb/following{/other_user}","gists_url":"https://api.github.com/users/Aaronontheweb/gists{/gist_id}","starred_url":"https://api.github.com/users/Aaronontheweb/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Aaronontheweb/subscriptions","organizations_url":"https://api.github.com/users/Aaronontheweb/orgs","repos_url":"https://api.github.com/users/Aaronontheweb/repos","events_url":"https://api.github.com/users/Aaronontheweb/events{/privacy}","received_events_url":"https://api.github.com/users/Aaronontheweb/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/akkadotnet/akka.net/labels/akka-actor","name":"akka-actor","color":"c7def8"},{"url":"https://api.github.com/repos/akkadotnet/akka.net/labels/confirmed%20bug","name":"confirmed bug","color":"e11d21"},{"url":"https://api.github.com/repos/akkadotnet/akka.net/labels/critical","name":"critical","color":"e11d21"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":2,"created_at":"2016-05-31T22:19:04Z","updated_at":"2016-05-31T22:23:11Z","closed_at":null,"body":"I spent the past day or so debugging issues with Cluster Deathwatch. Turns out this was the culprit.\r\n\r\nThe entire way we handle child create / terminate is out of date or incorrectly implemented. See: https://github.com/akka/akka/blob/65a9e0a0f9372d2e2ecb945c8a9dae129a438f77/akka-actor/src/main/scala/akka/actor/ActorCell.scala#L421\r\n\r\nTL;DR; - we need to be able to guarantee the following:\r\n\r\n1. That all children are shutdown before a parent calls `FinishTerminate`.\r\n2. That no children can be allocated while the parent is shutting down.\r\n3. That system messages that don't have anything to do with the shutting down of children during termination are stashed.\r\n\r\nThe JVM has all of this implemented, but this will be a multi-day project for someone. The good news? The `ActorSystemSpec.Reliable_deny_create_on_shutdown` spec and scores of other unit tests will EXPLODE if this is implemented incorrectly. The bad news? This will require some yak-shaving."},"comment":{"url":"https://api.github.com/repos/akkadotnet/akka.net/issues/comments/222839467","html_url":"https://github.com/akkadotnet/akka.net/issues/2024#issuecomment-222839467","issue_url":"https://api.github.com/repos/akkadotnet/akka.net/issues/2024","id":222839467,"user":{"login":"Aaronontheweb","id":326939,"avatar_url":"https://avatars.githubusercontent.com/u/326939?v=3","gravatar_id":"","url":"https://api.github.com/users/Aaronontheweb","html_url":"https://github.com/Aaronontheweb","followers_url":"https://api.github.com/users/Aaronontheweb/followers","following_url":"https://api.github.com/users/Aaronontheweb/following{/other_user}","gists_url":"https://api.github.com/users/Aaronontheweb/gists{/gist_id}","starred_url":"https://api.github.com/users/Aaronontheweb/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Aaronontheweb/subscriptions","organizations_url":"https://api.github.com/users/Aaronontheweb/orgs","repos_url":"https://api.github.com/users/Aaronontheweb/repos","events_url":"https://api.github.com/users/Aaronontheweb/events{/privacy}","received_events_url":"https://api.github.com/users/Aaronontheweb/received_events","type":"User","site_admin":false},"created_at":"2016-05-31T22:23:11Z","updated_at":"2016-05-31T22:23:11Z","body":"For the time being - I'm going to continue use the buggy `StopChildren` implementation, because at least that still allows the system to be shutdown."}}
{"actor":{"display_login":"Aaronontheweb"}}