Fujii Masao <masao.fujii@oss.nttdata.com> writes:
> On 2025/07/05 2:17, Tom Lane wrote:
>> Oh, good point. But there doesn't seem to be any ill effect from
>> making BootstrapModeMain set BootstrapProcessing a bit earlier.
> Maybe. But I noticed that your patch also moves the line "IgnoreSystemIndexes = true;"
> earlier. Why did you make this change?
It just seemed to go with the bootstrap-mode setting. But your
example shows differently:
> This could cause initdb to fail with a PANIC error when run with ignore_system_indexes=off,
> like this:
> $ initdb -D data -c ignore_system_indexes=off
> ...
> FATAL: could not open relation with OID 2703
> PANIC: cannot abort transaction 1, it was already committed
> So perhaps "IgnoreSystemIndexes = true;" should be placed after GUCs are processed?
Yeah, we should do it like that (and probably also have a comment...)
> Or GUC ignore_system_indexes also should be treated in the same way
> as transaction_timeout?
Yes, I'd say we ought to mark that GUC as don't-accept-in-bootstrap
too. I've not done any research about what other GUCs can break
initdb, but now I'm starting to suspect there are several.
BTW, I now realize that this is only an issue starting from v16.
Before that initdb didn't have a -c switch, so there was not a
way for people to shove random settings into it.
regards, tom lane