This is a weird bug, as it's only triggered on specific GHC and distro versions. Specifically 9.4 and 9.6 with Linux (windows unaffected). I ran into this bug in the HLS CI, and later reproduced it on my own machine. When opening a large file the test will just stop after sending a TextDocumentDidOpen notification, and not even time out. No useful error or debug messages either.
The file tested was
https://github.com/haskell/haskell-language-server/blob/0271ce212af57dc8ff52e6a80d0ed404cb57853e/plugins/hls-overloaded-record-dot-plugin/test/testdata/Benchmark.hs
The logs when the test is terminated with Ctrl+c after around ~50 min are (contents of TextDocumentDidOpen retracted to keep the bug short enough to post)
<no location info>: warning: [-Wunused-packages]
The following packages were specified via -package or -package-id flags,
but were not needed for compilation:
- aeson-pretty-0.8.9 (exposed by flag -package-id aeson-pretty-0.8.9-cc94f32925968947709948654d87925e0922235304fcc388e008f3ecab298408)
- implicit-hie-0.1.2.7 (exposed by flag -package-id implicit-hie-0.1.2.7-ec013f88f8be03cfe17053bb54b6347a64e275332a18cb0615e9c83d0d7deb49)
2023-06-30T14:51:22.614391Z | Info | Heap statistics are not enabled (RTS option -T is needed)
2023-06-30T14:51:22.615094Z | Info | Starting LSP server...
If you are seeing this in a terminal, you probably should have run WITHOUT the --lsp option!
PluginIds: [ overloaded-record-dot
, test
, ghcide-completions
, block-command
, ghcide-hover-and-symbols
, ghcide-type-lenses
, ghcide-core ]
2023-06-30T14:51:22.615483Z | Info | Starting server
2023-06-30T14:51:22.624101Z | Info | Started LSP server in 0.01s
2023-06-30T14:51:22.630441Z | Debug | executing command: cabal exec -v0 -- ghc --print-libdir
2023-06-30T14:51:24.150102Z | Debug | executing command: cabal exec -v0 -- ghc -package-env=- -ignore-dot-ghci -e Control.Monad.join (Control.Monad.fmap System.IO.putStr System.Environment.getExecutablePath)
2023-06-30T14:51:25.142728Z | Debug | executing command: cabal --builddir=/home/zhangtianci/.cache/hie-bios/dist-haskell-language-server-d168a6a0bd3fe20ed93b29bb35ffd16e v2-exec --with-compiler /home/zhangtianci/.cache/hie-bios/wrapper-b54f81dea4c0e6d1626911c526bc4e36 --with-hc-pkg /home/zhangtianci/.cache/hie-bios/ghc-pkg-018ac07ec696acc23a6bacd0dc34d144 ghc -v0 -- --print-libdir
2023-06-30T14:51:26.634745Z | Debug | Setting initial dynflags...
2023-06-30T14:51:26.634879Z | Debug | shouldRunSubset: True
2023-06-30T14:51:26.635007Z | Debug | Initializing exports map from hiedb
2023-06-30T14:51:26.635327Z | Info | Registering IDE configuration: IdeConfiguration {workspaceFolders = fromList [NormalizedUri (-2424510451474401224) "file:///home/zhangtianci/MySourceCode/haskell-language-server/plugins/hls-overloaded-record-dot-plugin/test/testdata"], clientSettings = hashed Nothing}
^C2023-06-30T15:37:31.072886Z | Debug | Done initializing exports map from hiedb. Size: 1
2023-06-30T15:37:31.074712Z | Debug | Shake session initialized
2023-06-30T15:37:31.080661Z | Debug | Received shutdown message
2023-06-30T15:37:31.083103Z | Debug | Set files of interest to: fromList [(NormalizedFilePath "/home/zhangtianci/MySourceCode/haskell-language-server/plugins/hls-overloaded-record-dot-plugin/test/testdata/Benchmark.hs",Modified {firstOpen = True})]
2023-06-30T15:37:31.088110Z | Info | Reactor thread stopped
2023-06-30T15:37:31.088255Z | Debug | Finished build session
AsyncCancelled
This is a weird bug, as it's only triggered on specific GHC and distro versions. Specifically 9.4 and 9.6 with Linux (windows unaffected). I ran into this bug in the HLS CI, and later reproduced it on my own machine. When opening a large file the test will just stop after sending a TextDocumentDidOpen notification, and not even time out. No useful error or debug messages either. The file tested was https://github.com/haskell/haskell-language-server/blob/0271ce212af57dc8ff52e6a80d0ed404cb57853e/plugins/hls-overloaded-record-dot-plugin/test/testdata/Benchmark.hs The logs when the test is terminated with Ctrl+c after around ~50 min are (contents of TextDocumentDidOpen retracted to keep the bug short enough to post)
and