haskell/haskell-language-server

GHC 9.10.2: internal error: ARR_WORDS object (0x4200b1cf68) entered!

Opened this issue ยท 25 comments

Your environment

Which OS do you use?
NixOS

Which version of GHC do you use and how did you install it?
GHC 9.10.2 from haskell.nix

How is your project built (alternative: link to the project)?
This is HLS on HLS, built from the haskell.nix shell using cabal build

Which LSP client (editor/plugin) do you use?
Neovim+neovim/nvim-lspconfig

Which version of HLS do you use and how did you install it?
Latest master

Have you configured HLS in any way (especially: a hie.yaml file)?
No, only what is in the repository

Steps to reproduce

  1. Build HLS with GHC 9.10.2
  2. Open plugins/hls-refactor-plugin/src/Development/IDE/Plugin/Plugins/FillHole.hs
  3. Make a change
  4. Restart HLS (In nvim, :LspRestart

Expected behaviour

HLS does not crash

Actual behaviour

HLS crashes after reporting:

"haskell-language-server: internal error: ARR_WORDS object (0x4200b1cf68) entered!\n    (GHC version 9.10.2 for x86_64_unknown_linux)\n    Please report this as a GHC bug:  https://www.haskell.org/ghc/reportabug\n"

Debug information

Relevant startup log:

"2025-07-25T02:30:26.132827Z | Debug | Build profile: -w ghc-9.10.2 -O1\n"
"2025-07-25T02:30:26.133060Z | Debug | In order, the following will be built (use -v for more details):\n"
"2025-07-25T02:30:26.133163Z | Debug |  - haskell-language-server-2.11.0.0 (interactive) (lib:hls-refactor-plugin) (first run)\n"
"2025-07-25T02:30:26.253080Z | Debug | Preprocessing library 'hls-refactor-plugin' for haskell-language-server-2.11.0.0...\n"
"2025-07-25T02:30:26.339931Z | Debug | cabal path --output-format=json\n"
"2025-07-25T02:30:26.382759Z | Debug | /nix/store/dlmzrn4s0kxwkicsg2b2wxyzx2qxsfp7-ghc-shell-for-packages-ghc-9.10.2-env/bin/ghc --print-libdir\n"
"2025-07-25T02:30:26.421502Z | Debug | cabal path --output-format=json\n"
"2025-07-25T02:30:26.461501Z | Debug | /nix/store/dlmzrn4s0kxwkicsg2b2wxyzx2qxsfp7-ghc-shell-for-packages-ghc-9.10.2-env/bin/ghc --numeric-version\n"
'2025-07-25T02:30:26.461852Z | Debug | Session loading result: Right (ComponentOptions {componentOptions = ["-fbuilding-cabal-package","-O0","-outputdir","/home/sgillespie/.cache/hie-bios/dist-haskell-language-server-ccd5fdede35faf3d569dc3d8e551e25c/build/x86_64-linux/ghc-9.10.2/haskell-language-server-2.11.0.0/l/hls-refactor-plugin/build/hls-refactor-plugin","-odir","/home/sgillespie/.cache/hie-bios/dist-haskell-language-server-ccd5fdede35faf3d569dc3d8e551e25c/build/x86_64-linux/ghc-9.10.2/haskell-language-server-2.11.0.0/l/hls-refactor-plugin/build/hls-refactor-plugin","-hidir","/home/sgillespie/.cache/hie-bios/dist-haskell-language-server-ccd5fdede35faf3d569dc3d8e551e25c/build/x86_64-linux/ghc-9.10.2/haskell-language-server-2.11.0.0/l/hls-refactor-plugin/build/hls-refactor-plugin","-hiedir","/home/sgillespie/.cache/hie-bios/dist-haskell-language-server-ccd5fdede35faf3d569dc3d8e551e25c/build/x86_64-linux/ghc-9.10.2/haskell-language-server-2.11.0.0/l/hls-refactor-plugin/build/hls-refactor-plugin/extra-compilation-artifacts/hie","-stubdir","/home/sgillespie/.cache/hie-bios/dist-haskell-language-server-ccd5fdede35faf3d569dc3d8e551e25c/build/x86_64-linux/ghc-9.10.2/haskell-language-server-2.11.0.0/l/hls-refactor-plugin/build/hls-refactor-plugin","-i","-iplugins/hls-refactor-plugin/src","-i/home/sgillespie/.cache/hie-bios/dist-haskell-language-server-ccd5fdede35faf3d569dc3d8e551e25c/build/x86_64-linux/ghc-9.10.2/haskell-language-server-2.11.0.0/l/hls-refactor-plugin/build/hls-refactor-plugin","-i/home/sgillespie/.cache/hie-bios/dist-haskell-language-server-ccd5fdede35faf3d569dc3d8e551e25c/build/x86_64-linux/ghc-9.10.2/haskell-language-server-2.11.0.0/l/hls-refactor-plugin/build/hls-refactor-plugin/autogen","-i/home/sgillespie/.cache/hie-bios/dist-haskell-language-server-ccd5fdede35faf3d569dc3d8e551e25c/build/x86_64-linux/ghc-9.10.2/haskell-language-server-2.11.0.0/l/hls-refactor-plugin/build/global-autogen","-I/home/sgillespie/.cache/hie-bios/dist-haskell-language-server-ccd5fdede35faf3d569dc3d8e551e25c/build/x86_64-linux/ghc-9.10.2/haskell-language-server-2.11.0.0/l/hls-refactor-plugin/build/hls-refactor-plugin/autogen","-I/home/sgillespie/.cache/hie-bios/dist-haskell-language-server-ccd5fdede35faf3d569dc3d8e551e25c/build/x86_64-linux/ghc-9.10.2/haskell-language-server-2.11.0.0/l/hls-refactor-plugin/build/global-autogen","-I/home/sgillespie/.cache/hie-bios/dist-haskell-language-server-ccd5fdede35faf3d569dc3d8e551e25c/build/x86_64-linux/ghc-9.10.2/haskell-language-server-2.11.0.0/l/hls-refactor-plugin/build/hls-refactor-plugin","-optP-include","-optP/home/sgillespie/.cache/hie-bios/dist-haskell-language-server-ccd5fdede35faf3d569dc3d8e551e25c/build/x86_64-linux/ghc-9.10.2/haskell-language-server-2.11.0.0/l/hls-refactor-plugin/build/hls-refactor-plugin/autogen/cabal_macros.h","-this-unit-id","haskell-language-server-2.11.0.0-inplace-hls-refactor-plugin","-hide-all-packages","-Wmissing-home-modules","-no-user-package-db","-package-db","/home/sgillespie/.local/state/cabal/store/ghc-9.10.2-inplace/package.db","-package-db","/home/sgillespie/.cache/hie-bios/dist-haskell-language-server-ccd5fdede35faf3d569dc3d8e551e25c/packagedb/ghc-9.10.2","-package-db","/home/sgillespie/.cache/hie-bios/dist-haskell-language-server-ccd5fdede35faf3d569dc3d8e551e25c/build/x86_64-linux/ghc-9.10.2/haskell-language-server-2.11.0.0/l/hls-refactor-plugin/package.conf.inplace","-package-id","base-4.20.1.0-inplace","-package-id","bytestring-0.12.2.0-inplace","-package-id","containers-0.7-inplace","-package-id","deepseq-1.5.0.0-inplace","-package-id","dlist-1.0-BRkFyhrnf2gAqPbPv0DKDH","-package-id","extra-1.8-4UthXfafDiI53yWjggQ2Np","-package-id","ghc-9.10.2-inplace","-package-id","ghc-boot-9.10.2-inplace","-package-id","ghc-exactprint-1.10.0.0-B98f8GGIpVcIgpM3f8jL3B","-package-id","ghcide-2.11.0.0-inplace","-package-id","hls-graph-2.11.0.0-inplace","-package-id","hls-plugin-api-2.11.0.0-inplace","-package-id","lens-5.3.4-BRQ5B6odwd1KHg2I2i8Lka","-package-id","lsp-2.7.0.1-5Dk24pKjnRhHKOSlIc31iN","-package-id","mtl-2.3.1-inplace","-package-id","parser-combinators-1.3.0-AZPQifD2u9XAGjjtwsklEW","-package-id","regex-applicative-0.3.4-LpFYAP5LAB06rIBZEWjhyo","-package-id","regex-tdfa-1.3.2.4-I9cUetuLSCWCf7Kjon2wDb","-package-id","syb-0.7.2.4-8QhDaSTJ74qKpmP6apH5VS","-package-id","text-2.1.2-inplace","-package-id","text-rope-0.3-Fq1JVsU5Fos8TdLQZDN0vX","-package-id","time-1.12.2-inplace","-package-id","transformers-0.6.1.1-inplace","-package-id","unordered-containers-0.2.20-4FBlVESvUyCKzqDeEuCeFl","-XGHC2021","-XExplicitNamespaces","-XCPP","-XDataKinds","-XDerivingStrategies","-XDerivingVia","-XDuplicateRecordFields","-XFunctionalDependencies","-XLambdaCase","-XOverloadedStrings","-XPatternSynonyms","-XRecordWildCards","-XViewPatterns","Development.IDE.GHC.ExactPrint","Development.IDE.GHC.Compat.ExactPrint","Development.IDE.Plugin.CodeAction","Development.IDE.Plugin.CodeAction.Util","Development.IDE.GHC.Dump","Development.IDE.Plugin.CodeAction.Args","Development.IDE.Plugin.CodeAction.ExactPrint","Development.IDE.Plugin.CodeAction.PositionIndexed","Development.IDE.Plugin.Plugins.AddArgument","Development.IDE.Plugin.Plugins.Diagnostic","Development.IDE.Plugin.Plugins.FillHole","Development.IDE.Plugin.Plugins.FillTypeWildcard","Development.IDE.Plugin.Plugins.ImportUtils","-Wall","-Wredundant-constraints","-Wunused-packages","-Wno-name-shadowing","-Wno-unticked-promoted-constructors","-hide-all-packages","-haddock"], componentRoot = "/home/sgillespie/dev/haskell/haskell-language-server", componentDependencies = ["haskell-language-server.cabal","cabal.project","cabal.project.local"]},"/nix/store/dlmzrn4s0kxwkicsg2b2wxyzx2qxsfp7-ghc-shell-for-packages-ghc-9.10.2-env/lib/ghc-9.10.2/lib","9.10.2")\n'
"2025-07-25T02:30:26.487726Z | Info | Interface files cache directory: /home/sgillespie/.cache/ghcide/haskell-language-server-2.11.0.0-inplace-hls-refactor-plugin-4dbc86b93197ef38c1d11456a650378024d3c59e\n"
"2025-07-25T02:30:26.504013Z | Info | Making new HscEnv. In-place unit ids: [ haskell-language-server-2.11.0.0-inplace-hls-refactor-plugin ]\n"
'2025-07-25T02:30:26.549397Z | Debug | New component cache HscEnvEq: (([],Just HscEnvEq 7),fromList [("cabal.project",Just 2025-07-21 13:41:38.777631389 UTC),("cabal.project.local",Nothing),("haskell-language-server.cabal",Just 2025-07-11 02:51:25.861141305 UTC)])\n'
"2025-07-25T02:30:26.582610Z | Debug | Finished build session\nAsyncCancelled\nHasCallStack backtrace:\n  collectBacktraces, called at libraries/ghc-internal/src/GHC/Internal/Exception.hs:169:13 in ghc-internal:GHC.Internal.Exception\n  toExceptionWithBacktrace, called at libraries/ghc-internal/src/GHC/Internal/IO.hs:260:11 in ghc-internal:GHC.Internal.IO\n  throwIO, called at libraries/ghc-internal/src/GHC/Internal/Control/Exception/Base.hs:195:43 in ghc-internal:GHC.Internal.Control.Exception.Base\n\n\n"
"2025-07-25T02:30:26.589497Z | Debug | Known files updated:\n"
'  fromList [(TargetModule (ModuleName "Development.IDE.Plugin.CodeAction.PositionIndexed"),fromList ["/home/sgillespie/dev/haskell/haskell-language-server/plugins/hls-refactor-plugin/src/Development/IDE/Plugin/CodeAction/PositionIndexed.hs"]),(TargetModule (ModuleName "Development.IDE.GHC.ExactPrint"),fromList ["/home/sgillespie/dev/haskell/haskell-language-server/plugins/hls-refactor-plugin/src/Development/IDE/GHC/ExactPrint.hs"]),(TargetModule (ModuleName "Development.IDE.GHC.Compat.ExactPrint"),fromList ["/home/sgillespie/dev/haskell/haskell-language-server/plugins/hls-refactor-plugin/src/Development/IDE/GHC/Compat/ExactPrint.hs"]),(TargetModule (ModuleName "Development.IDE.GHC.Dump"),fromList ["/home/sgillespie/dev/haskell/haskell-language-server/plugins/hls-refactor-plugin/src/Development/IDE/GHC/Dump.hs"]),(TargetModule (ModuleName "Development.IDE.Plugin.Plugins.FillHole"),fromList ["/home/sgillespie/dev/haskell/haskell-language-server/plugins/hls-refactor-plugin/src/Development/IDE/Plugin/Plugins/FillHole.hs"]),(TargetModule (ModuleName "Development.IDE.Plugin.CodeAction"),fromList ["/home/sgillespie/dev/haskell/haskell-language-server/plugins/hls-refactor-plugin/src/Development/IDE/Plugin/CodeAction.hs"]),(TargetFile NormalizedFilePath "/home/sgillespie/dev/haskell/haskell-language-server/plugins/hls-refactor-plugin/src/Development/IDE/Plugin/Plugins/FillHole.hs",fromList ["/home/sgillespie/dev/haskell/haskell-language-server/plugins/hls-refactor-plugin/src/Development/IDE/Plugin/Plugins/FillHole.hs"]),(TargetModule (ModuleName "Development.IDE.Plugin.Plugins.Diagnostic"),fromList ["/home/sgillespie/dev/haskell/haskell-language-server/plugins/hls-refactor-plugin/src/Development/IDE/Plugin/Plugins/Diagnostic.hs"]),(TargetModule (ModuleName "Development.IDE.Plugin.Plugins.ImportUtils"),fromList ["/home/sgillespie/dev/haskell/haskell-language-server/plugins/hls-refactor-plugin/src/Development/IDE/Plugin/Plugins/ImportUtils.hs"]),(TargetModule (ModuleName "Development.IDE.Plugin.Plugins.AddArgument"),fromList ["/home/sgillespie/dev/haskell/haskell-language-server/plugins/hls-refactor-plugin/src/Development/IDE/Plugin/Plugins/AddArgument.hs"]),(TargetModule (ModuleName "Development.IDE.Plugin.Plugins.FillTypeWildcard"),fromList ["/home/sgillespie/dev/haskell/haskell-language-server/plugins/hls-refactor-plugin/src/Development/IDE/Plugin/Plugins/FillTypeWildcard.hs"]),(TargetModule (ModuleName "Development.IDE.Plugin.CodeAction.Util"),fromList ["/home/sgillespie/dev/haskell/haskell-language-server/plugins/hls-refactor-plugin/src/Development/IDE/Plugin/CodeAction/Util.hs"]),(TargetModule (ModuleName "Development.IDE.Plugin.CodeAction.Args"),fromList ["/home/sgillespie/dev/haskell/haskell-language-server/plugins/hls-refactor-plugin/src/Development/IDE/Plugin/CodeAction/Args.hs"]),(TargetModule (ModuleName "Development.IDE.Plugin.CodeAction.ExactPrint"),fromList ["/home/sgillespie/dev/haskell/haskell-language-server/plugins/hls-refactor-plugin/src/Development/IDE/Plugin/CodeAction/ExactPrint.hs"])]\n'
"2025-07-25T02:30:26.589994Z | Debug | Restarting build session due to new component\nAction Queue: []\nKeys: [ IsFileOfInterest; /home/sgillespie/dev/haskell/haskell-language-server/plugins/hls-refactor-plugin/src/Development/IDE/Plugin/Plugins/FillHole.hs\n      , GhcSessionIO; \n      , GetKnownTargets;  ]\nAborting previous build session took 0.00s \n"
'2025-07-25T02:30:26.590779Z | Debug | hlint: Getting hlint ideas for  NormalizedFilePath "/home/sgillespie/dev/haskell/haskell-language-server/plugins/hls-refactor-plugin/src/Development/IDE/Plugin/Plugins/FillHole.hs"\n'
'2025-07-25T02:30:26.661533Z | Debug | hlint: Using extensions for  NormalizedFilePath "/home/sgillespie/dev/haskell/haskell-language-server/plugins/hls-refactor-plugin/src/Development/IDE/Plugin/Plugins/FillHole.hs":\n    [ MonomorphismRestriction\n    , RelaxedPolyRec\n    , ForeignFunctionInterface\n    , ImplicitPrelude\n    , ScopedTypeVariables\n    , BangPatterns\n    , OverloadedStrings\n'
"    , DisambiguateRecordFields\n    , RecordWildCards\n    , NamedFieldPuns\n    , ViewPatterns\n    , GADTSyntax\n    , DoAndIfThenElse\n    , ConstraintKinds\n    , PolyKinds\n    , DataKinds\n    , InstanceSigs\n    , StandaloneDeriving\n    , DeriveDataTypeable\n    , DeriveFunctor\n    , DeriveTraversable\n    , DeriveFoldable\n    , DeriveGeneric\n    , DeriveLift\n    , DerivingStrategies\n    , DerivingVia\n    , TypeSynonymInstances\n    , FlexibleContexts\n    , FlexibleInstances\n    , ConstrainedClassMethods\n    , MultiParamTypeClasses\n    , FunctionalDependencies\n    , ExistentialQuantification\n    , EmptyDataDecls\n    , KindSignatures\n"
"    , GeneralizedNewtypeDeriving\n    , PostfixOperators\n    , TupleSections\n    , PatternGuards\n    , RankNTypes\n    , TypeOperators\n    , ExplicitNamespaces\n    , ExplicitForAll\n    , TraditionalRecordSyntax\n    , LambdaCase\n    , BinaryLiterals\n    , HexFloatLiterals\n    , DuplicateRecordFields\n    , EmptyCase\n    , PatternSynonyms\n"
"    , NamedWildCards\n    , TypeApplications\n    , EmptyDataDeriving\n    , NumericUnderscores\n    , StarIsType\n    , ImportQualifiedPost\n    , StandaloneKindSignatures\n    , FieldSelectors\n    , ListTuplePuns ]\n"
"haskell-language-server: internal error: ARR_WORDS object (0x4200b1d080) entered!\n    (GHC version 9.10.2 for x86_64_unknown_linux)\n    Please report this as a GHC bug:  https://www.haskell.org/ghc/reportabug\n"

EDIT: I can reproduce with ghc9102 from nixpkgs, which would seem to rule out a problem from haskell.nix:

"haskell-language-server: internal error: ARR_WORDS object (0x42010071e8) entered!\nStack trace:\n"
"haskell-language-server: Failed to get stack frames of current process: No DWARF information found: Success\n            0x7fde16584570    set_initial_registers (/nix/store/ki6b1isnf9fy9qldhcv5ad0gyh5rch44-ghc-9.10.2/lib/ghc-9.10.2/lib/x86_64-linux-ghc-9.10.2/libHSrts-1.0.2_thr-ghc9.10.2.so)\n"
"            0x7fde15fbe660    dwfl_thread_getframes (/nix/store/qwmm6h7n1qk2xad64i4ncr9is17gfcf4-elfutils-0.193/lib/libdw-0.193.so)\n"
"            0x7fde15fbe07b    get_one_thread_cb (/nix/store/qwmm6h7n1qk2xad64i4ncr9is17gfcf4-elfutils-0.193/lib/libdw-0.193.so)\n            0x7fde15fbe464    dwfl_getthreads (/nix/store/qwmm6h7n1qk2xad64i4ncr9is17gfcf4-elfutils-0.193/lib/libdw-0.193.so)\n"
"            0x7fde15fbe9d2    dwfl_getthread_frames (/nix/store/qwmm6h7n1qk2xad64i4ncr9is17gfcf4-elfutils-0.193/lib/libdw-0.193.so)\n"
"            0x7fde16584cb7    libdwGetBacktrace (/nix/store/ki6b1isnf9fy9qldhcv5ad0gyh5rch44-ghc-9.10.2/lib/ghc-9.10.2/lib/x86_64-linux-ghc-9.10.2/libHSrts-1.0.2_thr-ghc9.10.2.so)\n"
"            0x7fde1658e137    rtsFatalInternalErrorFn (/nix/store/ki6b1isnf9fy9qldhcv5ad0gyh5rch44-ghc-9.10.2/lib/ghc-9.10.2/lib/x86_64-linux-ghc-9.10.2/libHSrts-1.0.2_thr-ghc9.10.2.so)\n"
"            0x7fde1658e38f    barf (/nix/store/ki6b1isnf9fy9qldhcv5ad0gyh5rch44-ghc-9.10.2/lib/ghc-9.10.2/lib/x86_64-linux-ghc-9.10.2/libHSrts-1.0.2_thr-ghc9.10.2.so)\n"
"            0x7fde165ce513    stg_ARR_WORDS_info (/nix/store/ki6b1isnf9fy9qldhcv5ad0gyh5rch44-ghc-9.10.2/lib/ghc-9.10.2/lib/x86_64-linux-ghc-9.10.2/libHSrts-1.0.2_thr-ghc9.10.2.so)\n"
"(GHC version 9.10.2 for x86_64_unknown_linux)\n    Please report this as a GHC bug:  https://www.haskell.org/ghc/reportabug\n"

Furthermore, I cannot reproduce this with ghc-9.10.1 (from either nixpkgs or haskell.nix)

same for hls-ormolu-plugin-tests

Running 1 test suites...
Test suite hls-ormolu-plugin-tests: RUNNING...
ormolu
  lib
    formats correctly:           OK (0.15s)
    formats imports correctly:   OK (0.12s)
hls-ormolu-plugin-tests: internal error: ARR_WORDS object (0x4201cb3ed0) entered!
    (GHC version 9.10.2 for x86_64_unknown_linux)
    Please report this as a GHC bug:  https://www.haskell.org/ghc/reportabug
    formats operators correctly: Test suite hls-ormolu-plugin-tests: FAIL
Test suite logged to:
/home/runner/work/haskell-language-server/haskell-language-server/./dist-newstyle/build/x86_64-linux/ghc-9.10.2/hls-2.11.0.0/t/hls-ormolu-plugin-tests/test/hls-2.11.0.0-hls-ormolu-plugin-tests.log
0 of 1 test suites (0 of 1 test cases) passed.

I just tested this on the newly released HLS 2.12.0.0, using exactly the steps above. Unfortunately, it is a problem there:

Info | cabal --builddir=/home/sgillespie/.cache/hie-bios/dist-haskell-language-server-ccd5fdede35faf3d569dc3d8e551e25c v2-repl --with-compiler /home/sgillespie/.cache/hie-bios/wrapper-b54f81dea4c0e6d1626911c526bc4e36 --with-hc-pkg /home/sgillespie/.cache/hie-bios/ghc-pkg-9caa5be081f5ef06def820b271326d60 /home/sgillespie/dev/haskell/haskell-language-server/plugins/hls-refactor-plugin/src/Development/IDE/Plugin/Plugins/FillHole.hs\n  Environment Variables\n    HIE_BIOS_OUTPUT: /tmp/HIE_BIOS_OUTPUT687799-0\n    HIE_BIOS_GHC: /nix/store/z5zjiwwgaa336zdy8vsiq7sdal7dlyc1-ghc-shell-for-packages-ghc-9.10.2-env/bin/ghc\n    HIE_BIOS_GHC_ARGS: -B/nix/store/z5zjiwwgaa336zdy8vsiq7sdal7dlyc1-ghc-shell-for-packages-ghc-9.10.2-env/lib/ghc-9.10.2/lib\n"
Info | Interface files cache directory: /home/sgillespie/.cache/ghcide/haskell-language-server-2.12.0.0-inplace-hls-refactor-plugin-b1cdc4e9c34738da1a3eb687c8a5ad8dd720803f\n"
Info | Making new HscEnv. In-place unit ids: [ haskell-language-server-2.12.0.0-inplace-hls-refactor-plugin ]\n"
# <-- A bunch of output
"haskell-language-server: internal error: ARR_WORDS object (0x4200807e70) entered!\n    (GHC version 9.10.2 for x86_64_unknown_linux)\n    Please report this as a GHC bug:  https://www.haskell.org/ghc/reportabug\n"

CC @wz1000

Does this reproduce with ghc-9.10.3?

Does this reproduce with ghc-9.10.3?

It does:

haskell-language-server: internal error: ARR_WORDS object (0x4200807e08) entered!
haskell-language-server: Failed to get stack frames of current process: No DWARF information found: Success
            0x7f7d5db83970    set_initial_registers (/nix/store/4mr9hd1i6hc7xxjgddxlwvkf72mab5r8-ghc-9.10.3/lib/ghc-9.10.3/lib/x86_64-linux-ghc-9.10.3/libHSrts-1.0.2_thr-ghc9.10.3.so)
            0x7f7d5d5be660    dwfl_thread_getframes (/nix/store/hnzqas16kwcvaj2j5wb4izxdh692f9vn-elfutils-0.193/lib/libdw-0.193.so)
            0x7f7d5d5be07b    get_one_thread_cb (/nix/store/hnzqas16kwcvaj2j5wb4izxdh692f9vn-elfutils-0.193/lib/libdw-0.193.so)
            0x7f7d5d5be464    dwfl_getthreads (/nix/store/hnzqas16kwcvaj2j5wb4izxdh692f9vn-elfutils-0.193/lib/libdw-0.193.so)
            0x7f7d5d5be9d2    dwfl_getthread_frames (/nix/store/hnzqas16kwcvaj2j5wb4izxdh692f9vn-elfutils-0.193/lib/libdw-0.193.so)
            0x7f7d5db840b7    libdwGetBacktrace (/nix/store/4mr9hd1i6hc7xxjgddxlwvkf72mab5r8-ghc-9.10.3/lib/ghc-9.10.3/lib/x86_64-linux-ghc-9.10.3/libHSrts-1.0.2_thr-ghc9.10.3.so)
            0x7f7d5db8d437    rtsFatalInternalErrorFn (/nix/store/4mr9hd1i6hc7xxjgddxlwvkf72mab5r8-ghc-9.10.3/lib/ghc-9.10.3/lib/x86_64-linux-ghc-9.10.3/libHSrts-1.0.2_thr-ghc9.10.3.so)
            0x7f7d5db8d68f    barf (/nix/store/4mr9hd1i6hc7xxjgddxlwvkf72mab5r8-ghc-9.10.3/lib/ghc-9.10.3/lib/x86_64-linux-ghc-9.10.3/libHSrts-1.0.2_thr-ghc9.10.3.so)
            0x7f7d5dbcdd9b    stg_ARR_WORDS_info (/nix/store/4mr9hd1i6hc7xxjgddxlwvkf72mab5r8-ghc-9.10.3/lib/ghc-9.10.3/lib/x86_64-linux-ghc-9.10.3/libHSrts-1.0.2_thr-ghc9.10.3.so)

    (GHC version 9.10.3 for x86_64_unknown_linux)
    Please report this as a GHC bug:  https://www.haskell.org/ghc/reportabug

FWIW I cannot reproduce this on 9.12.2

If someone could turn this into a non-interactive reproducer and open a ghc ticket it would be much appreciated.

@maralorn is ghc9102 in nixpkgs patched? Is there any out-of-the-ordinary build configuration?

I tried this via ghcup, as in:

ghcup compile hls -g 2.12.0.0 --ghc 9.10.3

And I cannot reproduce this.

All patches that we apply can be found here: https://github.com/NixOS/nixpkgs/blob/master/pkgs/development/compilers/ghc/common-hadrian.nix#L179 I canโ€™t tell for sure but nothing seems to apply. So possibly this error would be reproducible with a compiler from nixpkgs.

(Just to be clear: This report uses a non-nixpkgs compiler out of haskell.nix.)

@maralorn the initial post mentions that they tried it with ghc9102 from nixpkgs as well.

Correction... I see it now:

[ERROR][2025-10-07 22:15:38] ...p/_transport.lua:36	"rpc"	"/home/hasufell/.ghcup/bin/haskell-language-server-wrapper"	"stderr"	"haskell-language-server-9.10.3: internal error: ARR_WORDS object (0x42376ff378) entered!\n    (GHC version 9.10.3 for x86_64_unknown_linux)\n    Please report this as a GHC bug:  https://www.haskell.org/ghc/reportabug\n"

I had to do a bit more file changes for it to trigger.

All patches that we apply can be found here: https://github.com/NixOS/nixpkgs/blob/master/pkgs/development/compilers/ghc/common-hadrian.nix#L179 I canโ€™t tell for sure but nothing seems to apply. So possibly this error would be reproducible with a compiler from nixpkgs.

(Just to be clear: This report uses a non-nixpkgs compiler out of haskell.nix.)

I've also tested and reproduced with nixpkgs (haskell.compiler.ghc9102 and haskell.compiler.ghc9103)

If someone could turn this into a non-interactive reproducer and open a ghc ticket it would be much appreciated.

@AndreasPK Seems like there is a a potentially related ticket already https://gitlab.haskell.org/ghc/ghc/-/issues/26033

@maralorn is ghc9102 in nixpkgs patched? Is there any out-of-the-ordinary build configuration?

I tried this via ghcup, as in:

ghcup compile hls -g 2.12.0.0 --ghc 9.10.3

And I cannot reproduce this.

Correction... I see it now:

Just to add to the above, at work we have reproduced this issue as well using ghc from ghcup and compiling hls with ghcup with one additional flag:

ghcup compile hls -g 2.12.0.0 --ghc 9.10.3 --cabal-update

I don't imagine the additional --cabal-update would make any difference for this particular issue but stating it to be complete.

I will link to this discussion on the ghc issue listed above to be sure there is visibility both directions.

Hello, I would just like to report I ran into this issue as well, using the same HLS and GHC versions (2.12.0.0 and 9.10.3). The commit qxjit made referencing this issue, compiling HLS excluding hlint, made the issue go away for me.

qxjit commented

@telser and I have been investigating this.

It seems to be somehow (probably indirectly?) related to this line in the hlint plugin:

If I remove that line and just return

pure (defaultParseFlags, [], mempty)

instead, the issue goes away. (If I leave the argsSettings line in and throw away its result the error still happens)

We created as minimal a reproduction setup as we were able in a branch of one of our projects here: https://github.com/flipstone/shrubbery/tree/hls-arr-word-crash-setup

We've hit a bit of a wall digging into this though. Does anyone have any suggestions or guidance?

Great investigation, I was also able to reproduce it, will also take a look next week (not around this week).

I have encountered this bug using HLS 2.12.0.0 (with ghc-9.10.3)

haskell-language-server-9.10.3: internal error: ARR_WORDS object (0x16b6dee40) entered!
    (GHC version 9.10.3 for aarch64_apple_darwin)
    Please report this as a GHC bug:  https://www.haskell.org/ghc/reportabug
[Error - 14:23:10] Server process exited with signal SIGABRT.

Previously in the output I saw this error (repeatedly)

[Error - 14:23:04] Request textDocument/semanticTokens/full failed.
  Message: No plugins are available to handle this SMethod_TextDocumentSemanticTokensFull request.
 Plugins installed for this method, but not available to handle this request are:
semanticTokens is disabled globally in your config.
  Code: -32601 

In VS code settings, I switched on Haskell โ€บ Plugin โ€บ Semantic Tokens: Global On
and the problem seems to have gone away.

Sadly, @chrisreade's VS Code settings 'fix' did not work in my case. EDIT1: However, the suggested disabling of Haskell > Plugin > Hlint: Code Actions On and Haskell > Plugin > Hlint: Diagnostics On did work.

EDIT2: In fact, it was sufficient to disable only Haskell > Plugin > Hlint: Diagnostics On.

In case you need more reproducers:

Any ideas how can I disable hlint plugin, when just invoking standalone haskell-language-server?

fendor commented

Any ideas how can I disable hlint plugin, when just invoking standalone haskell-language-server?

That's not supported, the only thing you can do is recompile HLS from source and removing the hlint plugin, for example with ghcup:

ghcup compile hls -v 2.12.0.0 --ghc 9.10.3 -- -f-hlint

This removes the hlint plugin at compile time.

I have encountered this bug using HLS 2.12.0.0 (with ghc-9.10.3)

haskell-language-server-9.10.3: internal error: ARR_WORDS object (0x16b6dee40) entered!
    (GHC version 9.10.3 for aarch64_apple_darwin)
    Please report this as a GHC bug:  https://www.haskell.org/ghc/reportabug
[Error - 14:23:10] Server process exited with signal SIGABRT.

Previously in the output I saw this error (repeatedly)

[Error - 14:23:04] Request textDocument/semanticTokens/full failed.
  Message: No plugins are available to handle this SMethod_TextDocumentSemanticTokensFull request.
 Plugins installed for this method, but not available to handle this request are:
semanticTokens is disabled globally in your config.
  Code: -32601 

In VS code settings, I switched on Haskell โ€บ Plugin โ€บ Semantic Tokens: Global On and the problem seems to have gone away.

Correction. So far it fixed the repeated error message (Code: -32601) but not the internal error with SIGABRT which has since reoccured.

Is it the same issue as https://gitlab.haskell.org/ghc/ghc/-/issues/26553 ?

Seems to be the same underlying GHC bug, but I'm not sure what is triggering it.

I have a project which loads in VS code and the identifiers all have hover-over working as expected.
However if I edit an identifier (to something not defined), the HLS server aborts (reporting it tried to restart 5 times
and reporting the same GHC bug).
If I edit back to a defined identifier then restart VS code, it loads again without aborting.

Added in Edit:
I tried another change to an expression and got the following abort message but this time a successful restart of HLS

2025-11-08T10:22:14.943956Z | Warning | semanticTokens: SemanticTokens' dependency error: Rule Failed: GetHieAst
[Error - 10:22:15] Request textDocument/foldingRange failed.
  Message: codeRange: Rule Failed: GetCodeRange
  Code: -32803 
2025-11-08T10:22:16.447229Z | Warning | semanticTokens: SemanticTokens' dependency error: Rule Failed: GetHieAst
haskell-language-server-9.10.3: internal error: ARR_WORDS object (0x16c172e40) entered!
    (GHC version 9.10.3 for aarch64_apple_darwin)
    Please report this as a GHC bug:  https://www.haskell.org/ghc/reportabug
[Error - 10:22:16] Server process exited with signal SIGABRT.
[Info  - 10:22:16] Connection to server got closed. Server will restart.