Re: FailedAssertion("pd_idx == pinfo->nparts", File: "execPartition.c", Line: 1689)

From: Andy Fan <zhihui(dot)fan1213(at)gmail(dot)com>
To: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: Robert Haas <robertmhaas(at)gmail(dot)com>, Amit Langote <amitlangote09(at)gmail(dot)com>, Justin Pryzby <pryzby(at)telsasoft(dot)com>, "pgsql-hackers(at)postgresql(dot)org" <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: FailedAssertion("pd_idx == pinfo->nparts", File: "execPartition.c", Line: 1689)
Date: 2020-08-06 15:57:08
Message-ID: CAKU4AWoyeg=K9HXhtubnVwBZnyfVouJw+5LwCS7akyh1BD0-QA@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Thu, Aug 6, 2020 at 10:42 PM Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> wrote:

> Andy Fan <zhihui(dot)fan1213(at)gmail(dot)com> writes:
> > On Thu, Aug 6, 2020 at 12:02 PM Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> wrote:
> >> See my straw-man proposal downthread.
>
> > Thanks for your explanation, I checked it again and it looks a very clean
> > method. The attached is a draft patch based on my understanding. Hope
> > I didn't misunderstand you..
>
> Ah, I was going to play arond with that today, but you beat me to it ;-)
>
>
Very glad to be helpful.

> A few thoughts after a quick look at the patch:
>
> * I had envisioned that there's a custom GUC controlling the lock ID
> used; this would allow blocking different sessions at different points,
> if we ever need that. Also, I'd make the GUC start out as zero which
> means "do nothing", so that merely loading the module has no immediate
> effect.
>
>
I forgot to say I didn't get the point of the guc variable in the last
thread,
now I think it is a smart idea, so added it. In this way, one session
can only be blocked at one place, it may not be an issue in practise.

* Don't really see the point of the before-planning lock.
>
>
yes.. it was removed now.

* Rather than exposing internal declarations from lockfuncs.c, you
> could just write calls to pg_advisory_lock_int8 etc. using
> DirectFunctionCall1.
>
>
Thanks for sharing it, this method looks pretty good.

> * We need some better name than "test_module". I had vaguely thought
> about "delay_execution", but am surely open to better ideas.
>
>
Both names look good to me, delay_execution looks better, it is used in
v2.

Attached is the v2 patch.

--
Best Regards
Andy Fan

Attachment Content-Type Size
v2-0001-delay_execution-used-for-concurrency-case-simulat.patch application/octet-stream 3.5 KB

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Peter Geoghegan 2020-08-06 16:38:56 Re: Amcheck: do rightlink verification with lock coupling
Previous Message Robert Haas 2020-08-06 15:48:51 Re: recovering from "found xmin ... from before relfrozenxid ..."