I wrote: > Here's a v2 patchset that reaches the goal of zero reported leaks > in the core regression tests, with some caveats:
Oh, another caveat is that I ran this with a fairly minimalistic set of build options. In a more complete build, I observed a small leak in xml.c, which I posted a fix for in another thread [1]. I also see the leakage Alvaro mentioned with --with-llvm. I'm not sure how real that is though, because AFAICS all of it is reported as "possibly lost", not "definitely lost" or "indirectly lost". In Valgrind-speak that means there are pointers leading to the chunk, just not pointing right at its start. So this could be the result of allocation tricks being played by the C++ compiler. The Valgrind manual talks about some heuristics they use to handle C++ coding patterns, but they don't seem to help in my environment. In any case, the allocation points are mostly far enough down into LLVM functions that if the leaks are real, I'd tend to call them LLVM's bugs not ours. I haven't really tried our non-core test suites yet. Out of curiosity I ran the plperl, plpython, and pltcl suites. All of them show pretty enormous amounts of "possibly lost" data, which again seems likely to be an artifact of allocation games within those libraries rather than real leaks. I wonder if they have "valgrind friendly" build options that we'd need to use to get sane results? regards, tom lane [1] https://www.postgresql.org/message-id/1358967.1747858817%40sss.pgh.pa.us