From: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
---|---|
To: | Alexander Korotkov <aekorotkov(at)gmail(dot)com> |
Cc: | Robert Haas <robertmhaas(at)gmail(dot)com>, Heikki Linnakangas <hlinnaka(at)iki(dot)fi>, Egor Chindyaskin <kyzevan23(at)mail(dot)ru>, Sascha Kuhl <yogidabanli(at)gmail(dot)com>, pgsql-hackers(at)lists(dot)postgresql(dot)org |
Subject: | Re: Stack overflow issue |
Date: | 2024-03-06 22:52:27 |
Message-ID: | 386032.1709765547@sss.pgh.pa.us |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
Alexander Korotkov <aekorotkov(at)gmail(dot)com> writes:
> The revised set of remaining patches is attached.
> ...
> 0003 Avoid recursion in MemoryContext functions
> I've renamed MemoryContextTraverse() => MemoryContextTraverseNext(),
> which I think is a bit more intuitive. Also I fixed
> MemoryContextMemConsumed(), which was still trying to use the removed
> argument "print" of MemoryContextStatsInternal() function.
This patch still doesn't compile for me --- MemoryContextMemConsumed
got modified some more by commit 743112a2e, and needs minor fixes.
I initially didn't like the definition of MemoryContextTraverseNext
because it requires two copies of the "process node" logic. However,
that seems fine for most of the callers, and even where we are
duplicating logic it's just a line or so, so I guess it's ok.
However, MemoryContextTraverseNext seems undercommented to me, plus
the claim that it traverses in depth-first order is just wrong.
I found some bugs in MemoryContextStatsInternal too: the old
logic assumed that ichild exceeding max_children was the only
way to get into the summarization logic, but now ichild minus
max_children could very well be negative. Fortunately we can
just reset ichild to zero and not worry about having any
connection between the first loop and the second.
Here's a v5 of 0003 with those issues and some more-cosmetic ones
cleaned up. I didn't look at 0001 or 0002.
regards, tom lane
Attachment | Content-Type | Size |
---|---|---|
v5-0003-Avoid-recursion-in-MemoryContext-functions.patch | text/x-diff | 14.1 KB |
From | Date | Subject | |
---|---|---|---|
Next Message | Michael Paquier | 2024-03-06 22:54:51 | Re: Injection points: some tools to wait and wake |
Previous Message | Jacob Champion | 2024-03-06 22:46:07 | Re: [PATCH] Exponential backoff for auth_delay |