{"action":"created","issue":{"url":"https://api.github.com/repos/weaveworks/weave/issues/883","labels_url":"https://api.github.com/repos/weaveworks/weave/issues/883/labels{/name}","comments_url":"https://api.github.com/repos/weaveworks/weave/issues/883/comments","events_url":"https://api.github.com/repos/weaveworks/weave/issues/883/events","html_url":"https://github.com/weaveworks/weave/issues/883","id":86646159,"number":883,"title":"undefined behaviour due to missing lock","user":{"login":"rade","id":109109,"avatar_url":"https://avatars.githubusercontent.com/u/109109?v=3","gravatar_id":"","url":"https://api.github.com/users/rade","html_url":"https://github.com/rade","followers_url":"https://api.github.com/users/rade/followers","following_url":"https://api.github.com/users/rade/following{/other_user}","gists_url":"https://api.github.com/users/rade/gists{/gist_id}","starred_url":"https://api.github.com/users/rade/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rade/subscriptions","organizations_url":"https://api.github.com/users/rade/orgs","repos_url":"https://api.github.com/users/rade/repos","events_url":"https://api.github.com/users/rade/events{/privacy}","received_events_url":"https://api.github.com/users/rade/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/weaveworks/weave/labels/bug","name":"bug","color":"fc2929"}],"state":"open","locked":false,"assignee":null,"milestone":{"url":"https://api.github.com/repos/weaveworks/weave/milestones/5","html_url":"https://github.com/weaveworks/weave/milestones/1.0","labels_url":"https://api.github.com/repos/weaveworks/weave/milestones/5/labels","id":1133594,"number":5,"title":"1.0","description":"","creator":{"login":"rade","id":109109,"avatar_url":"https://avatars.githubusercontent.com/u/109109?v=3","gravatar_id":"","url":"https://api.github.com/users/rade","html_url":"https://github.com/rade","followers_url":"https://api.github.com/users/rade/followers","following_url":"https://api.github.com/users/rade/following{/other_user}","gists_url":"https://api.github.com/users/rade/gists{/gist_id}","starred_url":"https://api.github.com/users/rade/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rade/subscriptions","organizations_url":"https://api.github.com/users/rade/orgs","repos_url":"https://api.github.com/users/rade/repos","events_url":"https://api.github.com/users/rade/events{/privacy}","received_events_url":"https://api.github.com/users/rade/received_events","type":"User","site_admin":false},"open_issues":24,"closed_issues":79,"state":"open","created_at":"2015-05-26T11:54:10Z","updated_at":"2015-06-09T15:53:19Z","due_on":"2015-06-17T23:00:00Z","closed_at":null},"comments":1,"created_at":"2015-06-09T15:53:19Z","updated_at":"2015-06-09T15:56:29Z","closed_at":null,"body":"https://github.com/weaveworks/weave/pull/644/files#diff-cfe2627cdf474129c8472687ea4d5a4dR139 was meant to call `LocalPeer.Encode`, but instead invokes `Peer.Encode`. As a result we are not taking the lock on `LocalPeer` and iterate over its connection map while it may be written to concurrently.\r\n\r\nSome quick googling hasn't come up with any definitive account of what the consequences are. So we have to assume it could to anything. including crash, loop indefinitely, send an email to all your friends, etc.\r\n\r\n[Spotted by @bboreham](https://github.com/weaveworks/weave/commit/5bd8730353a71f3588f2adac13d4d3f097999402#commitcomment-11590700)"},"comment":{"url":"https://api.github.com/repos/weaveworks/weave/issues/comments/110413322","html_url":"https://github.com/weaveworks/weave/issues/883#issuecomment-110413322","issue_url":"https://api.github.com/repos/weaveworks/weave/issues/883","id":110413322,"user":{"login":"rade","id":109109,"avatar_url":"https://avatars.githubusercontent.com/u/109109?v=3","gravatar_id":"","url":"https://api.github.com/users/rade","html_url":"https://github.com/rade","followers_url":"https://api.github.com/users/rade/followers","following_url":"https://api.github.com/users/rade/following{/other_user}","gists_url":"https://api.github.com/users/rade/gists{/gist_id}","starred_url":"https://api.github.com/users/rade/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rade/subscriptions","organizations_url":"https://api.github.com/users/rade/orgs","repos_url":"https://api.github.com/users/rade/repos","events_url":"https://api.github.com/users/rade/events{/privacy}","received_events_url":"https://api.github.com/users/rade/received_events","type":"User","site_admin":false},"created_at":"2015-06-09T15:56:29Z","updated_at":"2015-06-09T15:56:29Z","body":"The apparent fix is trivial but we'd want to run some multiweave stress test to ascertain whether this lengthens the many-node startup time, or, worse, break anything."}}