Skip to content

Dynamic linking problems? #1160

Closed
Closed
@Vlix

Description

@Vlix

Not sure if this is an HLS issue, but building with stack itself works fine, so somewhere something is off.

The main problem seems to be somehow related to how we've built the tracing-newrelic package. I've added the LSP logs to show what's happening.

A few things to keep in mind:

  • /home/user/project/scripts/files/libnewrelic.a is soft linked from /lib/libnewrelic.a
  • If I move the libnewrelic.a from scripts/files, I get the following error:
    Unexpected usage error
    libnewrelic.so: cannot open shared object file: No such file or directory
    
  • building with just stack build or stack ghci works fine
  • I've sanitized a lot, because this is an internal company codebase.
  • I've included only a few different errors I've gotten in the hls --debug snippet below, there are way more, but most only have the message Program Error:

I don't get why it doesn't work. If anyone could help me out, that'd be great!


A snippet from [haskell-language-server --debug]
File:     /home/user/project/package2/src/Module.hs
Hidden:   no
Range:    1:1-2:1
Source:   compiler
Severity: DsError
Message: 
  Data.HashMap.Base.(!): key not found
  CallStack (from HasCallStack):
  error, called at ./Data/HashMap/Base.hs:631:16 in
  unordered-containers-0.2.10.0-KujsThAgCnwGXBG7PJnkNO:Data.HashMap.Base
haskell-language-server: /home/user/project/scripts/files/libnewrelic.a: unknown symbol `stat'
haskell-language-server: /home/user/project/scripts/files/libnewrelic.a: unknown symbol `nr_close'
haskell-language-server: /home/user/project/scripts/files/libnewrelic.a: unknown symbol `nrl_level_mask_ptr'
haskell-language-server: /home/user/.stack/snapshots/x86_64-linux/500986717783a68e606e0b2a92ead5d49774d1810b2804e9f52dbdead82b7e1f/8.8.3/lib/x86_64-linux-ghc-8.8.3/tracing-newrelic-1.0.0.1-C9fxu7aaeN2Lo041riYaFq/libHStracing-newrelic-1.0.0.1-C9fxu7aaeN2Lo041riYaFq.a: unknown symbol `newrelic_ignore_transaction'
haskell-language-server: /home/user/project/.stack-work/install/x86_64-linux/500986717783a68e606e0b2a92ead5d49774d1810b2804e9f52dbdead82b7e1f/8.8.3/lib/x86_64-linux-ghc-8.8.3/package1-0.2.0.0-2gTTaf1DTx3EyQV3wpJlWA/libHSpackage1-0.2.0.0-2gTTaf1DTx3EyQV3wpJlWA.a: unknown symbol `tracingzmnewreliczm1zi0zi0zi1zmC9fxu7aaeN2Lo041riYaFq_TracingziNewRelic_DatastoreSegment_con_info'
haskell-language-server: /home/user/project/.stack-work/install/x86_64-linux/500986717783a68e606e0b2a92ead5d49774d1810b2804e9f52dbdead82b7e1f/8.8.3/lib/x86_64-linux-ghc-8.8.3/package1-0.2.0.0-2gTTaf1DTx3EyQV3wpJlWA/libHSpackage1-0.2.0.0-2gTTaf1DTx3EyQV3wpJlWA.a: unknown symbol `package1zm0zi2zi0zi0zm2gTTaf1DTx3EyQV3wpJlWA_DataziCompanyziEnvziDB_withSqlPersistT_closure'
haskell-language-server: /home/user/project/.stack-work/install/x86_64-linux/500986717783a68e606e0b2a92ead5d49774d1810b2804e9f52dbdead82b7e1f/8.8.3/lib/x86_64-linux-ghc-8.8.3/package1-0.2.0.0-2gTTaf1DTx3EyQV3wpJlWA/libHSpackage1-0.2.0.0-2gTTaf1DTx3EyQV3wpJlWA.a: unknown symbol `package1zm0zi2zi0zi0zm2gTTaf1DTx3EyQV3wpJlWA_UtilziDBziPersistent_insert_closure'
haskell-language-server: ^^ Could not load 'package1zm0zi2zi0zi0zm2gTTaf1DTx3EyQV3wpJlWA_UtilziError_logW_closure', dependency unresolved. See top entry above.

haskell-language-server: /home/user/project/scripts/files/libnewrelic.a: unknown symbol `stat'
File:     /home/user/project/package3/src/Module.hs
Hidden:   no
Range:    1:1-2:1
Source:   typecheck
Severity: DsError
Message:  Program error:
File:     /home/user/project/package4/src/Module.hs
Hidden:   no
Range:    1:1-2:1
Source:   typecheck
Severity: DsError
Message: 
  Program error:
  ByteCodeLink.lookupCE
  During interactive linking, GHCi couldn't find the following symbol:
  commonzm0zi2zi0zi0zm2gTTaf1DTx3EyQV3wpJlWA_UtilziError_logW_closure
  This may be due to you not asking GHCi to load extra object files,
  archives or DLLs needed by your current session. Restart GHCi, specifying
  the missing library using the -L/path/to/object/dir and -lmissinglibname
  flags, or simply by naming the relevant files on the GHCi command line.
  Alternatively, this link failure might indicate a bug in GHCi.
  If you suspect the latter, please send a bug report to:
  [email protected]
