Re: BUG #16801: Invalid memory access on WITH RECURSIVE with nested WITHs

Tom Lane <tgl@sss.pgh.pa.us>

From: Tom Lane <tgl@sss.pgh.pa.us>
To: Michael Paquier <michael@paquier.xyz>
Cc: Alexander Lakhin <exclusion@gmail.com>, pgsql-bugs@lists.postgresql.org
Date: 2021-02-25T02:48:03Z
Lists: pgsql-bugs
Michael Paquier <michael@paquier.xyz> writes:
> On Wed, Feb 24, 2021 at 09:13:46PM -0500, Tom Lane wrote:
>> Hmm, I don't see any failure from that...

> Perhaps because you are not compiling with -DUSE_VALGRIND which is why
> this fails with only two nested levels?

Ah, right, because that enables DEBUG_LIST_MEMORY_USAGE.  I did run
it under valgrind but I hadn't bothered to recompile.

Anyway, I think we're better off with a test that doesn't require
DEBUG_LIST_MEMORY_USAGE, or preferably not even CLOBBER_FREED_MEMORY,
to show the problem.  The test I showed misbehaves even in non-debug
builds, because it actually depends on what's in the innerwiths lists.

			regards, tom lane



Commits

  1. Fix list-manipulation bug in WITH RECURSIVE processing.