{"action":"closed","issue":{"url":"https://api.github.com/repos/mesosphere/marathon/issues/3030","repository_url":"https://api.github.com/repos/mesosphere/marathon","labels_url":"https://api.github.com/repos/mesosphere/marathon/issues/3030/labels{/name}","comments_url":"https://api.github.com/repos/mesosphere/marathon/issues/3030/comments","events_url":"https://api.github.com/repos/mesosphere/marathon/issues/3030/events","html_url":"https://github.com/mesosphere/marathon/issues/3030","id":127487390,"number":3030,"title":"Remove LockManager from MarathonStore","user":{"login":"kolloch","id":339354,"avatar_url":"https://avatars.githubusercontent.com/u/339354?v=3","gravatar_id":"","url":"https://api.github.com/users/kolloch","html_url":"https://github.com/kolloch","followers_url":"https://api.github.com/users/kolloch/followers","following_url":"https://api.github.com/users/kolloch/following{/other_user}","gists_url":"https://api.github.com/users/kolloch/gists{/gist_id}","starred_url":"https://api.github.com/users/kolloch/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kolloch/subscriptions","organizations_url":"https://api.github.com/users/kolloch/orgs","repos_url":"https://api.github.com/users/kolloch/repos","events_url":"https://api.github.com/users/kolloch/events{/privacy}","received_events_url":"https://api.github.com/users/kolloch/received_events","type":"User","site_admin":false},"labels":[{"id":188734338,"url":"https://api.github.com/repos/mesosphere/marathon/labels/debt","name":"debt","color":"f7c6c7","default":false},{"id":235599493,"url":"https://api.github.com/repos/mesosphere/marathon/labels/OKR%20Scalability","name":"OKR Scalability","color":"bfe5bf","default":false},{"id":235599421,"url":"https://api.github.com/repos/mesosphere/marathon/labels/OKR%20Stability","name":"OKR Stability","color":"bfe5bf","default":false}],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":1,"created_at":"2016-01-19T16:41:38Z","updated_at":"2016-11-23T17:47:56Z","closed_at":"2016-11-23T17:47:56Z","body":"The `MarathonStore` uses `LockManager`s to synchronize its state. There is probably some incorrect synchronization for the failure cases but, in addition, locking doesn't compose well in our code base.\n\nOne problem is that all potentially blocking constructs are marked with `scala.concurrent.blocking` to prevent deadlocks. `scala.concurrent.blocking` just results in spawning more threads when needed. That means that as long as we use blocking code constructs, the number of threads that Marathon uses is, in effect, unbounded.\n\nWe should probably manage the state in this class by using an Actor.\n"}}
{"actor":{"display_login":"jasongilanfarr"}}