Re: [PATCH] plpython function causes server panic - Mailing list pgsql-hackers

From Hao Zhang
Subject Re: [PATCH] plpython function causes server panic
Date
Msg-id CALY6Dr8fPasw5DP3FFD2YjRZMKeX9_Ank14tz_bmPjjqLB1U7g@mail.gmail.com
Whole thread Raw
In response to Re: [PATCH] plpython function causes server panic  (Tom Lane <tgl@sss.pgh.pa.us>)
Responses Re: [PATCH] plpython function causes server panic
List pgsql-hackers
Thanks for your reply. These patches look good to me!

> The only readily-reachable error case in BeginInternalSubTransaction
> is this specific one about IsInParallelMode, which was added later
> than the original design and evidently with not a lot of thought or
> testing.  The comment for it speculates about whether we could get
> rid of it, so I wonder if our thoughts about this ought to go in that
> direction.

IMHO, there are other error reports in the function BeginInternalSubTransaction(), like
```
ereport(ERROR,
                (errcode(ERRCODE_OUT_OF_MEMORY),
                 errmsg("out of memory"),
                 errdetail("Failed on request of size %zu in memory context \"%s\".",
                           size, context->name)));
```
we cannot avoid this crash by just getting rid of IsInParallelMode().

And in my test, the server won't crash in the plperl test.

With regards,
Hao Zhang

Tom Lane <tgl@sss.pgh.pa.us> 于2023年12月2日周六 09:51写道:
I wrote:
> The only readily-reachable error case in BeginInternalSubTransaction
> is this specific one about IsInParallelMode, which was added later
> than the original design and evidently with not a lot of thought or
> testing.  The comment for it speculates about whether we could get
> rid of it, so I wonder if our thoughts about this ought to go in that
> direction.

After thinking a bit more I wonder why we need that error check at all.
Why isn't it sufficient to rely on GetNewTransactionId()'s check that
throws an error if a parallelized subtransaction tries to obtain an XID?
I don't see why we'd need to "synchronize transaction state" about
anything that never acquires an XID.

                        regards, tom lane

pgsql-hackers by date:

Previous
From: John Naylor
Date:
Subject: Re: Add pg_basetype() function to obtain a DOMAIN base type
Next
From: zhihuifan1213@163.com
Date:
Subject: Re: Avoid detoast overhead when possible