Possible false valgrind error reports
Karina Litskevich <litskevichkarina@gmail.com>
From: Karina Litskevich <litskevichkarina@gmail.com>
To: Postgres hackers <pgsql-hackers@lists.postgresql.org>
Date: 2023-02-14T14:49:27Z
Lists: pgsql-hackers
Attachments
- v1-0001-Fix-VALGRIND_MAKE_MEM_DEFINED-calls.patch (text/x-patch) patch v1-0001
- v1-0002-Better-comments-and-variable-name-in-AllocSetReal.patch (text/x-patch) patch v1-0002
Hi hackers, In 82d0a46ea32 AllocSetRealloc() was changed to allow decreasing size of external chunks and give memory back to the malloc pool. Two VALGRIND_MAKE_MEM_UNDEFINED() calls were not changed to work properly in the case of decreasing size: they can mark memory behind the new allocated memory UNDEFINED. If this memory was already allocated and initialized, it's expected to be DEFINED. So it can cause false valgrind error reports. I fixed it in 0001 patch. Also, it took me a while to understand what's going on there, so in 0002 patch I tried to improve comments and renamed a variable. Its name "oldsize" confused me. I first thought "oldsize" and "size" represent the same parameters of the old and new chunk. But actually "size" is new "chunk->requested_size" and "oldsize" is old "chksize". So I believe it's better to rename "oldsize" into "oldchksize". Best regards, Karina Litskevich Postgres Professional: http://postgrespro.com/
Commits
-
Fix erroneous Valgrind markings in AllocSetRealloc.
- b3e184a5d4fd 16.0 landed
- dc44180f6e17 14.8 landed
- 99e74cd235a5 13.11 landed
- 463bef38332e 12.15 landed
- 21bd818d05fb 11.20 landed
- f6a55c1d5593 15.3 landed