-
Notifications
You must be signed in to change notification settings - Fork 81
Open
Labels
essentialWill cause failure to meet customer requirements. Assign resources.Will cause failure to meet customer requirements. Assign resources.
Description
#205 says:
... a build with make -f lii6ll.gmk VARIETY=cool CFLAGSDEBUG='-O0 -g3 -DCHECKLEVEL=CheckLevelDEEP' testci currently fails in several tests.
and also:
We should build and run a deep checking build on at least one platform.
Several steps are needed:
- Introduce an easier way to build and test with deep checking.
- Add testing with deep checking to CI so that we catch problems early.
- Analyse and fix current test failures with deep checking.
I have found false positives in deep checking errors have been introduced in various changes:
- branch/2016-04-16/trace-gens finishes the ring of generations but goes on to use the arena with an invalid trace.
- branch/2020-08-31/walk synthesizes a trace that fails to pass TraceCheck because it has no generations.
- Deep checking has an infinite recursion in ArenaCheck via ShieldCheck, which checks some segments, which check their addresses via ChunkOfAddr, which checks the arena with ArenaCheck. I haven't discovered when this was introduced yet.
- ArenaRootsWalk synthesizes an invalid trace in TraceStateINIT that is flipped. ArenaRootsWalk dates back to 1999 so it was introduced by some other change. I haven't discovered when yet.
There may be more. I have yet to run the entire test suite.
So far I have no evidence that any of these would cause failures in production, but deep checking is a valuable tool when, e.g. working on subtle parts of the MPS like the shield, and we ought to fix it up.
Metadata
Metadata
Assignees
Labels
essentialWill cause failure to meet customer requirements. Assign resources.Will cause failure to meet customer requirements. Assign resources.