Re: Confused coding in PLy_traceback()

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

From: Tom Lane <tgl@sss.pgh.pa.us>
To: pgsql-hackers@lists.postgresql.org
Date: 2025-06-01T19:05:37Z
Lists: pgsql-hackers
I wrote:
> So I propose the attached.  For ease of review, I've not re-indented
> the code that needs to move inside PG_TRY blocks.  Also, I dropped the
> logic about pfree'ing the string buffers in PLy_elog_impl's PG_FINALLY
> block: that doesn't seem necessary, and continuing to do it would
> require making those things volatile which is notationally messy.

Pushed.  After sleeping on it I decided that removing the pfree's
would be a poor tradeoff, as it's not clear how long those allocations
might survive otherwise.  The extra "volatile" markers for "xmsg"
and "tbmsg" aren't that big a deal.  Trying to mark "emsg" as volatile
would be problematic because none of the StringInfo routines are set
up to allow that, but it shouldn't be a problem because that struct
will surely be on the stack.

			regards, tom lane



Commits

  1. Run pgindent on the previous commit.

  2. Fix edge-case resource leaks in PL/Python error reporting.