graphql-engine/server
Vamshi Surabhi c52bfc540d
More robust forking, exception safety. Closes #3768 (#3860)
This is the result of a general audit of how we fork threads, with a
detour into how we're using mutable state especially in websocket
codepaths, making more robust to async exceptions and exceptions
resulting from bugs.

Some highlights:
- use a wrapper around 'immortal' so threads that die due to bugs are
  restarted, and log the error
- use 'withAsync' some places
- use bracket a few places where we might break invariants
- log some codepaths that represent bugs
- export UnstructuredLog for ad hoc logging (the alternative is we
  continue not logging useful stuff)

I had to timebox this. There are a few TODOs I didn't want to address.
And we'll wait until this is merged to attempt #3705 for
Control.Concurrent.Extended
2020-03-05 23:29:26 +05:30
..
packaging Switch from stack to cabal-install for building server code (close #3280) (#3558) 2020-01-17 16:07:15 -06:00
src-bench-cache Initial benchmarks for caching. Closes #3530 2019-12-20 10:10:07 -06:00
src-exec Add downgrade command (close #1156) (#3760) 2020-02-07 16:33:12 +05:30
src-lib More robust forking, exception safety. Closes #3768 (#3860) 2020-03-05 23:29:26 +05:30
src-rsr tag release v1.2.0-beta.2 (#4028) 2020-03-05 22:49:17 +05:30
src-test allow custom mutations through actions (#3042) 2020-02-13 23:08:23 +05:30
tests-py allow custom mutations through actions (#3042) 2020-02-13 23:08:23 +05:30
.dockerignore update packages (#251) 2018-08-08 13:10:13 +05:30
.gitignore Switch from stack to cabal-install for building server code (close #3280) (#3558) 2020-01-17 16:07:15 -06:00
.stylish-haskell.yaml Refactor schema cache construction to avoid imperative updates 2020-01-08 16:43:06 -06:00
cabal.project allow custom mutations through actions (#3042) 2020-02-13 23:08:23 +05:30
cabal.project.ci Switch from stack to cabal-install for building server code (close #3280) (#3558) 2020-01-17 16:07:15 -06:00
cabal.project.dev More comments in cabal.project files 2020-01-23 18:20:58 -05:00
cabal.project.dev-sh dev.sh: restore code coverage functionality 2020-01-23 18:35:18 -05:00
cabal.project.dev-sh.freeze dev.sh: restore code coverage functionality 2020-01-23 18:35:18 -05:00
cabal.project.dev-sh.local dev.sh: restore code coverage functionality 2020-01-23 18:35:18 -05:00
cabal.project.freeze server: Parameterize the graphql-engine library over the version (#3668) 2020-01-22 15:55:55 -06:00
CONTRIBUTING.md Switch from stack to cabal-install for building server code (close #3280) (#3558) 2020-01-17 16:07:15 -06:00
graphql-engine.cabal More robust forking, exception safety. Closes #3768 (#3860) 2020-03-05 23:29:26 +05:30
Makefile persist mix files only when coverage is enabled (#3844) 2020-02-06 20:09:52 -06:00
Setup.hs move raven into graphql-engine repo 2018-06-28 00:32:00 +05:30