Em sex., 1 de out. de 2021 às 16:24, David Zhang <david.zh...@highgo.ca>
escreveu:

> On 2021-08-18 1:29 a.m., Kyotaro Horiguchi wrote:
> > At Tue, 17 Aug 2021 17:04:44 +0900, Michael Paquier <mich...@paquier.xyz>
> wrote in
> >> On Fri, Jul 02, 2021 at 06:22:56PM -0300, Ranier Vilela wrote:
> >>> Em qui., 1 de jul. de 2021 às 17:20, Mahendra Singh Thalor <
> >>> mahi6...@gmail.com> escreveu:
> >>>> Please can we try to hit this rare condition by any test case. If you
> have
> >>>> any test cases, please share.
> >> Yeah, this needs to be proved.  Are you sure that this change is
> >> actually right?  The bottom of FreePageManagerPutInternal() has
> >> assumptions that a page may not be found during a btree search, with
> >> an index value used.
> > By a quick look, FreePageBtreeSearch is called only from
> > FreePageManagerPutInternal at three points. The first one assumes that
> > result.found == true, at the rest points are passed only when
> > fpm->btree_depth > 0, i.e, fpm->btree_root is non-NULL.
> >
> > In short FreePageBtreeSeach is never called when fpm->btree_root is
> > NULL.  I don't think we need to fill-in other members since the
> > contract of the function looks fine.
> >
> > It might be simpler to turn 'if (btp == NULL)' to an assertion.
> After added the initialization of split_pages in patch
> fix_unitialized_var_index_freepage-v1.patch,
>
> +        result->split_pages = 0;
>
> it actually changed the assertion condition after the second time
> function call of FreePageBtreeSearch.
>              FreePageBtreeSearch(fpm, first_page, &result);
>
>              /*
>               * The act of allocating pages for use in constructing our
> btree
>               * should never cause any page to become more full, so the new
>               * split depth should be no greater than the old one, and
> perhaps
>               * less if we fortuitously allocated a chunk that freed up
> a slot
>               * on the page we need to update.
>               */
>              Assert(result.split_pages <= fpm->btree_recycle_count);
>
For me the assertion remains valid and usable.

regards,
Ranier Vilela

Reply via email to