{"action":"created","issue":{"url":"https://api.github.com/repos/golang/go/issues/10189","labels_url":"https://api.github.com/repos/golang/go/issues/10189/labels{/name}","comments_url":"https://api.github.com/repos/golang/go/issues/10189/comments","events_url":"https://api.github.com/repos/golang/go/issues/10189/events","html_url":"https://github.com/golang/go/issues/10189","id":62720236,"number":10189,"title":"runtime: TestLFStackStress fails on darwin/arm on Apple A7 chip","user":{"login":"crawshaw","id":161319,"avatar_url":"https://avatars.githubusercontent.com/u/161319?v=3","gravatar_id":"","url":"https://api.github.com/users/crawshaw","html_url":"https://github.com/crawshaw","followers_url":"https://api.github.com/users/crawshaw/followers","following_url":"https://api.github.com/users/crawshaw/following{/other_user}","gists_url":"https://api.github.com/users/crawshaw/gists{/gist_id}","starred_url":"https://api.github.com/users/crawshaw/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/crawshaw/subscriptions","organizations_url":"https://api.github.com/users/crawshaw/orgs","repos_url":"https://api.github.com/users/crawshaw/repos","events_url":"https://api.github.com/users/crawshaw/events{/privacy}","received_events_url":"https://api.github.com/users/crawshaw/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":{"url":"https://api.github.com/repos/golang/go/milestones/6","html_url":"https://github.com/golang/go/milestones/Unplanned","labels_url":"https://api.github.com/repos/golang/go/milestones/6/labels","id":1055141,"number":6,"title":"Unplanned","description":"No plan to fix in any specific release.\r\n","creator":{"login":"rsc","id":104030,"avatar_url":"https://avatars.githubusercontent.com/u/104030?v=3","gravatar_id":"","url":"https://api.github.com/users/rsc","html_url":"https://github.com/rsc","followers_url":"https://api.github.com/users/rsc/followers","following_url":"https://api.github.com/users/rsc/following{/other_user}","gists_url":"https://api.github.com/users/rsc/gists{/gist_id}","starred_url":"https://api.github.com/users/rsc/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rsc/subscriptions","organizations_url":"https://api.github.com/users/rsc/orgs","repos_url":"https://api.github.com/users/rsc/repos","events_url":"https://api.github.com/users/rsc/events{/privacy}","received_events_url":"https://api.github.com/users/rsc/received_events","type":"User","site_admin":false},"open_issues":1099,"closed_issues":1,"state":"open","created_at":"2015-04-06T20:47:19Z","updated_at":"2015-04-10T05:34:29Z","due_on":"2099-12-31T05:00:00Z","closed_at":null},"comments":4,"created_at":"2015-03-18T15:21:41Z","updated_at":"2015-04-10T07:39:53Z","closed_at":null,"body":"$ go test -cpu=2 -run=TestLFStackStress runtime\r\n--- FAIL: TestLFStackStress-2 (0.58s)\r\nlfstack_test.go:128: Wrong number of nodes 3/100\r\nFAIL\r\n\r\nThere is also a -cpu=2 channel test failure (TestMultiConsumer), so to rule out the wait channel in the test I tried, rather crudely, swapping it out for a WaitGroup. With the WaitGroup it gives exactly the same error as above, which points in the direction of atomicload64 / cas64 inside the lfstack implementation."},"comment":{"url":"https://api.github.com/repos/golang/go/issues/comments/91468595","html_url":"https://github.com/golang/go/issues/10189#issuecomment-91468595","issue_url":"https://api.github.com/repos/golang/go/issues/10189","id":91468595,"user":{"login":"dvyukov","id":1095328,"avatar_url":"https://avatars.githubusercontent.com/u/1095328?v=3","gravatar_id":"","url":"https://api.github.com/users/dvyukov","html_url":"https://github.com/dvyukov","followers_url":"https://api.github.com/users/dvyukov/followers","following_url":"https://api.github.com/users/dvyukov/following{/other_user}","gists_url":"https://api.github.com/users/dvyukov/gists{/gist_id}","starred_url":"https://api.github.com/users/dvyukov/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dvyukov/subscriptions","organizations_url":"https://api.github.com/users/dvyukov/orgs","repos_url":"https://api.github.com/users/dvyukov/repos","events_url":"https://api.github.com/users/dvyukov/events{/privacy}","received_events_url":"https://api.github.com/users/dvyukov/received_events","type":"User","site_admin":false},"created_at":"2015-04-10T07:39:53Z","updated_at":"2015-04-10T07:39:53Z","body":"Mutexes use cas function in lock. On linux/arm we use kernel-provided cas implementation that contains memory barriers if necessary. On darwin/arm we use our own implementation that misses memory barriers. So mutexes can well be broken."}}