Intermittent ProjectConfig test failure
- 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
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