-
-
Notifications
You must be signed in to change notification settings - Fork 414
Description
Subject of the issue
After adding a work-around for the following issue [ #481 ] I've found that any building of our production code results in the following in the VSCode OUTPUT:
Connection to server got closed. Server will not be restarted.
and when running haskell-language-server --debug:
Segmentation fault (core dumped)
I've still not found a smallest reproduceable set of files and seeing as this is production code, can't share everything verbatim. I'll try to obfuscate any mentions in the logs and still share them. I can answer any specific questions probably, but can't give literal code.
Your environment
haskell-language-server version: 0.5.1.0 (GHC: 8.8.3) (PATH: ~/.config/Code/User/globalStorage/haskell.haskell/haskell-language-server-0.5.1-linux-8.8.3) (GIT hash: e3fe0e7546aa91e44cc56cfe8ec078a026cf533a)
Tool versions found on the $PATH
cabal: 3.0.0.0
stack: 2.3.3
ghc: 8.0.2
HLS used in VSCode
stack.yaml:
resolver: lts-16.10 # GHC 8.8.3
packages:
- package1
- package2
- package3
- package4
- package5
- package6
- package7-ex
- package8-ex
- package9
- package10
- package11
- package12
- package13
- package14
- package15
- package16
extra-deps:
- dependent-sum-0.4
- ekg-core-0.1.1.7
- uuid-quasi-0.1.0.1
- git: https://github.com/{someuser}/{somepackage}.git
commit: "{somehash}"
- git: https://github.com/{someuser}/{somepackage}.git
commit: "{somehash}"
- git: https://github.com/{someuser}/{somepackage}.git
commit: "{somehash}"
- git: https://github.com/{someuser}/{somepackage}.git
commit: "{somehash}"
- git: git@bitbucket.org:{someuser}/{somepackage}.git
commit: "{somehash}"
- git: git@bitbucket.org:{someuser}/{somepackage}.git
commit: "{somehash}"
- git: git@bitbucket.org:{someuser}/{somepackage}.git
commit: "{somehash}"
- git: https://github.com/{someuser}/{somepackage}.git
commit: "{somehash}"
flags: {}
extra-package-dbs: []
extra-lib-dirs: [./external-lib, ../external-lib]
allow-newer: true
hie.yaml:
cradle:
multi:
- path: "./ignored-package"
config:
cradle:
none:
- path: "./"
config:
cradle:
stack:
- path: "./package1/src"
component: "package1:lib"
- path: "./package1/test"
component: "package1:test:package1-test"
- path: "./package2/src"
component: "package2:lib"
- path: "./package2/test"
component: "package2:test:package2-test"
- path: "./package3/src"
component: "package3:lib"
- path: "./package3/test"
component: "package3:test:package3-test"
- path: "./package4/src"
component: "package4:lib"
- path: "./package4/test"
component: "package4:test:package4-test"
- path: "./package5/src"
component: "package5:lib"
- path: "./package5/app"
component: "package5:exe:package5-exe"
- path: "./package5/test"
component: "package5:test:package5-test"
- path: "./package6/src"
component: "package6:lib"
- path: "./package6/app"
component: "package6:exe:package6-analyze"
- path: "./package6/test"
component: "package6:test:package6-test"
- path: "./package7-ex/src"
component: "package7-ex:lib"
- path: "./package7-ex/app"
component: "package7-ex:exe:package7_ex-exe"
- path: "./package7-ex/test"
component: "package7-ex:test:package7_ex-test"
- path: "./package8-ex/src"
component: "package8-ex:lib"
- path: "./package8-ex/app"
component: "package8-ex:exe:package8_ex-exe"
- path: "./package8-ex/test"
component: "package8-ex:test:package8_ex-test"
- path: "./package9/src"
component: "package9:lib"
- path: "./package9/app"
component: "package9:exe:package9-exe"
- path: "./package9/test"
component: "package9:test:package9-test"
- path: "./package10/src"
component: "package10:lib"
- path: "./package10/app"
component: "package10:exe:package10-exe"
- path: "./package10/test"
component: "package10:test:package10-test"
- path: "./package11/src"
component: "package11:lib"
- path: "./package11/app"
component: "package11:exe:package11-exe"
- path: "./package11/test"
component: "package11:test:package11-test"
- path: "./package12/src"
component: "package12:lib"
- path: "./package12/app"
component: "package12:exe:package12-exe"
- path: "./package12/test"
component: "package12:test:package12-test"
- path: "./package13/src"
component: "package13:lib"
- path: "./package13/app"
component: "package13:exe:package13-exe"
- path: "./package13/test"
component: "package13:test:package13-test"
- path: "./package14/src"
component: "package14:lib"
- path: "./package14/app"
component: "package14:exe:package14-exe"
- path: "./package14/test"
component: "package14:test:package14-test"
- path: "./package15/src"
component: "package15:lib"
- path: "./package15/app"
component: "package15:exe:package15-exe"
- path: "./package15/test"
component: "package15:test:package15-test"
- path: "./package16/src"
component: "package16:lib"
- path: "./package16/app"
component: "package16:exe:package16-exe"
- path: "./package16/test"
component: "package16:test:package16-test"
Steps to reproduce
Can't really reproduce without sharing production code...
Expected behaviour
HLS should work as expected, instead of not
Actual behaviour
After building/caching a project, HLS segfaults quickly after it starts outputting hints/errors/etc.
Include debug information
Execute in the root of your project the command haskell-language-server --debug . and paste the logs here:
Debug output:
I've generalized the different packages by numbering them and {OBFUSCATED}-ing any filenames
Paste the logs from the lsp-client, e.g. for VS Code
LSP logs:
Also obfuscated enough to not show any production naming etc.
This was produced after opening one file from package1, on which almost all other packages depend, but this one only depends on outside libraries.