Re: pg15.3: dereference null *plan in CachedPlanIsSimplyValid/plpgsql

Поиск
Список
Период
Сортировка
От Tom Lane
Тема Re: pg15.3: dereference null *plan in CachedPlanIsSimplyValid/plpgsql
Дата
Msg-id 584104.1689868532@sss.pgh.pa.us
обсуждение исходный текст
Ответ на pg15.3: dereference null *plan in CachedPlanIsSimplyValid/plpgsql  (Justin Pryzby <pryzby@telsasoft.com>)
Список pgsql-hackers
Justin Pryzby <pryzby@telsasoft.com> writes:
> A production instance crashed like so.

Oh, interesting.  Apparently we got past the "Has cache invalidation fired
on this plan?" check:

    if (!plansource->is_valid || plan != plansource->gplan || !plan->is_valid)
        return false;

because "plan" and "plansource->gplan" were *both* null, which is
a case the code wasn't expecting.  plansource.c seems to be paranoid
about gplan possibly being null everywhere else but here :-(

> Note that the prior query seems to have timed out in the same / similar plpgsql
> statement:

Hm.  Perhaps that helps explain how we got into this state.  It must
be some weird race condition, given the lack of prior reports.
Anyway, adding a check for plan not being null seems like the
obvious fix.

            regards, tom lane



В списке pgsql-hackers по дате отправления:

Предыдущее
От: Amit Langote
Дата:
Сообщение: Re: remaining sql/json patches
Следующее
От: Alvaro Herrera
Дата:
Сообщение: Re: remaining sql/json patches