zu-c holds the leaks item - #624
Merged
Merged
Conversation
Sanitizer and leak jobs in CI, which is what the item asks for. ASan and UBSan were already there over the whole tree and misuse.c already ran again with leak detection on. tamnd/zu-c#8 adds the other two the README promised: a threading suite under TSan, and both C suites under valgrind with definitely and indirectly lost counted as errors. Both clean, and both gates probed against a planted defect before being believed. The TSan half is mostly suppressed and the file says why at length: libzu takes no pthread lock, so TSan has no happens-before edge to learn and reports the engine racing with itself even when eight threads share nothing at all. That is #622. What the job checks is the client's half, and that it checks anything is checked. 39 to 50 of the 90 zu-c owes. Left: idiom at 15, then reference, install and stability at 10 each.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The
leaksitem is sanitizer and leak jobs in CI. zu-c had two of the four its README promised. tamnd/zu-c#8 adds the other two.Valgrind over both C suites, definitely and indirectly lost counted as errors, zero of each. A threading suite under TSan, which is the file that gave TSan something to run at all: eight threads with a connection each off one shared database, a connection moved between threads with a join at every handoff, one connection used from two threads at once, and an interrupt from another thread. All four of the header's threading promises hold when run rather than read.
Most of the TSan output is suppressed and
test/tsan.suppcarries the measurement rather than a bare pair of lines. libzu takes no pthread lock, so TSan has no edge to learn from and reports the engine as racing with itself. Eight threads on eight separate databases, sharing nothing, still produce a report. That is filed as #622, which asks for the instrumented engine build in which those reports could be read instead of dropped. What the job checks is the client's half, and a race planted in the suite's own memory is still reported with the suppressions on, so the gate is not vacuous.Regenerated on the build host. zu-c goes 39 to 50 of the 90 it owes. Left on its card:
idiomat 15, thenreference,installandstabilityat 10 each.