{"action":"created","issue":{"url":"https://api.github.com/repos/scylladb/scylla/issues/811","repository_url":"https://api.github.com/repos/scylladb/scylla","labels_url":"https://api.github.com/repos/scylladb/scylla/issues/811/labels{/name}","comments_url":"https://api.github.com/repos/scylladb/scylla/issues/811/comments","events_url":"https://api.github.com/repos/scylladb/scylla/issues/811/events","html_url":"https://github.com/scylladb/scylla/issues/811","id":127176475,"number":811,"title":"Possible RPC deadlock","user":{"login":"avikivity","id":1017210,"avatar_url":"https://avatars.githubusercontent.com/u/1017210?v=3","gravatar_id":"","url":"https://api.github.com/users/avikivity","html_url":"https://github.com/avikivity","followers_url":"https://api.github.com/users/avikivity/followers","following_url":"https://api.github.com/users/avikivity/following{/other_user}","gists_url":"https://api.github.com/users/avikivity/gists{/gist_id}","starred_url":"https://api.github.com/users/avikivity/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/avikivity/subscriptions","organizations_url":"https://api.github.com/users/avikivity/orgs","repos_url":"https://api.github.com/users/avikivity/repos","events_url":"https://api.github.com/users/avikivity/events{/privacy}","received_events_url":"https://api.github.com/users/avikivity/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/scylladb/scylla/labels/bug","name":"bug","color":"eb6420"},{"url":"https://api.github.com/repos/scylladb/scylla/labels/showstopper","name":"showstopper","color":"e11d21"}],"state":"open","locked":false,"assignee":{"login":"gleb-cloudius","id":6554938,"avatar_url":"https://avatars.githubusercontent.com/u/6554938?v=3","gravatar_id":"","url":"https://api.github.com/users/gleb-cloudius","html_url":"https://github.com/gleb-cloudius","followers_url":"https://api.github.com/users/gleb-cloudius/followers","following_url":"https://api.github.com/users/gleb-cloudius/following{/other_user}","gists_url":"https://api.github.com/users/gleb-cloudius/gists{/gist_id}","starred_url":"https://api.github.com/users/gleb-cloudius/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/gleb-cloudius/subscriptions","organizations_url":"https://api.github.com/users/gleb-cloudius/orgs","repos_url":"https://api.github.com/users/gleb-cloudius/repos","events_url":"https://api.github.com/users/gleb-cloudius/events{/privacy}","received_events_url":"https://api.github.com/users/gleb-cloudius/received_events","type":"User","site_admin":false},"milestone":{"url":"https://api.github.com/repos/scylladb/scylla/milestones/1","html_url":"https://github.com/scylladb/scylla/milestones/GA","labels_url":"https://api.github.com/repos/scylladb/scylla/milestones/1/labels","id":1164307,"number":1,"title":"GA","description":null,"creator":{"login":"dorlaor","id":1735237,"avatar_url":"https://avatars.githubusercontent.com/u/1735237?v=3","gravatar_id":"","url":"https://api.github.com/users/dorlaor","html_url":"https://github.com/dorlaor","followers_url":"https://api.github.com/users/dorlaor/followers","following_url":"https://api.github.com/users/dorlaor/following{/other_user}","gists_url":"https://api.github.com/users/dorlaor/gists{/gist_id}","starred_url":"https://api.github.com/users/dorlaor/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dorlaor/subscriptions","organizations_url":"https://api.github.com/users/dorlaor/orgs","repos_url":"https://api.github.com/users/dorlaor/repos","events_url":"https://api.github.com/users/dorlaor/events{/privacy}","received_events_url":"https://api.github.com/users/dorlaor/received_events","type":"User","site_admin":false},"open_issues":145,"closed_issues":129,"state":"open","created_at":"2015-06-15T06:37:52Z","updated_at":"2016-02-04T09:18:25Z","due_on":null,"closed_at":null},"comments":3,"created_at":"2016-01-18T08:27:57Z","updated_at":"2016-02-04T10:29:54Z","closed_at":null,"body":"Because MUTATION and MUTATION_DONE are asycnhronous, there is the possibility of deadlock.\r\n\r\nConsider nodes A and B each capable of handling N MUTATION verbs simulataneously, but no more:\r\n\r\n1. A: send N*2 MUTATION verbs to B\r\n2. B: send N*2 MUTATION verbs to A\r\n3. B: start processing N MUTATION verbs, send MUTATION_DONE to A\r\n4. A: start processing N MUTATION verbs, send MUTATION_DONE to B\r\n\r\nThe MUTATION_DONE verbs will never be processed, because both A and B reached their RPC resource limits, and processing of the MUTATION verbs will never be complete, because the MUTATION_DONE messages are blocked.\r\n\r\nMight be fixed by placing MUTATION and MUTATION_DONE on different resource control domains (and thus separate TCP connections)."},"comment":{"url":"https://api.github.com/repos/scylladb/scylla/issues/comments/179759647","html_url":"https://github.com/scylladb/scylla/issues/811#issuecomment-179759647","issue_url":"https://api.github.com/repos/scylladb/scylla/issues/811","id":179759647,"user":{"login":"avikivity","id":1017210,"avatar_url":"https://avatars.githubusercontent.com/u/1017210?v=3","gravatar_id":"","url":"https://api.github.com/users/avikivity","html_url":"https://github.com/avikivity","followers_url":"https://api.github.com/users/avikivity/followers","following_url":"https://api.github.com/users/avikivity/following{/other_user}","gists_url":"https://api.github.com/users/avikivity/gists{/gist_id}","starred_url":"https://api.github.com/users/avikivity/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/avikivity/subscriptions","organizations_url":"https://api.github.com/users/avikivity/orgs","repos_url":"https://api.github.com/users/avikivity/repos","events_url":"https://api.github.com/users/avikivity/events{/privacy}","received_events_url":"https://api.github.com/users/avikivity/received_events","type":"User","site_admin":false},"created_at":"2016-02-04T10:29:54Z","updated_at":"2016-02-04T10:29:54Z","body":"I even started to write the code, will go back to it eventually."}}