Re: Avoid overflow with simplehash - Mailing list pgsql-hackers

From Ranier Vilela
Subject Re: Avoid overflow with simplehash
Date
Msg-id CAEudQArof6qMDy5xLfdi9u1ZcKuJ=-kqt6nR97h5qBoj6LHZFw@mail.gmail.com
Whole thread Raw
In response to Re: Avoid overflow with simplehash  (Daniel Gustafsson <daniel@yesql.se>)
List pgsql-hackers
Em qui., 6 de jul. de 2023 às 12:00, Daniel Gustafsson <daniel@yesql.se> escreveu:
> On 6 Jul 2023, at 16:42, Ranier Vilela <ranier.vf@gmail.com> wrote:
> Em qui., 6 de jul. de 2023 às 11:37, Daniel Gustafsson <daniel@yesql.se <mailto:daniel@yesql.se>> escreveu:

> #define SH_MAX_SIZE (((uint64) PG_UINT32_MAX) + 1)
> This is Assert, that is, in production this test is not done.

Correct, which implies that it's a test for something which is deemed highly
unlikely to happen in production.
 Highly improbable does not mean impossible, or that it will never happen.


> If the empty element is not found, startelem has PG_UINT64_MAX value,
> which do not fit in uint32.

Can you show an example where the hash isn't grown automatically to accomodate
this such that the assertion is tripped?
A demo won't change the fact that the function can fail, even if it isn't currently failing.
As a precaution to avoid future bugs, I think it's necessary to apply the patch to increase the robustness of the function.

regards,
Ranier Vilela

pgsql-hackers by date:

Previous
From: Karina Litskevich
Date:
Subject: Re: Avoid unncessary always true test (src/backend/storage/buffer/bufmgr.c)
Next
From: Önder Kalacı
Date:
Subject: Re: [Patch] Use *other* indexes on the subscriber when REPLICA IDENTITY is FULL