Re: Relations being opened without any lock whatever
От | Tom Lane |
---|---|
Тема | Re: Relations being opened without any lock whatever |
Дата | |
Msg-id | 21004.1538400558@sss.pgh.pa.us обсуждение исходный текст |
Ответ на | Re: Relations being opened without any lock whatever (Amit Langote <Langote_Amit_f8@lab.ntt.co.jp>) |
Список | pgsql-hackers |
Amit Langote <Langote_Amit_f8@lab.ntt.co.jp> writes: > On 2018/10/01 4:20, Tom Lane wrote: >> Running the regression tests with the patch I showed in >> https://www.postgresql.org/message-id/16565.1538327894@sss.pgh.pa.us > Maybe you've noticed but the relation_open calls coming from bootstrap.c > all pass NoLock which trigger the WARNING: Yeah, I'd missed noticing that at the time I posted that patch, but I sure noticed after changing the WARNING to an Assert ;-) > Do we need to do something about that, like teaching boot_openrel() and > gettype() in bootstrap.c to pass AccessShareLock instead of NoLock? No, bootstrap mode has no need for locking. I think the right fix is just to skip the check: + /* + * If we didn't get the lock ourselves, assert that caller holds one, + * except in bootstrap mode where no locks are used. + */ + Assert(lockmode != NoLock || + IsBootstrapProcessingMode() || + CheckRelationLockedByMe(r, AccessShareLock, true)); It's possible that at some point we'd decide to make bootstrap mode do locking the same as normal mode, but that's not a change I want to make as part of this patch. regards, tom lane
В списке pgsql-hackers по дате отправления: