{"action":"created","issue":{"url":"https://api.github.com/repos/mono/mono/issues/10502","repository_url":"https://api.github.com/repos/mono/mono","labels_url":"https://api.github.com/repos/mono/mono/issues/10502/labels{/name}","comments_url":"https://api.github.com/repos/mono/mono/issues/10502/comments","events_url":"https://api.github.com/repos/mono/mono/issues/10502/events","html_url":"https://github.com/mono/mono/pull/10502","id":357955589,"node_id":"MDExOlB1bGxSZXF1ZXN0MjEzODQyOTEz","number":10502,"title":"Fix MonoTests.System.Linq.ParallelEnumerableTests.TestGroupBy frequently crashing on FullAOT/LLVM/Linux/amd64 CI.","user":{"login":"jaykrell","id":1635728,"node_id":"MDQ6VXNlcjE2MzU3Mjg=","avatar_url":"https://avatars1.githubusercontent.com/u/1635728?v=4","gravatar_id":"","url":"https://api.github.com/users/jaykrell","html_url":"https://github.com/jaykrell","followers_url":"https://api.github.com/users/jaykrell/followers","following_url":"https://api.github.com/users/jaykrell/following{/other_user}","gists_url":"https://api.github.com/users/jaykrell/gists{/gist_id}","starred_url":"https://api.github.com/users/jaykrell/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jaykrell/subscriptions","organizations_url":"https://api.github.com/users/jaykrell/orgs","repos_url":"https://api.github.com/users/jaykrell/repos","events_url":"https://api.github.com/users/jaykrell/events{/privacy}","received_events_url":"https://api.github.com/users/jaykrell/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":11,"created_at":"2018-09-07T07:43:05Z","updated_at":"2018-09-08T09:59:17Z","closed_at":null,"author_association":"MEMBER","pull_request":{"url":"https://api.github.com/repos/mono/mono/pulls/10502","html_url":"https://github.com/mono/mono/pull/10502","diff_url":"https://github.com/mono/mono/pull/10502.diff","patch_url":"https://github.com/mono/mono/pull/10502.patch"},"body":"https://github.com/mono/mono/issues/10441\r\nhttps://github.com/mono/mono/issues/9554\r\nhttps://github.com/mono/mono/issues/9046\r\n\r\nSee https://github.com/mono/mono/commit/8dd12eab7fa2f2fac79cad5c751be7c2795683d4.\r\n\r\nNote that I don't have a detailed analysis of the codegen before/after bad/good.\r\nThis is based on a lot of guessing and experimenting, and the experimenting is conclusive.\r\nI had a greater than 10% failure rate without this, and 100% passing with.\r\nIt could be this covers up something else.\r\ngsharedvt is obviously involved with the repro.\r\nI don't have an explanation for the flakiness, or the Linux-specificity.\r\nBut the repro rates were high without this and zero with this, so this fixes it.\r\nWe can also bear this out in time with CI.\r\nI looked into preserving more registers, i.e. in the nearby safepoint callout.\r\nThat didn't seem to work, but if it did, would explain flakiness.\r\n Oh, I also hacked JIT to not emit safe points and that didn't help, so that should rule that out.\r\nRemoving parallel from the test also made it not repro.\r\n\r\nThe way gsharedvt works, I doubt anyone will mind this pessimization.\r\nIn the test, we call memcpy frequently to copy 4 bytes. Actual calls. For a constant 4 bytes. With LLVM. To compute the hash of an int. You can see it in some of the repros.\r\n\r\nIt is still reasonable to suspect this is a problem of register preservation."},"comment":{"url":"https://api.github.com/repos/mono/mono/issues/comments/419628617","html_url":"https://github.com/mono/mono/pull/10502#issuecomment-419628617","issue_url":"https://api.github.com/repos/mono/mono/issues/10502","id":419628617,"node_id":"MDEyOklzc3VlQ29tbWVudDQxOTYyODYxNw==","user":{"login":"vargaz","id":186301,"node_id":"MDQ6VXNlcjE4NjMwMQ==","avatar_url":"https://avatars3.githubusercontent.com/u/186301?v=4","gravatar_id":"","url":"https://api.github.com/users/vargaz","html_url":"https://github.com/vargaz","followers_url":"https://api.github.com/users/vargaz/followers","following_url":"https://api.github.com/users/vargaz/following{/other_user}","gists_url":"https://api.github.com/users/vargaz/gists{/gist_id}","starred_url":"https://api.github.com/users/vargaz/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/vargaz/subscriptions","organizations_url":"https://api.github.com/users/vargaz/orgs","repos_url":"https://api.github.com/users/vargaz/repos","events_url":"https://api.github.com/users/vargaz/events{/privacy}","received_events_url":"https://api.github.com/users/vargaz/received_events","type":"User","site_admin":false},"created_at":"2018-09-08T09:59:17Z","updated_at":"2018-09-08T09:59:17Z","author_association":"MEMBER","body":"Shouldn't MonoGSharedVtMethodRuntimeInfo->locals_size be increased instead ?\r\n"}}
{"actor":{"display_login":"vargaz"}}