mirror of
https://git.postgresql.org/git/postgresql.git
synced 2024-10-02 17:51:16 +02:00
worker_spi: Fix test failure with BGWORKER_BYPASS_ALLOWCONN
A bgworker can spawn parallel workers of its own when executing queries,
and if the worker uses BGWORKER_BYPASS_ALLOWCONN while the database it
is connected to does not allow connections, a parallel worker would fail
to startup. In the case of this module, the step checking for the
presence of the schema to create was spawning a worker, failing the last
test introduced by 991bb0f965
.
This issue could be reproduced with debug_parallel_query = 'regress',
for example.
Per buildfarm member crake.
This commit is contained in:
parent
991bb0f965
commit
fd4d93d269
@ -173,6 +173,15 @@ worker_spi_main(Datum main_arg)
|
|||||||
BackgroundWorkerInitializeConnection(worker_spi_database,
|
BackgroundWorkerInitializeConnection(worker_spi_database,
|
||||||
worker_spi_role, flags);
|
worker_spi_role, flags);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Disable parallel query for workers started with BYPASS_ALLOWCONN so as
|
||||||
|
* these don't attempt connections to the database that may not allow
|
||||||
|
* that.
|
||||||
|
*/
|
||||||
|
if (flags & BGWORKER_BYPASS_ALLOWCONN)
|
||||||
|
SetConfigOption("max_parallel_workers_per_gather", "0",
|
||||||
|
PGC_USERSET, PGC_S_OVERRIDE);
|
||||||
|
|
||||||
elog(LOG, "%s initialized with %s.%s",
|
elog(LOG, "%s initialized with %s.%s",
|
||||||
MyBgworkerEntry->bgw_name, table->schema, table->name);
|
MyBgworkerEntry->bgw_name, table->schema, table->name);
|
||||||
initialize_worker_spi(table);
|
initialize_worker_spi(table);
|
||||||
|
Loading…
Reference in New Issue
Block a user