RE: releasing ParallelApplyTxnHash when pa_launch_parallel_worker returns NULL

From: "houzj(dot)fnst(at)fujitsu(dot)com" <houzj(dot)fnst(at)fujitsu(dot)com>
To: Ted Yu <yuzhihong(at)gmail(dot)com>
Cc: "akapila(at)postgresql(dot)org" <akapila(at)postgresql(dot)org>, Postgres hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org>
Subject: RE: releasing ParallelApplyTxnHash when pa_launch_parallel_worker returns NULL
Date: 2023-01-11 02:12:40
Message-ID: OS0PR01MB5716EECFCEDA36DC126826AF94FC9@OS0PR01MB5716.jpnprd01.prod.outlook.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Wednesday, January 11, 2023 1:25 AM Ted Yu <yuzhihong(at)gmail(dot)com> wrote:

> I was reading src/backend/replication/logical/applyparallelworker.c .
> In `pa_allocate_worker`, when pa_launch_parallel_worker returns NULL, I think the `ParallelApplyTxnHash` should be released.

Thanks for reporting.

ParallelApplyTxnHash is used to cache the state of streaming transactions being
applied. There could be multiple streaming transactions being applied in
parallel and their information were already saved in ParallelApplyTxnHash, so
we should not release them just because we don't have a worker available to
handle a new transaction here.

Best Regards,
Hou zj

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Kyotaro Horiguchi 2023-01-11 02:13:43 Re: [PATCH] Add overlaps geometric operators that ignore point overlaps
Previous Message Masahiko Sawada 2023-01-11 02:07:05 Spinlock is missing when updating two_phase of ReplicationSlot