haskell-language-server: /home/user/project/scripts/files/libnewrelic.a: unknown symbol `stat'
File:     /home/user/project/package5/src/Module.hs
Hidden:   no
Range:    1:1-2:1
Source:   typecheck
Severity: DsError
Message:  Program error:
haskell-language-server: /home/user/project/scripts/files/libnewrelic.a: unknown symbol `stat'
File:     /home/user/project/package6/src/Module.hs
Hidden:   no
Range:    1:1-2:1
Source:   typecheck
Severity: DsError
LSP logs:
haskell-language-server version: 0.6.0.0 (GHC: 8.8.3) (PATH: /home/user/.local/bin/haskell-language-server-8.8.3) (GIT hash: 61c69fd387281c2222f75f13542eaa2e91cbc1b1)
Starting (haskell-language-server)LSP server...
  with arguments: LspArguments {argLSP = True, argsCwd = Nothing, argFiles = [], argsShakeProfiling = Nothing, argsTesting = False, argsExamplePlugin = False, argsDebugOn = False, argsLogFile = Nothing, argsThreads = 0, argsProjectGhcVersion = False}
  with plugins: [PluginId "brittany",PluginId "eval",PluginId "floskell",PluginId "fourmolu",PluginId "ghcide",PluginId "hlint",PluginId "importLens",PluginId "moduleName",PluginId "ormolu",PluginId "pragmas",PluginId "retrie",PluginId "stylish-haskell",PluginId "tactic"]
  in directory: /home/user/project
If you are seeing this in a terminal, you probably should have run ghcide WITHOUT the --lsp option!
 Started LSP server in 0.01s
