{"action":"opened","number":25,"pull_request":{"url":"https://api.github.com/repos/hmartiro/redox/pulls/25","id":44001469,"html_url":"https://github.com/hmartiro/redox/pull/25","diff_url":"https://github.com/hmartiro/redox/pull/25.diff","patch_url":"https://github.com/hmartiro/redox/pull/25.patch","issue_url":"https://api.github.com/repos/hmartiro/redox/issues/25","number":25,"state":"open","locked":false,"title":"Added multithreading test that hangs.","user":{"login":"bveldhoen","id":1177238,"avatar_url":"https://avatars.githubusercontent.com/u/1177238?v=3","gravatar_id":"","url":"https://api.github.com/users/bveldhoen","html_url":"https://github.com/bveldhoen","followers_url":"https://api.github.com/users/bveldhoen/followers","following_url":"https://api.github.com/users/bveldhoen/following{/other_user}","gists_url":"https://api.github.com/users/bveldhoen/gists{/gist_id}","starred_url":"https://api.github.com/users/bveldhoen/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bveldhoen/subscriptions","organizations_url":"https://api.github.com/users/bveldhoen/orgs","repos_url":"https://api.github.com/users/bveldhoen/repos","events_url":"https://api.github.com/users/bveldhoen/events{/privacy}","received_events_url":"https://api.github.com/users/bveldhoen/received_events","type":"User","site_admin":false},"body":"Added a unit test in order to reproduce a deadlock when executing synchronous SET and DEL commands concurrently. (You might argue why we do synchronous commands concurrently, but that's the nature of our applications at the moment). Anyways, this looks like a serious issue that needs fixing.\r\nI have added some output files containing more information:\r\n*pstack.output:* Contains the pstack output of the test_redox process after it deadlocks. From the thread stacks, it's clear that one thread (#2) deadlocks in a wait of the condition_variable (line 43 in command.cpp).\r\n*monitor.output:* Contains the redis monitor output. This shows that the thread executing the SET commands executes to completion, but the thread executing the DEL command deadlocks.\r\n*redis.output:* Contains the output of executing SET and DEL commands concurrently using redis-cli. This doesn't show a deadlock (as expected).\r\n\r\nExecuting the unit test reliably reproduces the deadlock on my machine.","created_at":"2015-09-02T14:54:08Z","updated_at":"2015-09-02T14:54:08Z","closed_at":null,"merged_at":null,"merge_commit_sha":null,"assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/hmartiro/redox/pulls/25/commits","review_comments_url":"https://api.github.com/repos/hmartiro/redox/pulls/25/comments","review_comment_url":"https://api.github.com/repos/hmartiro/redox/pulls/comments{/number}","comments_url":"https://api.github.com/repos/hmartiro/redox/issues/25/comments","statuses_url":"https://api.github.com/repos/hmartiro/redox/statuses/4a964d09dbe1ce58ac0318ea719752721f174804","head":{"label":"bveldhoen:master","ref":"master","sha":"4a964d09dbe1ce58ac0318ea719752721f174804","user":{"login":"bveldhoen","id":1177238,"avatar_url":"https://avatars.githubusercontent.com/u/1177238?v=3","gravatar_id":"","url":"https://api.github.com/users/bveldhoen","html_url":"https://github.com/bveldhoen","followers_url":"https://api.github.com/users/bveldhoen/followers","following_url":"https://api.github.com/users/bveldhoen/following{/other_user}","gists_url":"https://api.github.com/users/bveldhoen/gists{/gist_id}","starred_url":"https://api.github.com/users/bveldhoen/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bveldhoen/subscriptions","organizations_url":"https://api.github.com/users/bveldhoen/orgs","repos_url":"https://api.github.com/users/bveldhoen/repos","events_url":"https://api.github.com/users/bveldhoen/events{/privacy}","received_events_url":"https://api.github.com/users/bveldhoen/received_events","type":"User","site_admin":false},"repo":{"id":36573237,"name":"redox","full_name":"bveldhoen/redox","owner":{"login":"bveldhoen","id":1177238,"avatar_url":"https://avatars.githubusercontent.com/u/1177238?v=3","gravatar_id":"","url":"https://api.github.com/users/bveldhoen","html_url":"https://github.com/bveldhoen","followers_url":"https://api.github.com/users/bveldhoen/followers","following_url":"https://api.github.com/users/bveldhoen/following{/other_user}","gists_url":"https://api.github.com/users/bveldhoen/gists{/gist_id}","starred_url":"https://api.github.com/users/bveldhoen/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bveldhoen/subscriptions","organizations_url":"https://api.github.com/users/bveldhoen/orgs","repos_url":"https://api.github.com/users/bveldhoen/repos","events_url":"https://api.github.com/users/bveldhoen/events{/privacy}","received_events_url":"https://api.github.com/users/bveldhoen/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/bveldhoen/redox","description":"Modern, asynchronous, and wicked fast C++11 client for Redis","fork":true,"url":"https://api.github.com/repos/bveldhoen/redox","forks_url":"https://api.github.com/repos/bveldhoen/redox/forks","keys_url":"https://api.github.com/repos/bveldhoen/redox/keys{/key_id}","collaborators_url":"https://api.github.com/repos/bveldhoen/redox/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/bveldhoen/redox/teams","hooks_url":"https://api.github.com/repos/bveldhoen/redox/hooks","issue_events_url":"https://api.github.com/repos/bveldhoen/redox/issues/events{/number}","events_url":"https://api.github.com/repos/bveldhoen/redox/events","assignees_url":"https://api.github.com/repos/bveldhoen/redox/assignees{/user}","branches_url":"https://api.github.com/repos/bveldhoen/redox/branches{/branch}","tags_url":"https://api.github.com/repos/bveldhoen/redox/tags","blobs_url":"https://api.github.com/repos/bveldhoen/redox/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/bveldhoen/redox/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/bveldhoen/redox/git/refs{/sha}","trees_url":"https://api.github.com/repos/bveldhoen/redox/git/trees{/sha}","statuses_url":"https://api.github.com/repos/bveldhoen/redox/statuses/{sha}","languages_url":"https://api.github.com/repos/bveldhoen/redox/languages","stargazers_url":"https://api.github.com/repos/bveldhoen/redox/stargazers","contributors_url":"https://api.github.com/repos/bveldhoen/redox/contributors","subscribers_url":"https://api.github.com/repos/bveldhoen/redox/subscribers","subscription_url":"https://api.github.com/repos/bveldhoen/redox/subscription","commits_url":"https://api.github.com/repos/bveldhoen/redox/commits{/sha}","git_commits_url":"https://api.github.com/repos/bveldhoen/redox/git/commits{/sha}","comments_url":"https://api.github.com/repos/bveldhoen/redox/comments{/number}","issue_comment_url":"https://api.github.com/repos/bveldhoen/redox/issues/comments{/number}","contents_url":"https://api.github.com/repos/bveldhoen/redox/contents/{+path}","compare_url":"https://api.github.com/repos/bveldhoen/redox/compare/{base}...{head}","merges_url":"https://api.github.com/repos/bveldhoen/redox/merges","archive_url":"https://api.github.com/repos/bveldhoen/redox/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/bveldhoen/redox/downloads","issues_url":"https://api.github.com/repos/bveldhoen/redox/issues{/number}","pulls_url":"https://api.github.com/repos/bveldhoen/redox/pulls{/number}","milestones_url":"https://api.github.com/repos/bveldhoen/redox/milestones{/number}","notifications_url":"https://api.github.com/repos/bveldhoen/redox/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/bveldhoen/redox/labels{/name}","releases_url":"https://api.github.com/repos/bveldhoen/redox/releases{/id}","created_at":"2015-05-30T19:51:15Z","updated_at":"2015-05-30T19:51:15Z","pushed_at":"2015-09-02T14:52:50Z","git_url":"git://github.com/bveldhoen/redox.git","ssh_url":"git@github.com:bveldhoen/redox.git","clone_url":"https://github.com/bveldhoen/redox.git","svn_url":"https://github.com/bveldhoen/redox","homepage":"","size":362,"stargazers_count":0,"watchers_count":0,"language":"C++","has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"hmartiro:master","ref":"master","sha":"475171c947ef3bc38c28af8cface16c53f90ae36","user":{"login":"hmartiro","id":1524208,"avatar_url":"https://avatars.githubusercontent.com/u/1524208?v=3","gravatar_id":"","url":"https://api.github.com/users/hmartiro","html_url":"https://github.com/hmartiro","followers_url":"https://api.github.com/users/hmartiro/followers","following_url":"https://api.github.com/users/hmartiro/following{/other_user}","gists_url":"https://api.github.com/users/hmartiro/gists{/gist_id}","starred_url":"https://api.github.com/users/hmartiro/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/hmartiro/subscriptions","organizations_url":"https://api.github.com/users/hmartiro/orgs","repos_url":"https://api.github.com/users/hmartiro/repos","events_url":"https://api.github.com/users/hmartiro/events{/privacy}","received_events_url":"https://api.github.com/users/hmartiro/received_events","type":"User","site_admin":false},"repo":{"id":28383189,"name":"redox","full_name":"hmartiro/redox","owner":{"login":"hmartiro","id":1524208,"avatar_url":"https://avatars.githubusercontent.com/u/1524208?v=3","gravatar_id":"","url":"https://api.github.com/users/hmartiro","html_url":"https://github.com/hmartiro","followers_url":"https://api.github.com/users/hmartiro/followers","following_url":"https://api.github.com/users/hmartiro/following{/other_user}","gists_url":"https://api.github.com/users/hmartiro/gists{/gist_id}","starred_url":"https://api.github.com/users/hmartiro/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/hmartiro/subscriptions","organizations_url":"https://api.github.com/users/hmartiro/orgs","repos_url":"https://api.github.com/users/hmartiro/repos","events_url":"https://api.github.com/users/hmartiro/events{/privacy}","received_events_url":"https://api.github.com/users/hmartiro/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/hmartiro/redox","description":"Modern, asynchronous, and wicked fast C++11 client for Redis","fork":false,"url":"https://api.github.com/repos/hmartiro/redox","forks_url":"https://api.github.com/repos/hmartiro/redox/forks","keys_url":"https://api.github.com/repos/hmartiro/redox/keys{/key_id}","collaborators_url":"https://api.github.com/repos/hmartiro/redox/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/hmartiro/redox/teams","hooks_url":"https://api.github.com/repos/hmartiro/redox/hooks","issue_events_url":"https://api.github.com/repos/hmartiro/redox/issues/events{/number}","events_url":"https://api.github.com/repos/hmartiro/redox/events","assignees_url":"https://api.github.com/repos/hmartiro/redox/assignees{/user}","branches_url":"https://api.github.com/repos/hmartiro/redox/branches{/branch}","tags_url":"https://api.github.com/repos/hmartiro/redox/tags","blobs_url":"https://api.github.com/repos/hmartiro/redox/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/hmartiro/redox/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/hmartiro/redox/git/refs{/sha}","trees_url":"https://api.github.com/repos/hmartiro/redox/git/trees{/sha}","statuses_url":"https://api.github.com/repos/hmartiro/redox/statuses/{sha}","languages_url":"https://api.github.com/repos/hmartiro/redox/languages","stargazers_url":"https://api.github.com/repos/hmartiro/redox/stargazers","contributors_url":"https://api.github.com/repos/hmartiro/redox/contributors","subscribers_url":"https://api.github.com/repos/hmartiro/redox/subscribers","subscription_url":"https://api.github.com/repos/hmartiro/redox/subscription","commits_url":"https://api.github.com/repos/hmartiro/redox/commits{/sha}","git_commits_url":"https://api.github.com/repos/hmartiro/redox/git/commits{/sha}","comments_url":"https://api.github.com/repos/hmartiro/redox/comments{/number}","issue_comment_url":"https://api.github.com/repos/hmartiro/redox/issues/comments{/number}","contents_url":"https://api.github.com/repos/hmartiro/redox/contents/{+path}","compare_url":"https://api.github.com/repos/hmartiro/redox/compare/{base}...{head}","merges_url":"https://api.github.com/repos/hmartiro/redox/merges","archive_url":"https://api.github.com/repos/hmartiro/redox/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/hmartiro/redox/downloads","issues_url":"https://api.github.com/repos/hmartiro/redox/issues{/number}","pulls_url":"https://api.github.com/repos/hmartiro/redox/pulls{/number}","milestones_url":"https://api.github.com/repos/hmartiro/redox/milestones{/number}","notifications_url":"https://api.github.com/repos/hmartiro/redox/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/hmartiro/redox/labels{/name}","releases_url":"https://api.github.com/repos/hmartiro/redox/releases{/id}","created_at":"2014-12-23T07:00:00Z","updated_at":"2015-08-23T14:59:13Z","pushed_at":"2015-09-02T14:54:08Z","git_url":"git://github.com/hmartiro/redox.git","ssh_url":"git@github.com:hmartiro/redox.git","clone_url":"https://github.com/hmartiro/redox.git","svn_url":"https://github.com/hmartiro/redox","homepage":"","size":681,"stargazers_count":56,"watchers_count":56,"language":"C++","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":22,"mirror_url":null,"open_issues_count":14,"forks":22,"open_issues":14,"watchers":56,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/hmartiro/redox/pulls/25"},"html":{"href":"https://github.com/hmartiro/redox/pull/25"},"issue":{"href":"https://api.github.com/repos/hmartiro/redox/issues/25"},"comments":{"href":"https://api.github.com/repos/hmartiro/redox/issues/25/comments"},"review_comments":{"href":"https://api.github.com/repos/hmartiro/redox/pulls/25/comments"},"review_comment":{"href":"https://api.github.com/repos/hmartiro/redox/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/hmartiro/redox/pulls/25/commits"},"statuses":{"href":"https://api.github.com/repos/hmartiro/redox/statuses/4a964d09dbe1ce58ac0318ea719752721f174804"}},"merged":false,"mergeable":null,"mergeable_state":"unknown","merged_by":null,"comments":0,"review_comments":0,"commits":1,"additions":30349,"deletions":0,"changed_files":4}}