On Tue, Jan 29, 2019 at 5:59 AM Amit Kapila <amit.kapil...@gmail.com> wrote: > > On Tue, Jan 29, 2019 at 12:37 AM John Naylor > <john.nay...@2ndquadrant.com> wrote: > > > I think here you need to clear the map if it exists or clear it > > > unconditionally, the earlier one would be better. > > > > Ok, maybe all callers should call it unconditonally, but within the > > function, check "if (FSM_LOCAL_MAP_EXISTS)"? > > > > Sounds sensible. I think we should try to reproduce these failures, > for ex. for pgbench failure, we can try the same test with more > clients. >
I am able to reproduce this by changing pgbench test as below: --- a/src/bin/pgbench/t/001_pgbench_with_server.pl +++ b/src/bin/pgbench/t/001_pgbench_with_server.pl @@ -56,9 +56,9 @@ $node->safe_psql('postgres', 'CREATE UNLOGGED TABLE insert_tbl (id serial primary key); '); pgbench( - '--no-vacuum --client=5 --protocol=prepared --transactions=25', + '--no-vacuum --client=10 --protocol=prepared --transactions=25', 0, - [qr{processed: 125/125}], + [qr{processed: 250/250}], You can find this change in attached patch. Then, I ran the make check in src/bin/pgbench multiple times using test_conc_insert.sh. You can vary the number of times the test should run, if you are not able to reproduce it with this. The attached patch (clear_local_map_if_exists_1.patch) atop the main patch fixes the issue for me. Kindly verify the same. -- With Regards, Amit Kapila. EnterpriseDB: http://www.enterprisedb.com
change_pgbench_test_1.patch
Description: Binary data
for ((i = 1 ; i < 25; i++)) do make check done;
clear_local_map_if_exists_1.patch
Description: Binary data