Em qua., 18 de ago. de 2021 às 05:30, Kyotaro Horiguchi < horikyota....@gmail.com> escreveu:
> 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, it's a failure ready to happen, just someone who trusts FreePageBtreeSearch will do the right thing, like not leaving structure with uninitialized fields. > 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. > Quite the contrary, the contract is not being fulfilled. > It might be simpler to turn 'if (btp == NULL)' to an assertion. > Are you sure that no condition will ever occur in production? Assertion is not for mistakes that can happen. regards, Ranier Vilela