{"action":"created","issue":{"url":"https://api.github.com/repos/dotnet/roslyn/issues/14698","repository_url":"https://api.github.com/repos/dotnet/roslyn","labels_url":"https://api.github.com/repos/dotnet/roslyn/issues/14698/labels{/name}","comments_url":"https://api.github.com/repos/dotnet/roslyn/issues/14698/comments","events_url":"https://api.github.com/repos/dotnet/roslyn/issues/14698/events","html_url":"https://github.com/dotnet/roslyn/pull/14698","id":184870525,"number":14698,"title":"Compiler server should be tolerant of corrupted application settings","user":{"login":"jaredpar","id":146967,"avatar_url":"https://avatars.githubusercontent.com/u/146967?v=3","gravatar_id":"","url":"https://api.github.com/users/jaredpar","html_url":"https://github.com/jaredpar","followers_url":"https://api.github.com/users/jaredpar/followers","following_url":"https://api.github.com/users/jaredpar/following{/other_user}","gists_url":"https://api.github.com/users/jaredpar/gists{/gist_id}","starred_url":"https://api.github.com/users/jaredpar/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jaredpar/subscriptions","organizations_url":"https://api.github.com/users/jaredpar/orgs","repos_url":"https://api.github.com/users/jaredpar/repos","events_url":"https://api.github.com/users/jaredpar/events{/privacy}","received_events_url":"https://api.github.com/users/jaredpar/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/dotnet/roslyn/labels/Approved%20for%20next%20preview","name":"Approved for next preview","color":"fbca04"},{"url":"https://api.github.com/repos/dotnet/roslyn/labels/Area-Compilers","name":"Area-Compilers","color":"5319e7"},{"url":"https://api.github.com/repos/dotnet/roslyn/labels/cla-already-signed","name":"cla-already-signed","color":"009800"}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":6,"created_at":"2016-10-24T15:15:27Z","updated_at":"2016-10-24T22:25:31Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/dotnet/roslyn/pulls/14698","html_url":"https://github.com/dotnet/roslyn/pull/14698","diff_url":"https://github.com/dotnet/roslyn/pull/14698.diff","patch_url":"https://github.com/dotnet/roslyn/pull/14698.patch"},"body":"When a machine.config or app.config is corrupted it's possible for `ConfigurationManager.AppSettings` to throw an exception.  The compiler server was not tolerant of such a failure and as a result would terminate immediately after startup.\r\n\r\nThe compiler workflow is generally very tolerant of failures in the server.  It is an optimization only, and any crashes, bad results, etc ... are ignored and the workflow will fall back to the command line.  Failing on startup is one case the workflow does not handle well right now.  The workflow does not distinguish between a crash at startup and a very slow JIT situation (as is the case with old, single core machines).  As such it ends up adding an unnecessary 25 second delay to the compilation.  Issue #14265 tracks fixing this delay but it won't make RC.\r\n\r\nUp until now only one incident of corrupted app settings was reported and it was considered an extremely unlikely problem (as it would break a lot of apps).  Going through VS feedback last night I found one other incident which could would be explained by this problem.  Hence it's possible this is more likley than originally thought (although still very rare) and decided to put it into RC.\r\n\r\ncloses #14288"},"comment":{"url":"https://api.github.com/repos/dotnet/roslyn/issues/comments/255883887","html_url":"https://github.com/dotnet/roslyn/pull/14698#issuecomment-255883887","issue_url":"https://api.github.com/repos/dotnet/roslyn/issues/14698","id":255883887,"user":{"login":"agocke","id":515774,"avatar_url":"https://avatars.githubusercontent.com/u/515774?v=3","gravatar_id":"","url":"https://api.github.com/users/agocke","html_url":"https://github.com/agocke","followers_url":"https://api.github.com/users/agocke/followers","following_url":"https://api.github.com/users/agocke/following{/other_user}","gists_url":"https://api.github.com/users/agocke/gists{/gist_id}","starred_url":"https://api.github.com/users/agocke/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/agocke/subscriptions","organizations_url":"https://api.github.com/users/agocke/orgs","repos_url":"https://api.github.com/users/agocke/repos","events_url":"https://api.github.com/users/agocke/events{/privacy}","received_events_url":"https://api.github.com/users/agocke/received_events","type":"User","site_admin":false},"created_at":"2016-10-24T22:25:31Z","updated_at":"2016-10-24T22:25:31Z","body":"@jaredpar I think, at the very least, we should write the exception to the logger.\r\n\r\nBeyond that, I'm tempted to write it to console out as well. MSBuild won't see that, but if you're manually configuring the app.config I imagine you're probably somewhat knowledgeable about how VBCSCompiler.exe works anyway (or at least you should be)."}}
{"actor":{"display_login":"agocke"}}