On Tue, Dec 1, 2020 at 3:54 AM Tom Lane <tgl@sss.pgh.pa.us> wrote:
>
> Yulin PEI <ypeiae@connect.ust.hk> writes:
> > Yes, I agree because (IsNormalProcessingMode() ) means that current process is not in bootstrap mode and postmaster
processwill not build index.
> > So my new modified patch is attached.
>
> This is a good catch, but the proposed fix still seems pretty random
> and unlike how it's done elsewhere. It seems to me that since
> index_build() is relying on plan_create_index_workers() to assess
> parallel safety, that's where to check IsUnderPostmaster. Moreover,
> the existing code in compute_parallel_vacuum_workers (which gets
> this right) associates the IsUnderPostmaster check with the initial
> check on max_parallel_maintenance_workers. So I think that the
> right fix is to adopt the compute_parallel_vacuum_workers coding
> in plan_create_index_workers, and thereby create a model for future
> uses of max_parallel_maintenance_workers to follow.
+1
Regards,
--
Masahiko Sawada
EnterpriseDB: https://www.enterprisedb.com/