{"action":"created","comment":{"url":"https://api.github.com/repos/hyperledger/fabric/pulls/comments/66715828","id":66715828,"diff_hunk":"@@ -340,6 +345,9 @@ func (ca *CA) createCertificate(id string, pub interface{}, usage x509.KeyUsage,\n }\n \n func (ca *CA) createCertificateFromSpec(spec *CertificateSpec, timestamp int64, kdfKey []byte) ([]byte, error) {\n+\tmutex.Lock()","path":"membersrvc/ca/ca.go","position":23,"original_position":23,"commit_id":"df397b0e2c9ff33fbd10624beb606f3c7fbf8767","original_commit_id":"df397b0e2c9ff33fbd10624beb606f3c7fbf8767","user":{"login":"adecaro","id":782238,"avatar_url":"https://avatars.githubusercontent.com/u/782238?v=3","gravatar_id":"","url":"https://api.github.com/users/adecaro","html_url":"https://github.com/adecaro","followers_url":"https://api.github.com/users/adecaro/followers","following_url":"https://api.github.com/users/adecaro/following{/other_user}","gists_url":"https://api.github.com/users/adecaro/gists{/gist_id}","starred_url":"https://api.github.com/users/adecaro/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/adecaro/subscriptions","organizations_url":"https://api.github.com/users/adecaro/orgs","repos_url":"https://api.github.com/users/adecaro/repos","events_url":"https://api.github.com/users/adecaro/events{/privacy}","received_events_url":"https://api.github.com/users/adecaro/received_events","type":"User","site_admin":false},"body":"@jeronimoirazabal Yes, it makes sense :) I commented because I'm in general worried about locks. When they are not really needed they just reduce performances.","created_at":"2016-06-12T04:11:44Z","updated_at":"2016-06-12T04:11:44Z","html_url":"https://github.com/hyperledger/fabric/pull/1801#discussion_r66715828","pull_request_url":"https://api.github.com/repos/hyperledger/fabric/pulls/1801","_links":{"self":{"href":"https://api.github.com/repos/hyperledger/fabric/pulls/comments/66715828"},"html":{"href":"https://github.com/hyperledger/fabric/pull/1801#discussion_r66715828"},"pull_request":{"href":"https://api.github.com/repos/hyperledger/fabric/pulls/1801"}}},"pull_request":{"url":"https://api.github.com/repos/hyperledger/fabric/pulls/1801","id":73456513,"html_url":"https://github.com/hyperledger/fabric/pull/1801","diff_url":"https://github.com/hyperledger/fabric/pull/1801.diff","patch_url":"https://github.com/hyperledger/fabric/pull/1801.patch","issue_url":"https://api.github.com/repos/hyperledger/fabric/issues/1801","number":1801,"state":"open","locked":false,"title":"Mutex introduced in Membership Services","user":{"login":"jeronimoirazabal","id":1755729,"avatar_url":"https://avatars.githubusercontent.com/u/1755729?v=3","gravatar_id":"","url":"https://api.github.com/users/jeronimoirazabal","html_url":"https://github.com/jeronimoirazabal","followers_url":"https://api.github.com/users/jeronimoirazabal/followers","following_url":"https://api.github.com/users/jeronimoirazabal/following{/other_user}","gists_url":"https://api.github.com/users/jeronimoirazabal/gists{/gist_id}","starred_url":"https://api.github.com/users/jeronimoirazabal/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jeronimoirazabal/subscriptions","organizations_url":"https://api.github.com/users/jeronimoirazabal/orgs","repos_url":"https://api.github.com/users/jeronimoirazabal/repos","events_url":"https://api.github.com/users/jeronimoirazabal/events{/privacy}","received_events_url":"https://api.github.com/users/jeronimoirazabal/received_events","type":"User","site_admin":false},"body":"## Description\r\nProvide mutual exclusion in user registration, ecert generation and attributes population.\r\n\r\n## Motivation and Context\r\nThis change prevents inconsistencies by taking into account multithreading.\r\nFix  #1800\r\n\r\n## How Has This Been Tested?\r\nUnit and behave tests passed\r\nNo new test cases have been created as part of this work\r\n\r\n## Checklist:\r\n- [x] I have added a [Signed-off-by](https://github.com/hyperledger/fabric/blob/master/CONTRIBUTING.md#legal-stuff)\r\n- [x] No new documentation is required by this change\r\n- [x] No new tests are required by this change\r\n- [x] I have run [goimports](https://godoc.org/golang.org/x/tools/cmd/goimports), [go vet](https://golang.org/cmd/vet/), and [golint](https://github.com/golang/lint). I have cleaned up all valid errors and warnings in code I have added or modified. The goal is clean, consistent, and readable code.\r\n\r\nSigned-off-by: jeronimo.irazabal jeronimo.irazabal@gmail.com/iraza@ar.ibm.com\r\n","created_at":"2016-06-11T02:48:20Z","updated_at":"2016-06-12T04:11:44Z","closed_at":null,"merged_at":null,"merge_commit_sha":"af50a849ad2cad06fb703f178719515404482024","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/hyperledger/fabric/pulls/1801/commits","review_comments_url":"https://api.github.com/repos/hyperledger/fabric/pulls/1801/comments","review_comment_url":"https://api.github.com/repos/hyperledger/fabric/pulls/comments{/number}","comments_url":"https://api.github.com/repos/hyperledger/fabric/issues/1801/comments","statuses_url":"https://api.github.com/repos/hyperledger/fabric/statuses/df397b0e2c9ff33fbd10624beb606f3c7fbf8767","head":{"label":"jeronimoirazabal:code_cleanup","ref":"code_cleanup","sha":"df397b0e2c9ff33fbd10624beb606f3c7fbf8767","user":{"login":"jeronimoirazabal","id":1755729,"avatar_url":"https://avatars.githubusercontent.com/u/1755729?v=3","gravatar_id":"","url":"https://api.github.com/users/jeronimoirazabal","html_url":"https://github.com/jeronimoirazabal","followers_url":"https://api.github.com/users/jeronimoirazabal/followers","following_url":"https://api.github.com/users/jeronimoirazabal/following{/other_user}","gists_url":"https://api.github.com/users/jeronimoirazabal/gists{/gist_id}","starred_url":"https://api.github.com/users/jeronimoirazabal/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jeronimoirazabal/subscriptions","organizations_url":"https://api.github.com/users/jeronimoirazabal/orgs","repos_url":"https://api.github.com/users/jeronimoirazabal/repos","events_url":"https://api.github.com/users/jeronimoirazabal/events{/privacy}","received_events_url":"https://api.github.com/users/jeronimoirazabal/received_events","type":"User","site_admin":false},"repo":{"id":58483762,"name":"fabric","full_name":"jeronimoirazabal/fabric","owner":{"login":"jeronimoirazabal","id":1755729,"avatar_url":"https://avatars.githubusercontent.com/u/1755729?v=3","gravatar_id":"","url":"https://api.github.com/users/jeronimoirazabal","html_url":"https://github.com/jeronimoirazabal","followers_url":"https://api.github.com/users/jeronimoirazabal/followers","following_url":"https://api.github.com/users/jeronimoirazabal/following{/other_user}","gists_url":"https://api.github.com/users/jeronimoirazabal/gists{/gist_id}","starred_url":"https://api.github.com/users/jeronimoirazabal/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jeronimoirazabal/subscriptions","organizations_url":"https://api.github.com/users/jeronimoirazabal/orgs","repos_url":"https://api.github.com/users/jeronimoirazabal/repos","events_url":"https://api.github.com/users/jeronimoirazabal/events{/privacy}","received_events_url":"https://api.github.com/users/jeronimoirazabal/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/jeronimoirazabal/fabric","description":"Fabric is a blockchain project in Incubation proposed to the community and documented at https://goo.gl/RYQZ5N.  Information on what Incubation entails can be found in the Hyperledger Project Lifecycle document (https://goo.gl/4edNRc)","fork":true,"url":"https://api.github.com/repos/jeronimoirazabal/fabric","forks_url":"https://api.github.com/repos/jeronimoirazabal/fabric/forks","keys_url":"https://api.github.com/repos/jeronimoirazabal/fabric/keys{/key_id}","collaborators_url":"https://api.github.com/repos/jeronimoirazabal/fabric/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/jeronimoirazabal/fabric/teams","hooks_url":"https://api.github.com/repos/jeronimoirazabal/fabric/hooks","issue_events_url":"https://api.github.com/repos/jeronimoirazabal/fabric/issues/events{/number}","events_url":"https://api.github.com/repos/jeronimoirazabal/fabric/events","assignees_url":"https://api.github.com/repos/jeronimoirazabal/fabric/assignees{/user}","branches_url":"https://api.github.com/repos/jeronimoirazabal/fabric/branches{/branch}","tags_url":"https://api.github.com/repos/jeronimoirazabal/fabric/tags","blobs_url":"https://api.github.com/repos/jeronimoirazabal/fabric/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/jeronimoirazabal/fabric/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/jeronimoirazabal/fabric/git/refs{/sha}","trees_url":"https://api.github.com/repos/jeronimoirazabal/fabric/git/trees{/sha}","statuses_url":"https://api.github.com/repos/jeronimoirazabal/fabric/statuses/{sha}","languages_url":"https://api.github.com/repos/jeronimoirazabal/fabric/languages","stargazers_url":"https://api.github.com/repos/jeronimoirazabal/fabric/stargazers","contributors_url":"https://api.github.com/repos/jeronimoirazabal/fabric/contributors","subscribers_url":"https://api.github.com/repos/jeronimoirazabal/fabric/subscribers","subscription_url":"https://api.github.com/repos/jeronimoirazabal/fabric/subscription","commits_url":"https://api.github.com/repos/jeronimoirazabal/fabric/commits{/sha}","git_commits_url":"https://api.github.com/repos/jeronimoirazabal/fabric/git/commits{/sha}","comments_url":"https://api.github.com/repos/jeronimoirazabal/fabric/comments{/number}","issue_comment_url":"https://api.github.com/repos/jeronimoirazabal/fabric/issues/comments{/number}","contents_url":"https://api.github.com/repos/jeronimoirazabal/fabric/contents/{+path}","compare_url":"https://api.github.com/repos/jeronimoirazabal/fabric/compare/{base}...{head}","merges_url":"https://api.github.com/repos/jeronimoirazabal/fabric/merges","archive_url":"https://api.github.com/repos/jeronimoirazabal/fabric/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/jeronimoirazabal/fabric/downloads","issues_url":"https://api.github.com/repos/jeronimoirazabal/fabric/issues{/number}","pulls_url":"https://api.github.com/repos/jeronimoirazabal/fabric/pulls{/number}","milestones_url":"https://api.github.com/repos/jeronimoirazabal/fabric/milestones{/number}","notifications_url":"https://api.github.com/repos/jeronimoirazabal/fabric/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/jeronimoirazabal/fabric/labels{/name}","releases_url":"https://api.github.com/repos/jeronimoirazabal/fabric/releases{/id}","deployments_url":"https://api.github.com/repos/jeronimoirazabal/fabric/deployments","created_at":"2016-05-10T18:16:48Z","updated_at":"2016-05-10T18:16:50Z","pushed_at":"2016-06-10T23:55:51Z","git_url":"git://github.com/jeronimoirazabal/fabric.git","ssh_url":"git@github.com:jeronimoirazabal/fabric.git","clone_url":"https://github.com/jeronimoirazabal/fabric.git","svn_url":"https://github.com/jeronimoirazabal/fabric","homepage":"","size":49458,"stargazers_count":0,"watchers_count":0,"language":"Go","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":"hyperledger:master","ref":"master","sha":"bd9aea47a81cc9f715709ca0479a995e154fc081","user":{"login":"hyperledger","id":7657900,"avatar_url":"https://avatars.githubusercontent.com/u/7657900?v=3","gravatar_id":"","url":"https://api.github.com/users/hyperledger","html_url":"https://github.com/hyperledger","followers_url":"https://api.github.com/users/hyperledger/followers","following_url":"https://api.github.com/users/hyperledger/following{/other_user}","gists_url":"https://api.github.com/users/hyperledger/gists{/gist_id}","starred_url":"https://api.github.com/users/hyperledger/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/hyperledger/subscriptions","organizations_url":"https://api.github.com/users/hyperledger/orgs","repos_url":"https://api.github.com/users/hyperledger/repos","events_url":"https://api.github.com/users/hyperledger/events{/privacy}","received_events_url":"https://api.github.com/users/hyperledger/received_events","type":"Organization","site_admin":false},"repo":{"id":42975662,"name":"fabric","full_name":"hyperledger/fabric","owner":{"login":"hyperledger","id":7657900,"avatar_url":"https://avatars.githubusercontent.com/u/7657900?v=3","gravatar_id":"","url":"https://api.github.com/users/hyperledger","html_url":"https://github.com/hyperledger","followers_url":"https://api.github.com/users/hyperledger/followers","following_url":"https://api.github.com/users/hyperledger/following{/other_user}","gists_url":"https://api.github.com/users/hyperledger/gists{/gist_id}","starred_url":"https://api.github.com/users/hyperledger/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/hyperledger/subscriptions","organizations_url":"https://api.github.com/users/hyperledger/orgs","repos_url":"https://api.github.com/users/hyperledger/repos","events_url":"https://api.github.com/users/hyperledger/events{/privacy}","received_events_url":"https://api.github.com/users/hyperledger/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/hyperledger/fabric","description":"Fabric is a blockchain project in Incubation proposed to the community and documented at https://goo.gl/RYQZ5N.  Information on what Incubation entails can be found in the Hyperledger Project Lifecycle document (https://goo.gl/4edNRc)","fork":false,"url":"https://api.github.com/repos/hyperledger/fabric","forks_url":"https://api.github.com/repos/hyperledger/fabric/forks","keys_url":"https://api.github.com/repos/hyperledger/fabric/keys{/key_id}","collaborators_url":"https://api.github.com/repos/hyperledger/fabric/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/hyperledger/fabric/teams","hooks_url":"https://api.github.com/repos/hyperledger/fabric/hooks","issue_events_url":"https://api.github.com/repos/hyperledger/fabric/issues/events{/number}","events_url":"https://api.github.com/repos/hyperledger/fabric/events","assignees_url":"https://api.github.com/repos/hyperledger/fabric/assignees{/user}","branches_url":"https://api.github.com/repos/hyperledger/fabric/branches{/branch}","tags_url":"https://api.github.com/repos/hyperledger/fabric/tags","blobs_url":"https://api.github.com/repos/hyperledger/fabric/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/hyperledger/fabric/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/hyperledger/fabric/git/refs{/sha}","trees_url":"https://api.github.com/repos/hyperledger/fabric/git/trees{/sha}","statuses_url":"https://api.github.com/repos/hyperledger/fabric/statuses/{sha}","languages_url":"https://api.github.com/repos/hyperledger/fabric/languages","stargazers_url":"https://api.github.com/repos/hyperledger/fabric/stargazers","contributors_url":"https://api.github.com/repos/hyperledger/fabric/contributors","subscribers_url":"https://api.github.com/repos/hyperledger/fabric/subscribers","subscription_url":"https://api.github.com/repos/hyperledger/fabric/subscription","commits_url":"https://api.github.com/repos/hyperledger/fabric/commits{/sha}","git_commits_url":"https://api.github.com/repos/hyperledger/fabric/git/commits{/sha}","comments_url":"https://api.github.com/repos/hyperledger/fabric/comments{/number}","issue_comment_url":"https://api.github.com/repos/hyperledger/fabric/issues/comments{/number}","contents_url":"https://api.github.com/repos/hyperledger/fabric/contents/{+path}","compare_url":"https://api.github.com/repos/hyperledger/fabric/compare/{base}...{head}","merges_url":"https://api.github.com/repos/hyperledger/fabric/merges","archive_url":"https://api.github.com/repos/hyperledger/fabric/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/hyperledger/fabric/downloads","issues_url":"https://api.github.com/repos/hyperledger/fabric/issues{/number}","pulls_url":"https://api.github.com/repos/hyperledger/fabric/pulls{/number}","milestones_url":"https://api.github.com/repos/hyperledger/fabric/milestones{/number}","notifications_url":"https://api.github.com/repos/hyperledger/fabric/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/hyperledger/fabric/labels{/name}","releases_url":"https://api.github.com/repos/hyperledger/fabric/releases{/id}","deployments_url":"https://api.github.com/repos/hyperledger/fabric/deployments","created_at":"2015-09-23T03:17:14Z","updated_at":"2016-06-11T20:58:37Z","pushed_at":"2016-06-12T03:04:58Z","git_url":"git://github.com/hyperledger/fabric.git","ssh_url":"git@github.com:hyperledger/fabric.git","clone_url":"https://github.com/hyperledger/fabric.git","svn_url":"https://github.com/hyperledger/fabric","homepage":"","size":77439,"stargazers_count":762,"watchers_count":762,"language":"Go","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":675,"mirror_url":null,"open_issues_count":358,"forks":675,"open_issues":358,"watchers":762,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/hyperledger/fabric/pulls/1801"},"html":{"href":"https://github.com/hyperledger/fabric/pull/1801"},"issue":{"href":"https://api.github.com/repos/hyperledger/fabric/issues/1801"},"comments":{"href":"https://api.github.com/repos/hyperledger/fabric/issues/1801/comments"},"review_comments":{"href":"https://api.github.com/repos/hyperledger/fabric/pulls/1801/comments"},"review_comment":{"href":"https://api.github.com/repos/hyperledger/fabric/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/hyperledger/fabric/pulls/1801/commits"},"statuses":{"href":"https://api.github.com/repos/hyperledger/fabric/statuses/df397b0e2c9ff33fbd10624beb606f3c7fbf8767"}}}}
{"actor":{"display_login":"adecaro"}}