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: [email protected]:{someuser}/{somepackage}.git
commit: "{somehash}"
- git: [email protected]:{someuser}/{somepackage}.git
commit: "{somehash}"
- git: [email protected]:{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.