mirror of
https://github.com/postgres/postgres.git
synced 2025-05-22 00:02:02 -04:00
worker_spi: Fix race condition in newly-added TAP tests
The second portion of the tests had a race condition where it would be possible for the startup of the dynamic workers to fail, in the event where the static workers started before them with the library loading in shared_preload_libraries did not finish to create their respective schemas. The conflict is caused by the fact that the dynamic and static workers used the same IDs, overlapping each other, so, for now, switch the dynamic workers to use different IDs, leading to different schemas created. Reported-by: Andres Freund Discussion: https://postgr.es/m/20230728022332.egqzobhskmlf6ntr@awork3.anarazel.de
This commit is contained in:
parent
6d982e3b3b
commit
b68e356a68
@ -65,9 +65,11 @@ ok( $node->poll_query_until(
|
|||||||
) or die "Timed out while waiting for bgworkers to be launched";
|
) or die "Timed out while waiting for bgworkers to be launched";
|
||||||
|
|
||||||
# Ask worker_spi to launch dynamic bgworkers with the library loaded, then
|
# Ask worker_spi to launch dynamic bgworkers with the library loaded, then
|
||||||
# check their existence.
|
# check their existence. Use IDs that do not overlap with the schemas created
|
||||||
my $worker1_pid = $node->safe_psql('mydb', 'SELECT worker_spi_launch(1);');
|
# by the previous workers.
|
||||||
my $worker2_pid = $node->safe_psql('mydb', 'SELECT worker_spi_launch(2);');
|
my $worker1_pid = $node->safe_psql('mydb', 'SELECT worker_spi_launch(10);');
|
||||||
|
my $worker2_pid = $node->safe_psql('mydb', 'SELECT worker_spi_launch(11);');
|
||||||
|
|
||||||
ok( $node->poll_query_until(
|
ok( $node->poll_query_until(
|
||||||
'mydb',
|
'mydb',
|
||||||
qq[SELECT datname, count(datname) FROM pg_stat_activity
|
qq[SELECT datname, count(datname) FROM pg_stat_activity
|
||||||
|
Loading…
x
Reference in New Issue
Block a user