You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
In Ghcide I sometimes see an OtherParseException ThreadKilled coming out, as a result of a YAML parsing that got aborted. Unfortunately, the various layers of Ghcide consider that a deterministic errors, and thus never bother to retry the YAML parsing, leaving the IDE in a broken state.
It feels like the right solution is for YAML to rethrow any exceptions it doesn't understand, rather than passing them back as a Left value. If there are other exceptions that are legitimate, maybe just watching for ThreadKilled is enough - although in general any async exception should be bubbled upward.
The text was updated successfully, but these errors were encountered:
Sounds like a standard mishandling of async exceptions. Switching over to use unliftio in the relevant part of the cost should fix this. I'm not at my computer now, and won't be able to look at the code until later this week, but if someone wants to send a PR to replace the faulty exception handling code, that would be great.
Thanks! It appears to work, but very hard to know, since it only fails with a race condition in an IDE. It used to happen pretty often, with this patch, it doesn't seem to be happening at all.
In Ghcide I sometimes see an OtherParseException ThreadKilled coming out, as a result of a YAML parsing that got aborted. Unfortunately, the various layers of Ghcide consider that a deterministic errors, and thus never bother to retry the YAML parsing, leaving the IDE in a broken state.
It feels like the right solution is for YAML to rethrow any exceptions it doesn't understand, rather than passing them back as a Left value. If there are other exceptions that are legitimate, maybe just watching for ThreadKilled is enough - although in general any async exception should be bubbled upward.
The text was updated successfully, but these errors were encountered: