Re: 回复: Fix segfault while accessing half-initialized hash table in pgstat_shmem.c

From: Steven Niu <niushiji(at)gmail(dot)com>
To: Michael Paquier <michael(at)paquier(dot)xyz>
Cc: Mikhail Kot <mikhail(dot)kot(at)databricks(dot)com>, "pgsql-hackers(at)lists(dot)postgresql(dot)org" <pgsql-hackers(at)lists(dot)postgresql(dot)org>, "to(at)myrrc(dot)dev" <to(at)myrrc(dot)dev>
Subject: Re: 回复: Fix segfault while accessing half-initialized hash table in pgstat_shmem.c
Date: 2025-09-04 07:38:41
Message-ID: MN2PR15MB3021B920A3F445B1DE7D4904A700A@MN2PR15MB3021.namprd15.prod.outlook.com
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

_______________________________________
From: Michael Paquier
Sent: Thursday, September 04, 2025 14:30
To: Steven Niu
Cc: Mikhail Kot; pgsql-hackers(at)lists(dot)postgresql(dot)org; to(at)myrrc(dot)dev
Subject: Re: 回复: Fix segfault while accessing half-initialized hash table in pgstat_shmem.c

On Thu, Sep 04, 2025 at 02:31:34AM +0000, Steven Niu wrote:
> If pgstat_init_entry() errors on OOM, what would it returns to shheader, NULL?
> That would bring trouble to dshash_delete_entry().

Based on the proposal of patch 0002, the code would throw an error
after cleaning up the shared memory state. The generation and
refcount number assigned inside pgstat_init_entry() would not matter
as well because the entry created by dshash_find_or_insert() would be
entirely gone. So I am not sure what's the point you are trying to
make here.
--
Michael

Sorry, I made a mistake. I should say:
"If pgstat_init_entry() errors on OOM, the local variable shheader may be NULL. This would bring trouble to pgstat_acquire_entry_ref() in the line 30 of patch 002".

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Andrei Klychkov 2025-09-04 07:41:50 Re: [PATCH] Fix ALTER SYSTEM empty string bug for GUC_LIST_QUOTE parameters
Previous Message Michael Paquier 2025-09-04 07:33:30 Re: Fix segfault while accessing half-initialized hash table in pgstat_shmem.c