Olivier PRENANT <ohp@pyrenet.fr> writes:
> Compile works ok however make check fails wile creating pl/pgsql with :
> WARNING: bt_getroot[pg_proc_proname_nsp_index]: fixing root page
> ERROR: bt_fixroot: not valid old root page.
Wow. Is the behavior reproducible? How about if you go ahead and
install, and do a plain "make installcheck" (or even just try a manual
createlang in a fresh database)?
That code thinks it is dealing with a concurrent index root page split,
but there couldn't be any concurrent operations happening during the
create-plpgsql step of a regression test run. Can you step through
_bt_getroot() (it's in src/backend/access/nbtree/nbtpage.c) and figure
out exactly how it's getting confused?
If the behavior is reproducible I'm inclined to suspect a compiler bug;
it's hard to see how _bt_getroot could get so confused otherwise.
regards, tom lane