haskell / haskell/cabal

Intermittent ProjectConfig test failure

Open
#3,839 4 comments 0 reactions 0 assignees View on GitHub
cabal-install: tests/unit-tests cabal-install: v2-build system type: bug type: testing
Dominant language
Haskell
Stars
1.7k
Forks
750
Avg merge
4d 3h
Merged PRs (30d)
28

Description

There is an intermittent test failure on CI; I've caught this on AppVeyor and Travis:

```
ProjectConfig printing/parsing round trip

packages: OK (15.01s)

+++ OK, passed 100 tests.

buildonly: OK (0.02s)

+++ OK, passed 100 tests.

shared: OK (2.22s)

+++ OK, passed 100 tests.

local: OK (0.19s)

+++ OK, passed 100 tests.

specific: OK (8.84s)

+++ OK, passed 100 tests.

all: FAIL (13.70s)

*** Failed! Falsifiable (after 95 tests and 63 shrinks):

ProjectConfig {projectPackages = [], projectPackagesOptional = [], projectPackagesRepo = [], projectPackagesNamed = [], projectConfigBuildOnly = ProjectConfigBuildOnly {projectConfigVerbosity = NoFlag, projectConfigDryRun = NoFlag, projectConfigOnlyDeps = NoFlag, projectConfigSummaryFile = [], projectConfigLogFile = NoFlag, projectConfigBuildReports = NoFlag, projectConfigReportPlanningFailure = NoFlag, projectConfigSymlinkBinDir = NoFlag, projectConfigOneShot = NoFlag, projectConfigNumJobs = NoFlag, projectConfigKeepGoing = NoFlag, projectConfigOfflineMode = NoFlag, projectConfigKeepTempFiles = NoFlag, projectConfigHttpTransport = Flag "mlz}", projectConfigIgnoreExpiry = NoFlag, projectConfigCacheDir = NoFlag, projectConfigLogsDir = Flag "T-\\k6"}, projectConfigShared = ProjectConfigShared {projectConfigHcFlavor = NoFlag, projectConfigHcPath = NoFlag, projectConfigHcPkg = NoFlag, projectConfigHaddockIndex = NoFlag, projectConfigRemoteRepos = [], projectConfigLocalRepos = [], projectConfigConstraints = [], projectConfigPreferences = [], projectConfigCabalVersion = NoFlag, projectConfigSolver = NoFlag, projectConfigAllowOlder = Nothing, projectConfigAllowNewer = Just (AllowNewer {unAllowNewer = RelaxDepsSome [RelaxedDepScoped (PackageName {unPackageName = "all-99bed"}) (PackageName {unPackageName = "SLwZ-w"}),RelaxedDep (PackageName {unPackageName = "k"}),RelaxedDepScoped (PackageName {unPackageName = "uz1Lh"}) (PackageName {unPackageName = "zhtP-Gtq"})]}), projectConfigMaxBackjumps = NoFlag, projectConfigReorderGoals = NoFlag, projectConfigCountConflicts = NoFlag, projectConfigStrongFlags = NoFlag}, projectConfigLocalPackages = PackageConfig {packageConfigProgramPaths = MapLast {getMapLast = fromList []}, packageConfigProgramArgs = MapMappend {getMapMappend = fromList []}, packageConfigProgramPathExtra = [], packageConfigFlagAssignment = [], packageConfigVanillaLib = NoFlag, packageConfigSharedLib = NoFlag, packageConfigDynExe = NoFlag, packageConfigProf = NoFlag, packageConfigProfLib = NoFlag, packageConfigProfExe = NoFlag, packageConfigProfDetail = NoFlag, packageConfigProfLibDetail = NoFlag, packageConfigConfigureArgs = [], packageConfigOptimization = NoFlag, packageConfigProgPrefix = NoFlag, packageConfigProgSuffix = NoFlag, packageConfigExtraLibDirs = [], packageConfigExtraFrameworkDirs = [], packageConfigExtraIncludeDirs = [], packageConfigGHCiLib = NoFlag, packageConfigSplitObjs = NoFlag, packageConfigStripExes = NoFlag, packageConfigStripLibs = NoFlag, packageConfigTests = NoFlag, packageConfigBenchmarks = NoFlag, packageConfigCoverage = NoFlag, packageConfigRelocatable = NoFlag, packageConfigDebugInfo = NoFlag, packageConfigRunTests = NoFlag, packageConfigDocumentation = NoFlag, packageConfigHaddockHoogle = NoFlag, packageConfigHaddockHtml = NoFlag, packageConfigHaddockHtmlLocation = NoFlag, packageConfigHaddockExecutables = NoFlag, packageConfigHaddockTestSuites = NoFlag, packageConfigHaddockBenchmarks = NoFlag, packageConfigHaddockInternal = NoFlag, packageConfigHaddockCss = NoFlag, packageConfigHaddockHscolour = NoFlag, packageConfigHaddockHscolourCss = NoFlag, packageConfigHaddockContents = NoFlag}, projectConfigSpecificPackage = MapMappend {getMapMappend = fromList []}}

Use --quickcheck-replay '94 TFGenR 2ECEE40AAFB32473ED7CC35A07890A8168169FDBC147BC4EC83FD9B6D7FA460D 0 288230376151711743 58 0' to reproduce.
```

The [job](https://travis-ci.org/ttuegel/cabal/jobs/159567565) is here for more context.

Contributor guide

Open the contributing guide

Research direction

Start with the “ProjectConfig printing/parsing round trip” property test and use the reported --quickcheck-replay value to reproduce the failure. Trace the failing generated ProjectConfig through printing and parsing, then confirm the property is reliable across CI runs once the intermittent behavior is addressed.

Written by the indexing model from the issue text.

Assessment

Tech stack
haskell
Domain
testing
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.