Skip to content

zu-c holds the leaks item - #624

Merged
tamnd merged 1 commit into
mainfrom
leaks-score
Aug 22, 2026
Merged

tamnd merged 1 commit into
mainfrom
leaks-score

Conversation

@tamnd

@tamnd tamnd commented Aug 22, 2026

Copy link
Copy Markdown
Owner

The leaks item 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.supp carries 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: idiom at 15, then reference, install and stability at 10 each.

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.
@tamnd
tamnd merged commit b410101 into main Aug 22, 2026
35 of 40 checks passed
@tamnd
tamnd deleted the leaks-score branch August 22, 2026 16:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant