jaredly / reason-language-server

A language server for reason, in reason
MIT License
658 stars 84 forks source link

Crash when `graphql_ppx` raises compile time error #158

Open alex35mil opened 6 years ago

alex35mil commented 6 years ago

When graphql_ppx raises compile time error RLS hangs w/ 100% CPU.

Log ``` {"jsonrpc":"2.0","method":"textDocument/didSave","params":{"textDocument":{"uri":"file:///Users/Alex/Dev/Projects/app/web/src/models/domain/User.re","version":1}}} >> Build system: /Users/Alex/Dev/Projects/app/node_modules/bs-platform/lib/bsb.exe -make-world ninja: no work to do. ninja: no work to do. ninja: no work to do. ninja: no work to do. ninja: no work to do. ninja: no work to do. ninja: no work to do. ninja: no work to do. ninja: no work to do. [1/2] Building src/models/domain/User.mlast [2/2] Building src/models/domain/User.mlast.d [1/4] Building src/models/domain/User.cmj [2/4] Building src/models/domain/Auth.cmj [3/4] Building src/ui/auth/SignupForm.cmj [4/4] Building src/api/mutations/SignupMutation.cmj We've found a bug for you! (No file name) Some record fields are undefined: createdAt >> Error Affected files file://(No Cleaning bsconfig.json Sending notification {"jsonrpc": "2.0", "method": "textDocument/publishDiagnostics", "params": {"uri": "file:///Users/Alex/Dev/Projects/app/web/bsconfig.json", "diagnostics": []}} Running diagnostics for file:///Users/Alex/Dev/Projects/app/web/src/api/mutations/SignupMutation.re running bsc /Users/Alex/Dev/Projects/app/node_modules/bs-platform/lib/bsc.exe -c -I '/Users/Alex/Dev/Projects/app/web/lib/bs/src' -I '/Users/Alex/Dev/Projects/app/web/lib/bs/src/ui' -I '/Users/Alex/Dev/Projects/app/web/lib/bs/src/ui/auth' -I '/Users/Alex/Dev/Projects/app/web/lib/bs/src/ui/layout' -I '/Users/Alex/Dev/Projects/app/web/lib/bs/src/locales' -I '/Users/Alex/Dev/Projects/app/web/lib/bs/src/locales/extractor' -I '/Users/Alex/Dev/Projects/app/web/lib/bs/src/locales/translations' -I '/Users/Alex/Dev/Projects/app/web/lib/bs/src/shell' -I '/Users/Alex/Dev/Projects/app/web/lib/bs/src/models' -I '/Users/Alex/Dev/Projects/app/web/lib/bs/src/models/domain' -I '/Users/Alex/Dev/Projects/app/web/lib/bs/src/libs' -I '/Users/Alex/Dev/Projects/app/web/lib/bs/src/styleguide' -I '/Users/Alex/Dev/Projects/app/web/lib/bs/src/styleguide/forms' -I '/Users/Alex/Dev/Projects/app/web/lib/bs/src/styleguide/forms/TextField' -I '/Users/Alex/Dev/Projects/app/web/lib/bs/src/styleguide/.ui' -I '/Users/Alex/Dev/Projects/app/web/lib/bs/src/styleguide/styles' -I '/Users/Alex/Dev/Projects/app/web/lib/bs/src/styleguide/components' -I '/Users/Alex/Dev/Projects/app/web/lib/bs/src/styleguide/components/Svg' -I '/Users/Alex/Dev/Projects/app/web/lib/bs/src/styleguide/components/Portal' -I '/Users/Alex/Dev/Projects/app/web/lib/bs/src/styleguide/components/Spinner' -I '/Users/Alex/Dev/Projects/app/web/lib/bs/src/styleguide/components/Headings' -I '/Users/Alex/Dev/Projects/app/web/lib/bs/src/styleguide/components/Button' -I '/Users/Alex/Dev/Projects/app/web/lib/bs/src/styleguide/components/Logo' -I '/Users/Alex/Dev/Projects/app/web/lib/bs/src/styleguide/components/Icon' -I '/Users/Alex/Dev/Projects/app/web/lib/bs/src/styleguide/components/Modal' -I '/Users/Alex/Dev/Projects/app/web/lib/bs/src/styleguide/components/Control' -I '/Users/Alex/Dev/Projects/app/web/lib/bs/src/styleguide/icons' -I '/Users/Alex/Dev/Projects/app/web/lib/bs/src/api' -I '/Users/Alex/Dev/Projects/app/web/lib/bs/src/api/transport' -I '/Users/Alex/Dev/Projects/app/web/lib/bs/src/api/mutations' -I '/Users/Alex/Dev/Projects/app/web/lib/bs/src/api/queries' -I '/Users/Alex/Dev/Projects/app/web/lib/bs/src/bindings' -I '/Users/Alex/Dev/Projects/app/web/lib/bs/src/services' -I '/Users/Alex/Dev/Projects/app/node_modules/bs-platform/lib/ocaml' -I '/Users/Alex/Dev/Projects/app/node_modules/@glennsl/bs-json/lib/bs/src' -I '/Users/Alex/Dev/Projects/app/node_modules/bs-react-intl/lib/bs/src' -I '/Users/Alex/Dev/Projects/app/node_modules/bs-webapi/lib/bs/src' -I '/Users/Alex/Dev/Projects/app/node_modules/bs-webapi/lib/bs/src/core' -I '/Users/Alex/Dev/Projects/app/node_modules/bs-webapi/lib/bs/src/file' -I '/Users/Alex/Dev/Projects/app/node_modules/bs-webapi/lib/bs/src/canvas' -I '/Users/Alex/Dev/Projects/app/node_modules/bs-webapi/lib/bs/src/dom' -I '/Users/Alex/Dev/Projects/app/node_modules/bs-webapi/lib/bs/src/dom/ranges' -I '/Users/Alex/Dev/Projects/app/node_modules/bs-webapi/lib/bs/src/dom/css' -I '/Users/Alex/Dev/Projects/app/node_modules/bs-webapi/lib/bs/src/dom/nodes' -I '/Users/Alex/Dev/Projects/app/node_modules/bs-webapi/lib/bs/src/dom/html' -I '/Users/Alex/Dev/Projects/app/node_modules/bs-webapi/lib/bs/src/dom/sets' -I '/Users/Alex/Dev/Projects/app/node_modules/bs-webapi/lib/bs/src/dom/traversal' -I '/Users/Alex/Dev/Projects/app/node_modules/bs-webapi/lib/bs/src/dom/selection' -I '/Users/Alex/Dev/Projects/app/node_modules/bs-webapi/lib/bs/src/dom/geometry' -I '/Users/Alex/Dev/Projects/app/node_modules/bs-webapi/lib/bs/src/dom/events' -I '/Users/Alex/Dev/Projects/app/node_modules/bs-webapi/lib/bs/src/dom/validation' -I '/Users/Alex/Dev/Projects/app/node_modules/bs-fetch/lib/bs/src' -I '/Users/Alex/Dev/Projects/app/node_modules/re-formality/lib/bs/src' -I '/Users/Alex/Dev/Projects/app/node_modules/re-classnames/lib/bs/src' -I '/Users/Alex/Dev/Projects/app/node_modules/re-css/lib/bs/src' -I '/Users/Alex/Dev/Projects/app/node_modules/reason-react/lib/bs/src' -I '/Users/Alex/Dev/Projects/app/node_modules/bs-platform/lib/ocaml' -bin-annot -bs-no-builtin-ppx-ml -bs-package-name app-web -bs-package-output es6:node_modules/.lsp -ppx /Users/Alex/Dev/Projects/app/node_modules/graphql_ppx/ppx -ppx '/Users/Alex/Dev/Projects/app/node_modules/bs-platform/lib/reactjs_jsx_ppx_2.exe' -ppx /Users/Alex/Dev/Projects/app/node_modules/bs-platform/lib/bsppx.exe -nostdlib -open Belt -color always -w -30-40+6+7+27+32..39+44+45+101-44 -bs-re-out -impl /Users/Alex/Dev/Projects/app/web/node_modules/.lsp/SignupMutation.ast with pwd /Users/Alex/Dev/Projects/app/web type error here File "_none_", line 1: Error: Some record fields are undefined: createdAt Sending notification {"jsonrpc": "2.0", "method": "textDocument/publishDiagnostics", "params": {"uri": "file:///Users/Alex/Dev/Projects/app/web/src/api/mutations/SignupMutation.re", "diagnostics": [{"range": {"start": {"line": 0, "character": 0}, "end": {"line": 0, "character": 0}}, "message": "File \"_none_\", line 1:\nError: Some record fields are undefined: createdAt", "severity": 1}]}} Running diagnostics for file:///Users/Alex/Dev/Projects/app/web/src/ui/auth/SignupForm.re running bsc /Users/Alex/Dev/Projects/app/node_modules/bs-platform/lib/bsc.exe -c -I '/Users/Alex/Dev/Projects/app/web/lib/bs/src' -I '/Users/Alex/Dev/Projects/app/web/lib/bs/src/ui' -I '/Users/Alex/Dev/Projects/app/web/lib/bs/src/ui/auth' -I '/Users/Alex/Dev/Projects/app/web/lib/bs/src/ui/layout' -I '/Users/Alex/Dev/Projects/app/web/lib/bs/src/locales' -I '/Users/Alex/Dev/Projects/app/web/lib/bs/src/locales/extractor' -I '/Users/Alex/Dev/Projects/app/web/lib/bs/src/locales/translations' -I '/Users/Alex/Dev/Projects/app/web/lib/bs/src/shell' -I '/Users/Alex/Dev/Projects/app/web/lib/bs/src/models' -I '/Users/Alex/Dev/Projects/app/web/lib/bs/src/models/domain' -I '/Users/Alex/Dev/Projects/app/web/lib/bs/src/libs' -I '/Users/Alex/Dev/Projects/app/web/lib/bs/src/styleguide' -I '/Users/Alex/Dev/Projects/app/web/lib/bs/src/styleguide/forms' -I '/Users/Alex/Dev/Projects/app/web/lib/bs/src/styleguide/forms/TextField' -I '/Users/Alex/Dev/Projects/app/web/lib/bs/src/styleguide/.ui' -I '/Users/Alex/Dev/Projects/app/web/lib/bs/src/styleguide/styles' -I '/Users/Alex/Dev/Projects/app/web/lib/bs/src/styleguide/components' -I '/Users/Alex/Dev/Projects/app/web/lib/bs/src/styleguide/components/Svg' -I '/Users/Alex/Dev/Projects/app/web/lib/bs/src/styleguide/components/Portal' -I '/Users/Alex/Dev/Projects/app/web/lib/bs/src/styleguide/components/Spinner' -I '/Users/Alex/Dev/Projects/app/web/lib/bs/src/styleguide/components/Headings' -I '/Users/Alex/Dev/Projects/app/web/lib/bs/src/styleguide/components/Button' -I '/Users/Alex/Dev/Projects/app/web/lib/bs/src/styleguide/components/Logo' -I '/Users/Alex/Dev/Projects/app/web/lib/bs/src/styleguide/components/Icon' -I '/Users/Alex/Dev/Projects/app/web/lib/bs/src/styleguide/components/Modal' -I '/Users/Alex/Dev/Projects/app/web/lib/bs/src/styleguide/components/Control' -I '/Users/Alex/Dev/Projects/app/web/lib/bs/src/styleguide/icons' -I '/Users/Alex/Dev/Projects/app/web/lib/bs/src/api' -I '/Users/Alex/Dev/Projects/app/web/lib/bs/src/api/transport' -I '/Users/Alex/Dev/Projects/app/web/lib/bs/src/api/mutations' -I '/Users/Alex/Dev/Projects/app/web/lib/bs/src/api/queries' -I '/Users/Alex/Dev/Projects/app/web/lib/bs/src/bindings' -I '/Users/Alex/Dev/Projects/app/web/lib/bs/src/services' -I '/Users/Alex/Dev/Projects/app/node_modules/bs-platform/lib/ocaml' -I '/Users/Alex/Dev/Projects/app/node_modules/@glennsl/bs-json/lib/bs/src' -I '/Users/Alex/Dev/Projects/app/node_modules/bs-react-intl/lib/bs/src' -I '/Users/Alex/Dev/Projects/app/node_modules/bs-webapi/lib/bs/src' -I '/Users/Alex/Dev/Projects/app/node_modules/bs-webapi/lib/bs/src/core' -I '/Users/Alex/Dev/Projects/app/node_modules/bs-webapi/lib/bs/src/file' -I '/Users/Alex/Dev/Projects/app/node_modules/bs-webapi/lib/bs/src/canvas' -I '/Users/Alex/Dev/Projects/app/node_modules/bs-webapi/lib/bs/src/dom' -I '/Users/Alex/Dev/Projects/app/node_modules/bs-webapi/lib/bs/src/dom/ranges' -I '/Users/Alex/Dev/Projects/app/node_modules/bs-webapi/lib/bs/src/dom/css' -I '/Users/Alex/Dev/Projects/app/node_modules/bs-webapi/lib/bs/src/dom/nodes' -I '/Users/Alex/Dev/Projects/app/node_modules/bs-webapi/lib/bs/src/dom/html' -I '/Users/Alex/Dev/Projects/app/node_modules/bs-webapi/lib/bs/src/dom/sets' -I '/Users/Alex/Dev/Projects/app/node_modules/bs-webapi/lib/bs/src/dom/traversal' -I '/Users/Alex/Dev/Projects/app/node_modules/bs-webapi/lib/bs/src/dom/selection' -I '/Users/Alex/Dev/Projects/app/node_modules/bs-webapi/lib/bs/src/dom/geometry' -I '/Users/Alex/Dev/Projects/app/node_modules/bs-webapi/lib/bs/src/dom/events' -I '/Users/Alex/Dev/Projects/app/node_modules/bs-webapi/lib/bs/src/dom/validation' -I '/Users/Alex/Dev/Projects/app/node_modules/bs-fetch/lib/bs/src' -I '/Users/Alex/Dev/Projects/app/node_modules/re-formality/lib/bs/src' -I '/Users/Alex/Dev/Projects/app/node_modules/re-classnames/lib/bs/src' -I '/Users/Alex/Dev/Projects/app/node_modules/re-css/lib/bs/src' -I '/Users/Alex/Dev/Projects/app/node_modules/reason-react/lib/bs/src' -I '/Users/Alex/Dev/Projects/app/node_modules/bs-platform/lib/ocaml' -bin-annot -bs-no-builtin-ppx-ml -bs-package-name app-web -bs-package-output es6:node_modules/.lsp -ppx /Users/Alex/Dev/Projects/app/node_modules/graphql_ppx/ppx -ppx '/Users/Alex/Dev/Projects/app/node_modules/bs-platform/lib/reactjs_jsx_ppx_2.exe' -ppx /Users/Alex/Dev/Projects/app/node_modules/bs-platform/lib/bsppx.exe -nostdlib -open Belt -color always -w -30-40+6+7+27+32..39+44+45+101-44 -bs-re-out -impl /Users/Alex/Dev/Projects/app/web/node_modules/.lsp/SignupForm.ast with pwd /Users/Alex/Dev/Projects/app/web Ident!! Formality.Async.Make Ident!! SignupForm << Replacing lastDefinitions for file:///Users/Alex/Dev/Projects/app/web/src/ui/auth/SignupForm.re Sending notification {"jsonrpc": "2.0", "method": "textDocument/publishDiagnostics", "params": {"uri": "file:///Users/Alex/Dev/Projects/app/web/src/ui/auth/SignupForm.re", "diagnostics": []}} Running diagnostics for file:///Users/Alex/Dev/Projects/app/web/src/models/domain/User.re running bsc /Users/Alex/Dev/Projects/app/node_modules/bs-platform/lib/bsc.exe -c -I '/Users/Alex/Dev/Projects/app/web/lib/bs/src' -I '/Users/Alex/Dev/Projects/app/web/lib/bs/src/ui' -I '/Users/Alex/Dev/Projects/app/web/lib/bs/src/ui/auth' -I '/Users/Alex/Dev/Projects/app/web/lib/bs/src/ui/layout' -I '/Users/Alex/Dev/Projects/app/web/lib/bs/src/locales' -I '/Users/Alex/Dev/Projects/app/web/lib/bs/src/locales/extractor' -I '/Users/Alex/Dev/Projects/app/web/lib/bs/src/locales/translations' -I '/Users/Alex/Dev/Projects/app/web/lib/bs/src/shell' -I '/Users/Alex/Dev/Projects/app/web/lib/bs/src/models' -I '/Users/Alex/Dev/Projects/app/web/lib/bs/src/models/domain' -I '/Users/Alex/Dev/Projects/app/web/lib/bs/src/libs' -I '/Users/Alex/Dev/Projects/app/web/lib/bs/src/styleguide' -I '/Users/Alex/Dev/Projects/app/web/lib/bs/src/styleguide/forms' -I '/Users/Alex/Dev/Projects/app/web/lib/bs/src/styleguide/forms/TextField' -I '/Users/Alex/Dev/Projects/app/web/lib/bs/src/styleguide/.ui' -I '/Users/Alex/Dev/Projects/app/web/lib/bs/src/styleguide/styles' -I '/Users/Alex/Dev/Projects/app/web/lib/bs/src/styleguide/components' -I '/Users/Alex/Dev/Projects/app/web/lib/bs/src/styleguide/components/Svg' -I '/Users/Alex/Dev/Projects/app/web/lib/bs/src/styleguide/components/Portal' -I '/Users/Alex/Dev/Projects/app/web/lib/bs/src/styleguide/components/Spinner' -I '/Users/Alex/Dev/Projects/app/web/lib/bs/src/styleguide/components/Headings' -I '/Users/Alex/Dev/Projects/app/web/lib/bs/src/styleguide/components/Button' -I '/Users/Alex/Dev/Projects/app/web/lib/bs/src/styleguide/components/Logo' -I '/Users/Alex/Dev/Projects/app/web/lib/bs/src/styleguide/components/Icon' -I '/Users/Alex/Dev/Projects/app/web/lib/bs/src/styleguide/components/Modal' -I '/Users/Alex/Dev/Projects/app/web/lib/bs/src/styleguide/components/Control' -I '/Users/Alex/Dev/Projects/app/web/lib/bs/src/styleguide/icons' -I '/Users/Alex/Dev/Projects/app/web/lib/bs/src/api' -I '/Users/Alex/Dev/Projects/app/web/lib/bs/src/api/transport' -I '/Users/Alex/Dev/Projects/app/web/lib/bs/src/api/mutations' -I '/Users/Alex/Dev/Projects/app/web/lib/bs/src/api/queries' -I '/Users/Alex/Dev/Projects/app/web/lib/bs/src/bindings' -I '/Users/Alex/Dev/Projects/app/web/lib/bs/src/services' -I '/Users/Alex/Dev/Projects/app/node_modules/bs-platform/lib/ocaml' -I '/Users/Alex/Dev/Projects/app/node_modules/@glennsl/bs-json/lib/bs/src' -I '/Users/Alex/Dev/Projects/app/node_modules/bs-react-intl/lib/bs/src' -I '/Users/Alex/Dev/Projects/app/node_modules/bs-webapi/lib/bs/src' -I '/Users/Alex/Dev/Projects/app/node_modules/bs-webapi/lib/bs/src/core' -I '/Users/Alex/Dev/Projects/app/node_modules/bs-webapi/lib/bs/src/file' -I '/Users/Alex/Dev/Projects/app/node_modules/bs-webapi/lib/bs/src/canvas' -I '/Users/Alex/Dev/Projects/app/node_modules/bs-webapi/lib/bs/src/dom' -I '/Users/Alex/Dev/Projects/app/node_modules/bs-webapi/lib/bs/src/dom/ranges' -I '/Users/Alex/Dev/Projects/app/node_modules/bs-webapi/lib/bs/src/dom/css' -I '/Users/Alex/Dev/Projects/app/node_modules/bs-webapi/lib/bs/src/dom/nodes' -I '/Users/Alex/Dev/Projects/app/node_modules/bs-webapi/lib/bs/src/dom/html' -I '/Users/Alex/Dev/Projects/app/node_modules/bs-webapi/lib/bs/src/dom/sets' -I '/Users/Alex/Dev/Projects/app/node_modules/bs-webapi/lib/bs/src/dom/traversal' -I '/Users/Alex/Dev/Projects/app/node_modules/bs-webapi/lib/bs/src/dom/selection' -I '/Users/Alex/Dev/Projects/app/node_modules/bs-webapi/lib/bs/src/dom/geometry' -I '/Users/Alex/Dev/Projects/app/node_modules/bs-webapi/lib/bs/src/dom/events' -I '/Users/Alex/Dev/Projects/app/node_modules/bs-webapi/lib/bs/src/dom/validation' -I '/Users/Alex/Dev/Projects/app/node_modules/bs-fetch/lib/bs/src' -I '/Users/Alex/Dev/Projects/app/node_modules/re-formality/lib/bs/src' -I '/Users/Alex/Dev/Projects/app/node_modules/re-classnames/lib/bs/src' -I '/Users/Alex/Dev/Projects/app/node_modules/re-css/lib/bs/src' -I '/Users/Alex/Dev/Projects/app/node_modules/reason-react/lib/bs/src' -I '/Users/Alex/Dev/Projects/app/node_modules/bs-platform/lib/ocaml' -bin-annot -bs-no-builtin-ppx-ml -bs-package-name app-web -bs-package-output es6:node_modules/.lsp -ppx /Users/Alex/Dev/Projects/app/node_modules/graphql_ppx/ppx -ppx '/Users/Alex/Dev/Projects/app/node_modules/bs-platform/lib/reactjs_jsx_ppx_2.exe' -ppx /Users/Alex/Dev/Projects/app/node_modules/bs-platform/lib/bsppx.exe -nostdlib -open Belt -color always -w -30-40+6+7+27+32..39+44+45+101-44 -bs-re-out -impl /Users/Alex/Dev/Projects/app/web/node_modules/.lsp/User.ast with pwd /Users/Alex/Dev/Projects/app/web << Replacing lastDefinitions for file:///Users/Alex/Dev/Projects/app/web/src/models/domain/User.re Sending notification {"jsonrpc": "2.0", "method": "textDocument/publishDiagnostics", "params": {"uri": "file:///Users/Alex/Dev/Projects/app/web/src/models/domain/User.re", "diagnostics": []}} ```
alex35mil commented 6 years ago

Looks like it's not related to graphql_ppx (at least not directly) b/c it's happening when I work w/ other files, e.g. when I transfer some module from other project that includes a lot of components that's not yet implemented and RLS hangs -> CPU 100%.

jaredly commented 6 years ago

hrm :/

alex35mil commented 6 years ago

In 95% of cases it happens when error is thrown in graphql_ppx.

alex35mil commented 5 years ago

FYI I don't see PPX related crashes after I turned off auto rebuild and run bsb -w in console.