In the P5 usability study, the participant at one point ended up with the analyzer no longer reporting issues. This tanked their productivity and there was no indication that there was anything going wrong.
When the analyzer is not responsive, we should non-modally alert the user as to the failure, and attempt to restart the analyzer.
cc @jwren @alexander-doroshko
I'm not sure how to detect that the analyzer doesn't report issues that it should.
But I'd like to return back the 'Restart Analyzer' button back to the visible place (Dart Analysis tool window). And a lot of 2016.3 EAP users asked me to bring it back as they have problems with the analyzer (but for some reason they do not report them to the issue tracker).
//cc @devoncarew
IMO the analyzer is like your windowserver. If it's dead, your machine is dead. There is no "restart my windowserver" button. It just comes back automatically as you would expect a daemon should. If it fails to, it barfs loudly (at least on Mac and I would assume Windows). It also phones-home to tell the developers of the horrible thing it just did (crash).
I'd like us to get to a similar state with the analyzer. Whereby users don't ever have to worry about if it's working. If it doesn't, it tells developers so they can fix it. If it ever has a hiccup, it silently fixes itself.
FYI @bwilkerson
Sounds like the analysis server needs a heartbeat.
We're looking at improving the analysis server status display in the Dart Analysis view, and providing better ways for the user to provide feedback when there are issues.
@devoncarew will this be resolved by the new driver?
will this be resolved by the new driver?
No, but our expectation is that server should crash far less often, so the new driver should mitigate the problem. This issue is really about managing the execution of a separate process, not the implementation of that process.
Since this was filed, we've dropped out error rate to about 17% of where it was (partly as a result of the analysis driver work). We've added user driven reporting to tools (atom, vscode, and intellij) and a status check / heartbeat in intellij. We'll continue to whittle away at the error rate, and do plan to add automated crash reporting to the analysis server in the future (tracked in https://github.com/dart-lang/sdk/issues/29227). Closing this specific item.