{"push_id":1096834150,"size":352,"distinct_size":319,"ref":"refs/heads/coop-n2m-eh-callback","head":"6eae03402ab22d1c28e296e48a46f5a5a75abf90","before":"8da8c1f64ec3d8b8796423c55b9776b109feb5be","commits":[{"sha":"e3719ebcfcbf5d523552e9955c6de6fac85ee7da","author":{"email":"9bcdb635b784303928fbdb35ade19d125842eb5e@live.com","name":"Matthew Leibowitz"},"message":"[system] WebSocket continuation frame incorrectly handles the message type opcode\nWhen a frame marked with OPCODE 0, it is a continuation frame. This frame does not carry the message type and should be derived from the previous frame.","distinct":false,"url":"https://api.github.com/repos/ludovic-henry/mono/commits/e3719ebcfcbf5d523552e9955c6de6fac85ee7da"},{"sha":"12ff2e4514bfe403714b54a239765d12ad326dde","author":{"email":"146473bcb6ff4a8b8b564d04e59c99d8296501cb@xamarin.com","name":"Ludovic Henry"},"message":"[io-layer] Remove dead code","distinct":false,"url":"https://api.github.com/repos/ludovic-henry/mono/commits/12ff2e4514bfe403714b54a239765d12ad326dde"},{"sha":"6277ba55de75c3a760ba030e112485a623c02d89","author":{"email":"146473bcb6ff4a8b8b564d04e59c99d8296501cb@xamarin.com","name":"Ludovic Henry"},"message":"[runtime] Fix potential overflow when using mono_msec_ticks\n\nBecause mono_msec_ticks would previously return the number of milliseconds since boot time, it would overflow after ~49 days. That would mean that anywhere you would use it, you would need to be careful of arithmetic overflow.\n\nBy simply returning a gint64 we will not overflow before ~30k years.\n\nFixes bug https://bugzilla.xamarin.com/show_bug.cgi?id=38666","distinct":false,"url":"https://api.github.com/repos/ludovic-henry/mono/commits/6277ba55de75c3a760ba030e112485a623c02d89"},{"sha":"a6582f44057c6e62f7c72c7166e45693eb2aeebd","author":{"email":"146473bcb6ff4a8b8b564d04e59c99d8296501cb@xamarin.com","name":"Ludovic Henry"},"message":"[mini] Add missing gsharedvt write barrier\n\nThe following test would trigger a SIGSEGV during a GC collection:\n\n```\nobject _Lock;\nC5.HashedLinkedList<byte[]> _Set;\nList<byte[]> _Candidates;\n\nvoid Run ()\n{\n    _Lock = new object ();\n    _Set = new C5.HashedLinkedList<byte[]>(new Core.CommonUtils.ByteArrayComparer());\n\n    BuildList ();\n\n    for (var i = 0; i < 10; ++i) {\n\t     Task.Run (() => WorkOnSet ());\n\t}\n}\n\nvoid BuildList() {\n    _Candidates = new List<byte[]>();\n\n    Random r = new Random();\n\tfor(var i = 0; i < 20; ++i) {\n\t    var key = new byte[16];\n\t\tr.NextBytes(key);\n\t\t_Candidates.Add(key);\n\t}\n}\n\nvoid WorkOnSet() {\n    Random r = new Random();\n\tfor (;;) {\n\t    byte[] src = _Candidates [r.Next (_Candidates.Count)];\n\t\tbyte[] key = new byte[src.Length];\n\n        for (int i = 0; i < src.Length; ++i)\n\t\t    key [i] = src [i];\n\n        lock(_Lock) {\n\t\t    if(r.Next (2) != 0)\n\t\t\t    _Set.Add(key);\n\t\t\telse\n\t\t\t    _Set.Remove(key);\n\t\t}\n\t}\n}\n```\n\nThe binary protocol just before the crash would be as follow:\n\n```\ncollection_requested generation 0 requested_size 4096 force false\ncollection_begin index 14 generation 0\n  copy from 0x3150658 to 0x47e0e40 vtable 0x189f1780 size 24\n  gray_enqueue queue 0xa4a2d0 cursor 0x3b68178 value 0x47e0e40\n  gray_dequeue queue 0xa4a2d0 cursor 0x3b68178 value 0x47e0e40\n  scan_begin obj 0x47e0e40 vtable 0x189f1780 size 24\n  scan_process_reference obj 0x47e0e40 ptr 0x47e0e48 value 0x3150618\n  scan_process_reference obj 0x47e0e40 ptr 0x47e0e4c value 0x3150638\n  scan_process_reference obj 0x47e0e40 ptr 0x47e0e50 value 0x0       <----- here the value is 0x0\n  scan_process_reference obj 0x47e0db0 ptr 0x47e0dc0 value 0x47e0e40\ncollection_end 14 generation 0 scanned 0 unique 0 0.00%\n wbarrier ptr 0x3af8710 value 0x47e0e40 value_vtable 0x189f1780\ncollection_requested generation 0 requested_size 4096 force false\ncollection_begin index 15 generation 0\ncollection_end 15 generation 0 scanned 0 unique 0 0.00%\ncollection_requested generation 0 requested_size 4096 force false\ncollection_begin index 16 generation 0\n  card_scan start 0x47e0df8 size 520\n  scan_begin obj 0x47e0e40 vtable 0x189f1780 size 24\n  scan_process_reference obj 0x47e0e40 ptr 0x47e0e48 value 0x47b4d40\n  scan_process_reference obj 0x47e0e40 ptr 0x47e0e4c value 0x47b03c0\n  scan_process_reference obj 0x47e0e40 ptr 0x47e0e50 value 0x3100800 <----- here the value is 0x3100800, but no WB in between\n```\n\nObject at 0x47e0e40 is a C5.HashSet<T>.Bucket with T a C5.KeyValuePair<byte[],C5.HashedLinkedList<byte[]>.Node>. The memory layout of C5.HashSet<T>.Bucket would be as follow:\n\nclass Bucket {\n item: offset 8 size 8\n overflow: offset 16 size 4\n hashval: offset 20 size 4\n}\n\nSo the bug would manifest itself as a missing write barrier when writing to Bucket.overflow, leading to the premature sweeping of a Bucket object. The Bucket.overflow value would then point to the middle of an object, triggering a SIGSEGV when trying to access its vtable.","distinct":false,"url":"https://api.github.com/repos/ludovic-henry/mono/commits/a6582f44057c6e62f7c72c7166e45693eb2aeebd"},{"sha":"e19a2e2c403ac45fb5eab6c06dbe5108f8b6e542","author":{"email":"146473bcb6ff4a8b8b564d04e59c99d8296501cb@xamarin.com","name":"Ludovic Henry"},"message":"[Process] Fix System.Diagnostics.ProcessTest.StandardInputWrite\n\nThe child process would simpky execute ls, then exiting right away. Writing to its stdin would then crash with \"EPIPE: An attempt is made to write to a pipe that is not open for reading by any process.\" as the child process exited.","distinct":false,"url":"https://api.github.com/repos/ludovic-henry/mono/commits/e19a2e2c403ac45fb5eab6c06dbe5108f8b6e542"},{"sha":"4d0f6bb13894f95c18d780a0f7c4ffb854bd3148","author":{"email":"146473bcb6ff4a8b8b564d04e59c99d8296501cb@xamarin.com","name":"Ludovic Henry"},"message":"[Process] Improve debugging info and slight refactor of CreateProcess","distinct":false,"url":"https://api.github.com/repos/ludovic-henry/mono/commits/4d0f6bb13894f95c18d780a0f7c4ffb854bd3148"},{"sha":"a39f7fce2161cefba34a18a037bb36749a1a35b0","author":{"email":"146473bcb6ff4a8b8b564d04e59c99d8296501cb@xamarin.com","name":"Ludovic Henry"},"message":"[Process] Fix handle leak on child process Creation\n\nFixes https://bugzilla.xamarin.com/show_bug.cgi?id=40643","distinct":false,"url":"https://api.github.com/repos/ludovic-henry/mono/commits/a39f7fce2161cefba34a18a037bb36749a1a35b0"},{"sha":"06e12b837f24c7b5463f59bbb71745417a63895d","author":{"email":"7e55cbf9d545e8862c01716ea4040eac7d20c157@jetbrains.com","name":"Mikhail Filippov"},"message":"Socket.AcceptAsync shouldn't create new socket if SocketAsyncEventArgs.AcceptSocket isn't null","distinct":false,"url":"https://api.github.com/repos/ludovic-henry/mono/commits/06e12b837f24c7b5463f59bbb71745417a63895d"},{"sha":"2061cb2b5720754a717553a4cea7daf283b65fbf","author":{"email":"7dcd630f85c140e8da00a93eda90938f64a3ee05@gmail.com","name":"Josh Peterson"},"message":"Make xbuild on Windows use Mono instead of .NET\n\nWe don't have .NEt 4.6 installed on all of our build machines, to\nrunning mcs.exe on Windows fails, as it was built with .NET 4.6.\nInstead, we will run mcs.exe via Mono on Windows (which is what happens\non OSX, although there the low-level Process class handles it).\n\nTo accomplish this, we run mcs.bat instead of mcs.exe.","distinct":false,"url":"https://api.github.com/repos/ludovic-henry/mono/commits/2061cb2b5720754a717553a4cea7daf283b65fbf"},{"sha":"6b139f4c98eb90bfb7e1285933fc682dae541cad","author":{"email":"146473bcb6ff4a8b8b564d04e59c99d8296501cb@xamarin.com","name":"Ludovic Henry"},"message":"Merge pull request #2721 from ludovic-henry/fix-mono_ms_ticks\n\n[runtime] Fix potential overflow when using mono_msec_ticks","distinct":false,"url":"https://api.github.com/repos/ludovic-henry/mono/commits/6b139f4c98eb90bfb7e1285933fc682dae541cad"},{"sha":"df3f7b268f37497afca90473ef7ca6ca9f6649fb","author":{"email":"a4d3028640b16b8635f2d7ab9cbb07a71466c3cb@outlook.com","name":"Alexander Köplinger"},"message":"Revert \"[runtime] Fix potential overflow when using mono_msec_ticks\"","distinct":false,"url":"https://api.github.com/repos/ludovic-henry/mono/commits/df3f7b268f37497afca90473ef7ca6ca9f6649fb"},{"sha":"c4ae0fa832464e3508aa84c3342bfbedebfb363f","author":{"email":"a4d3028640b16b8635f2d7ab9cbb07a71466c3cb@outlook.com","name":"Alexander Köplinger"},"message":"Merge pull request #2952 from mono/revert-2721-fix-mono_ms_ticks\n\nRevert \"[runtime] Fix potential overflow when using mono_msec_ticks\"","distinct":false,"url":"https://api.github.com/repos/ludovic-henry/mono/commits/c4ae0fa832464e3508aa84c3342bfbedebfb363f"},{"sha":"10a841ae2bd2cf04dcbdb81465ee5d5df00ec8e0","author":{"email":"146473bcb6ff4a8b8b564d04e59c99d8296501cb@xamarin.com","name":"Ludovic Henry"},"message":"[io-layer] Remove dead code","distinct":false,"url":"https://api.github.com/repos/ludovic-henry/mono/commits/10a841ae2bd2cf04dcbdb81465ee5d5df00ec8e0"},{"sha":"2df509653e70d3e43576f6bf16e62b21090171e3","author":{"email":"a4d3028640b16b8635f2d7ab9cbb07a71466c3cb@outlook.com","name":"Alexander Köplinger"},"message":"[corlib] Bring the FileInfo.Delete fix\n\nSee https://github.com/mono/referencesource/commit/fdebd8a4d709002bb499555c35e1dfd3834e2f4f for details.\n\nAlso add a test for checking if deleting a non-existent file works (we were missing coverage there before).","distinct":false,"url":"https://api.github.com/repos/ludovic-henry/mono/commits/2df509653e70d3e43576f6bf16e62b21090171e3"},{"sha":"4bbe4d5e493a425adee26051335f9f75cae7b317","author":{"email":"146473bcb6ff4a8b8b564d04e59c99d8296501cb@xamarin.com","name":"Ludovic Henry"},"message":"Merge pull request #2924 from ludovic-henry/fix-missing-gsharedvt-wb\n\n[mini] Add missing gsharedvt write barrier","distinct":false,"url":"https://api.github.com/repos/ludovic-henry/mono/commits/4bbe4d5e493a425adee26051335f9f75cae7b317"},{"sha":"ab4737fce5b1b17bb727dcd74b098474238a45d6","author":{"email":"146473bcb6ff4a8b8b564d04e59c99d8296501cb@xamarin.com","name":"Ludovic Henry"},"message":"Merge pull request #2946 from ludovic-henry/fix-process-40643\n\n[Process] Fix Process.Start handle leak","distinct":false,"url":"https://api.github.com/repos/ludovic-henry/mono/commits/ab4737fce5b1b17bb727dcd74b098474238a45d6"},{"sha":"9e3c032ab23814da936cce25a5f23261e106adcd","author":{"email":"bfb2c2abbdfba0603527285e3386c80b601939fe@gmail.com","name":"Zoltan Varga"},"message":"[runtime] Remove dead mono_thread_get_and_clear_pending_exception () function.","distinct":false,"url":"https://api.github.com/repos/ludovic-henry/mono/commits/9e3c032ab23814da936cce25a5f23261e106adcd"},{"sha":"f0f9b6ac90921e131b3aa90ba2b7107dd3163b15","author":{"email":"a4d3028640b16b8635f2d7ab9cbb07a71466c3cb@outlook.com","name":"Alexander Köplinger"},"message":"[corlib] Ignore a TimeZoneInfo test on mobile that doesn't make sense there\n\nIt failed on maccore because it uses reflection on code that's excluded on mobile.\nExclude the test too, fixes part 1 of #40624","distinct":false,"url":"https://api.github.com/repos/ludovic-henry/mono/commits/f0f9b6ac90921e131b3aa90ba2b7107dd3163b15"},{"sha":"c602e3b04c38b1e39d2aea74ffb079f803334641","author":{"email":"a4d3028640b16b8635f2d7ab9cbb07a71466c3cb@outlook.com","name":"Alexander Köplinger"},"message":"[corlib] Fix FileInfoTest.MoveTo_SameName test that failed on mobile\n\nThe MoveTo target is in the current working directory instead of in the temp dir, so it runs into permission issues.\nUse the temp dir instead. Fixes part 2 of #40624","distinct":false,"url":"https://api.github.com/repos/ludovic-henry/mono/commits/c602e3b04c38b1e39d2aea74ffb079f803334641"},{"sha":"a9554fdcbcb789dfb4341616c0a678a5c56efc2f","author":{"email":"a4d3028640b16b8635f2d7ab9cbb07a71466c3cb@outlook.com","name":"Alexander Köplinger"},"message":"Merge pull request #2953 from mono/fix-fileinfo-delete\n\n[corlib] Bring the FileInfo.Delete fix","distinct":false,"url":"https://api.github.com/repos/ludovic-henry/mono/commits/a9554fdcbcb789dfb4341616c0a678a5c56efc2f"}]}