cabal-1

Cabal starts multiple processes to build a project. 'cabal run' termination does not terminate all child processes automatically as well. The solution is to use 'withCreateProcess' rather than 'createProcess' and throw an asynchronous exception from the main thread when a termination is wanted.

ghc-version: 8.10.7

hasbugs-version: 1.0.0

license: BSD-3

build-framework: stack

Repository
GitHub Artifacts :

Faults @0184445b

[
  {
    "endline": 127,
    "file": "cabal/src/distribution/simple/program/run.hs",
    "function": "runprograminvocation",
    "module": "distribution.simple.program.run",
    "startline": 127
  },
  {
    "endline": 132,
    "file": "cabal/src/distribution/simple/program/run.hs",
    "function": "runprograminvocation",
    "module": "distribution.simple.program.run",
    "startline": 131
  },
  {
    "endline": 1197,
    "file": "cabal-install/src/Distribution/Client/ProjectConfig.hs",
    "function": "syncAndReadSourcePackagesRemoteRepos",
    "module": "Distribution.Client.ProjectConfig",
    "startline": 1196
  }
]

Fixes @55e036a2

[
  {
    "endline": 127,
    "file": "cabal/src/distribution/simple/program/run.hs",
    "function": "runprograminvocation",
    "module": "distribution.simple.program.run",
    "startline": 127
  },
  {
    "endline": 175,
    "file": "cabal-install/main/Main.hs",
    "function": "main",
    "module": "Main",
    "startline": 175
  },
  {
    "endline": 1196,
    "file": "cabal-install/src/Distribution/Client/ProjectConfig.hs",
    "function": "syncAndReadSourcePackagesRemoteRepos",
    "module": "Distribution.Client.ProjectConfig",
    "startline": 1196
  },
  {
    "endline": 49,
    "file": "cabal-install/src/Distribution/Client/Signal.hs",
    "function": "",
    "module": "Distribution.Client.Signal",
    "startline": 1
  }
]