2021-01-05 17:29:15.340933183 [ThreadId 21] - Registering ide configuration: IdeConfiguration {workspaceFolders = fromList [NormalizedUri 8153209061171765366 "file:///home/user/project"], clientSettings = hashed Nothing}
2021-01-05 17:29:15.342464754 [ThreadId 21] - Configuration changed: Object (fromList [("haskell",Object (fromList [("logFile",String ""),("updateBehavior",String "prompt"),("hlintOn",Bool True),("formatOnImportOn",Bool True),("indentationRules",Object (fromList [("enabled",Bool True)])),("liquidOn",Bool False),("languageServerVariant",String "haskell-language-server"),("serverExecutablePath",String ""),("diagnosticsOnChange",Bool True),("completionSnippetsOn",Bool True),("maxNumberOfProblems",Number 100.0),("formattingProvider",String "fourmolu"),("trace",Object (fromList [("server",String "messages")]))]))])
2021-01-05 17:29:28.396350009 [ThreadId 21] - Opened text document: file:///home/user/project/package1/src/PathToModule.hs
2021-01-05 17:29:28.397578522 [ThreadId 111] - getClientConfigAction:clientSettings:Just (Object (fromList [("haskell",Object (fromList [("logFile",String ""),("updateBehavior",String "prompt"),("hlintOn",Bool True),("formatOnImportOn",Bool True),("indentationRules",Object (fromList [("enabled",Bool True)])),("liquidOn",Bool False),("languageServerVariant",String "haskell-language-server"),("serverExecutablePath",String ""),("diagnosticsOnChange",Bool True),("completionSnippetsOn",Bool True),("maxNumberOfProblems",Number 100.0),("formattingProvider",String "fourmolu"),("trace",Object (fromList [("server",String "messages")]))]))]))
2021-01-05 17:29:28.397706219 [ThreadId 111] - hlint:getIdeas:file:NormalizedFilePath "/home/user/project/package1/src/PathToModule.hs"
2021-01-05 17:29:28.39781411 [ThreadId 105] - Consulting the cradle for "package1/src/PathToModule.hs"
Output from setting up the cradle Cradle {cradleRootDir = "/home/user/project", cradleOptsProg = CradleAction: Stack}
2021-01-05 17:29:28.612669625 [ThreadId 121] - Plugin.makeCodeLens (ideLogger)
2021-01-05 17:29:28.8243354 [ThreadId 134] - GhcIde.hover entered (ideLogger)
2021-01-05 17:29:28.82454223 [ThreadId 134] - Hover request at position 54:20 in file: /home/user/project/package1/src/PathToModule.hs
> Configuring GHCi with the following packages: package1
> /home/user/project/.stack-work/install/x86_64-linux/500986717783a68e606e0b2a92ead5d49774d1810b2804e9f52dbdead82b7e1f/8.8.3/pkgdb:/home/user/.stack/snapshots/x86_64-linux/500986717783a68e606e0b2a92ead5d49774d1810b2804e9f52dbdead82b7e1f/8.8.3/pkgdb:/home/user/.stack/programs/x86_64-linux/ghc-8.8.3/lib/ghc-8.8.3/package.conf.d
2021-01-05 17:29:30.620428179 [ThreadId 105] - Using interface files cache dir: /home/user/.cache/ghcide/main-b4c0326a64fc0af4283707de7d9957e97233b004
2021-01-05 17:29:30.62083531 [ThreadId 105] - Making new HscEnv[main]
2021-01-05 17:29:30.794830543 [ThreadId 190] - getClientConfigAction:clientSettings:Just (Object (fromList [("haskell",Object (fromList [("logFile",String ""),("updateBehavior",String "prompt"),("hlintOn",Bool True),("formatOnImportOn",Bool True),("indentationRules",Object (fromList [("enabled",Bool True)])),("liquidOn",Bool False),("languageServerVariant",String "haskell-language-server"),("serverExecutablePath",String ""),("diagnosticsOnChange",Bool True),("completionSnippetsOn",Bool True),("maxNumberOfProblems",Number 100.0),("formattingProvider",String "fourmolu"),("trace",Object (fromList [("server",String "messages")]))]))]))
2021-01-05 17:29:30.795019385 [ThreadId 190] - hlint:getIdeas:file:NormalizedFilePath "/home/user/project/package1/src/PathToModule.hs"
2021-01-05 17:29:30.854360225 [ThreadId 274] - finish: CodeAction (took 0.06s)
2021-01-05 17:29:30.854760773 [ThreadId 273] - hlint:getIdeas:setExtensions:[Cpp,OverlappingInstances,UndecidableInstances,IncoherentInstances,UndecidableSuperClasses,MonomorphismRestriction,MonoPatBinds,MonoLocalBinds,RelaxedPolyRec,ExtendedDefaultRules,ForeignFunctionInterface,UnliftedFFITypes,InterruptibleFFI,CApiFFI,GHCForeignImportPrim,JavaScriptFFI,ParallelArrays,TemplateHaskell,TemplateHaskellQuotes,ImplicitParams,ImplicitPrelude,ScopedTypeVariables,AllowAmbiguousTypes,UnliftedNewtypes,BangPatterns,TypeFamilies,TypeFamilyDependencies,TypeInType,OverloadedStrings,OverloadedLists,NumDecimals,DisambiguateRecordFields,RecordWildCards,RecordPuns,ViewPatterns,GADTs,GADTSyntax,NPlusKPatterns,DoAndIfThenElse,BlockArguments,RebindableSyntax,ConstraintKinds,PolyKinds,DataKinds,InstanceSigs,ApplicativeDo,StandaloneDeriving,DeriveDataTypeable,AutoDeriveTypeable,DeriveFunctor,DeriveTraversable,DeriveFoldable,DeriveGeneric,DefaultSignatures,DeriveAnyClass,DeriveLift,DerivingStrategies,DerivingVia,TypeSynonymInstances,FlexibleContexts,FlexibleInstances,ConstrainedClassMethods,MultiParamTypeClasses,NullaryTypeClasses,FunctionalDependencies,UnicodeSyntax,ExistentialQuantification,MagicHash,EmptyDataDecls,KindSignatures,RoleAnnotations,ParallelListComp,MonadComprehensions,GeneralizedNewtypeDeriving,PostfixOperators,TupleSections,PatternGuards,LiberalTypeSynonyms,RankNTypes,ImpredicativeTypes,TypeOperators,ExplicitNamespaces,PackageImports,ExplicitForAll,AlternativeLayoutRuleTransitional,DatatypeContexts,NondecreasingIndentation,RelaxedLayout,TraditionalRecordSyntax,LambdaCase,MultiWayIf,BinaryLiterals,HexFloatLiterals,DuplicateRecordFields,OverloadedLabels,EmptyCase,PatternSynonyms,PartialTypeSignatures,NamedWildCards,TypeApplications,Strict,StrictData,MonadFailDesugaring,EmptyDataDeriving,NumericUnderscores,QuantifiedConstraints,ImportQualifiedPost,CUSKs,StandaloneKindSignatures,StarIsType]
2021-01-05 17:29:31.377399929 [ThreadId 273] - finish: CodeAction (took 0.00s)
2021-01-05 17:29:32.18367254 [ThreadId 1515] - finish: CodeAction:PackageExports (took 1.33s)
2021-01-05 17:29:32.1836766 [ThreadId 1516] - finish: CodeAction:PackageExports (took 0.81s)
2021-01-05 17:29:32.184178174 [ThreadId 1517] - finish: importLens (took 0.00s)
2021-01-05 17:29:33.313416899 [ThreadId 1787] - finish: codeLens (took 2.52s)
2021-01-05 17:29:33.313472475 [ThreadId 1790] - finish: retrie (took 1.13s)
2021-01-05 17:29:33.314263719 [ThreadId 1795] - finish:  (took 0.00s)
2021-01-05 17:29:33.314910113 [ThreadId 1796] - finish: ModuleName.ghcSession (took 0.00s)
2021-01-05 17:29:33.315274003 [ThreadId 1798] - finish: ModuleName.GetParsedModule (took 0.00s)
2021-01-05 17:29:33.316240671 [ThreadId 1802] - finish: tactic (took 0.00s)
2021-01-05 17:29:33.316523823 [ThreadId 1806] - finish: tactic (took 0.00s)
2021-01-05 17:29:33.317761669 [ThreadId 1807] - finish: tactic (took 0.00s)
2021-01-05 17:29:33.719555595 [ThreadId 1926] - finish: CodeAction (took 0.00s)
2021-01-05 17:29:33.719629204 [ThreadId 1808] - finish: CodeAction:PackageExports (took 0.00s)
2021-01-05 17:29:33.720143957 [ThreadId 1927] - finish: importLens (took 0.00s)
2021-01-05 17:29:33.720357099 [ThreadId 1928] - finish: retrie (took 0.00s)
2021-01-05 17:29:33.720563996 [ThreadId 1929] - finish: tactic (took 0.00s)
2021-01-05 17:29:33.72069339 [ThreadId 1929] - finish: tactic (took 0.00s)
2021-01-05 17:29:33.720784285 [ThreadId 1929] - finish: tactic (took 0.00s)
haskell-language-server-8.8.3: /home/user/project/scripts/files/libnewrelic.a: unknown symbol `stat'
haskell-language-server-8.8.3: /home/user/project/scripts/files/libnewrelic.a: unknown symbol `nr_close'
haskell-language-server-8.8.3: /home/user/project/scripts/files/libnewrelic.a: unknown symbol `nrl_level_mask_ptr'
haskell-language-server-8.8.3: /home/user/.stack/snapshots/x86_64-linux/500986717783a68e606e0b2a92ead5d49774d1810b2804e9f52dbdead82b7e1f/8.8.3/lib/x86_64-linux-ghc-8.8.3/tracing-newrelic-1.0.0.1-C9fxu7aaeN2Lo041riYaFq/libHStracing-newrelic-1.0.0.1-C9fxu7aaeN2Lo041riYaFq.a: unknown symbol `newrelic_ignore_transaction'
haskell-language-server-8.8.3: ^^ Could not load 'tracingzmnewreliczm1zi0zi0zi1zmC9fxu7aaeN2Lo041riYaFq_TracingziNewRelic_DatastoreSegment_con_info', dependency unresolved. See top entry above.

haskell-language-server-8.8.3: ^^ Could not load 'tracingzmnewreliczm1zi0zi0zi1zmC9fxu7aaeN2Lo041riYaFq_TracingziNewRelic_DatastoreSegment_static_info', dependency unresolved. See top entry above.

Metadata

Metadata

Assignees

No one assigned

    Labels

    can-workaroundtype: bugSomething isn't right: doesn't work as intended, documentation is missing/outdated, etc..type: enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions