IntersectMBO / IntersectMBO/lsm-tree

[BUG] Unexpected thunks when checking coverage

Open
#669 1 comment 0 reactions 0 assignees View on GitHub
bug lsm-tree priority: low
Dominant language
Haskell
Stars
53
Forks
17
Avg merge
2d 3h
Merged PRs (30d)
4

Description

When I run the test suite (currently with ad1292b970a3fd990265808245aa4904ee6951d1) and have coverage checking enabled, then I get failures like the following ones:
```
prop_noThunks_newPageAcc: FAIL
*** Failed! Falsified (after 1 test):
Found thunk ThunkInfo {thunkContext = ["PageAcc"], thunkInfo = Nothing}
Use --quickcheck-replay="(SMGen 6848572901445988197 3866298262932292735,0)" to reproduce.
Use -p '/prop_noThunks_newPageAcc/' to rerun this test only.
prop_noThunks_pageAccAddElem: FAIL
*** Failed! Falsified (after 1 test):
Found thunk ThunkInfo {thunkContext = ["PageAcc"], thunkInfo = Nothing}
Use --quickcheck-replay="(SMGen 11663673265626043436 15978012764355855857,0)" to reproduce.
Use -p '/prop_noThunks_pageAccAddElem/' to rerun this test only.
prop_noThunks_resetPageAcc: FAIL
*** Failed! Falsified (after 1 test):
Found thunk ThunkInfo {thunkContext = ["PageAcc"], thunkInfo = Nothing}
Use --quickcheck-replay="(SMGen 7347757721205846164 14956855808673582855,0)" to reproduce.
Use -p '/prop_noThunks_resetPageAcc/' to rerun this test only.
propLockstep_RealImpl_RealFS_IO: FAIL (0.01s)
*** Failed! Falsified (after 1 test):
do pure ()
Found thunk ThunkInfo {thunkContext = ["Session'"], thunkInfo = Nothing}
Use --quickcheck-replay="(SMGen 17214650247628038002 3390861474545086669,0)" to reproduce.
Use -p '/propLockstep_RealImpl_RealFS_IO/' to rerun this test only.
```
When I have coverage checking *disabled*, no such failures occur. I guess there is indeed some unwanted laziness here, which just doesn’t show up without coverage checking because of better optimization. Since we shouldn’t rely on such optimization subtleties, we should investigate this further and fix any issues we find.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.