Skip to content

GitLab

  • Menu
Projects Groups Snippets
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
  • Sign in / Register
  • GHC GHC
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
    • Locked Files
  • Issues 4,968
    • Issues 4,968
    • List
    • Boards
    • Service Desk
    • Milestones
    • Iterations
  • Merge requests 474
    • Merge requests 474
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
    • Test Cases
  • Deployments
    • Deployments
    • Releases
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Code review
    • Insights
    • Issue
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • Glasgow Haskell Compiler
  • GHCGHC
  • Issues
  • #13945
Closed
Open
Created Jul 09, 2017 by Matthew Pickering@mpickeringDeveloper

'ghc-pkg update' fails due to bad file descriptor error

In the final part of installation when packages are registered, the following command fails

"inplace/bin/ghc-cabal" register libraries/ghc-prim dist-install "/home/pgrads/mp16005/linux/installed-ghc/lib/ghc-8.2.0.20170708/bin/ghc" "/home/pgrads/mp16005/linux/installed-ghc/lib/ghc-8.2.0.20170708/bin/ghc-pkg" "/home/pgrads/mp16005/linux/installed-ghc/lib/ghc-8.2.0.20170708" '' '/home/pgrads/mp16005/linux/installed-ghc' '/home/pgrads/mp16005/linux/installed-ghc/lib/ghc-8.2.0.20170708' '/home/pgrads/mp16005/linux/installed-ghc/share/doc/ghc-8.2.0.20170708/html/libraries' NO

with the following output

Registering library for ghc-prim-0.5.0.0..
ghc-cabal:
'/home/pgrads/mp16005/linux/installed-ghc/lib/ghc-8.2.0.20170708/bin/ghc-pkg'
exited with an error:
ghc-pkg: Couldn't open database
/home/pgrads/mp16005/linux/installed-ghc/lib/ghc-8.2.0.20170708/package.conf.d
for modification: {handle:
/home/pgrads/mp16005/linux/installed-ghc/lib/ghc-8.2.0.20170708/package.conf.d/package.cache.lock}:
hLock: invalid argument (Bad file descriptor)

It might be something to do with the permissions I have on my machine but I used to be able to install ghc if I gave it a suitable prefix other than /usr/local.

A workaround is to make sure that HAVE_FLOCK is not defined, the way I did this was commenting out the three relevant lines in libraries/base/configure.ac.

geekosaur suggests on IRC that the problem might be

what might be possible is that hLock uses fcntl locking, ghc-pkg opens a database r/o if it can't open it r/w, and it tried to acquire a write lock (which will fail with EBADF if the file descriptor is only open for read). and there is an SElinux context prohibiting your process opening the db for write

Edited Mar 10, 2019 by Ben Gamari
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information
Assignee
Assign to
Time tracking