{"action":"opened","issue":{"url":"https://api.github.com/repos/dotnet/coreclr/issues/8606","repository_url":"https://api.github.com/repos/dotnet/coreclr","labels_url":"https://api.github.com/repos/dotnet/coreclr/issues/8606/labels{/name}","comments_url":"https://api.github.com/repos/dotnet/coreclr/issues/8606/comments","events_url":"https://api.github.com/repos/dotnet/coreclr/issues/8606/events","html_url":"https://github.com/dotnet/coreclr/issues/8606","id":195138647,"number":8606,"title":"Debugger launch has a race condition making breakpoints in startup code are unreliable","user":{"login":"gregg-miskelly","id":11078489,"avatar_url":"https://avatars.githubusercontent.com/u/11078489?v=3","gravatar_id":"","url":"https://api.github.com/users/gregg-miskelly","html_url":"https://github.com/gregg-miskelly","followers_url":"https://api.github.com/users/gregg-miskelly/followers","following_url":"https://api.github.com/users/gregg-miskelly/following{/other_user}","gists_url":"https://api.github.com/users/gregg-miskelly/gists{/gist_id}","starred_url":"https://api.github.com/users/gregg-miskelly/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/gregg-miskelly/subscriptions","organizations_url":"https://api.github.com/users/gregg-miskelly/orgs","repos_url":"https://api.github.com/users/gregg-miskelly/repos","events_url":"https://api.github.com/users/gregg-miskelly/events{/privacy}","received_events_url":"https://api.github.com/users/gregg-miskelly/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":0,"created_at":"2016-12-13T01:55:24Z","updated_at":"2016-12-13T01:55:24Z","closed_at":null,"body":"1. Create a new process suspended\r\n2. Use RegisterForRuntimeStartup to find out about the new process\r\n3. When RegisterForRuntimeStartup fires the handler, call DebugActiveProcess and return\r\n\r\nExpected:\r\nDebugger should successfully finish the hookup before any managed code runs\r\n\r\nActual:\r\nThere is a race where sometimes managed code runs before the hookup finishes. CORDebuggerAttached gets set from coreclr!Debugger::MarkDebuggerAttachedInternal, which is being called from coreclr!Debugger::SuspendComplete.\r\n\r\nWe have seen this on various Linux distros. I can't tell for sure if this is an xplat-only problem (or maybe Linux only?) or if this applies to Windows also."}}
{"actor":{"display_login":"gregg-miskelly"}}