On Mon, Nov 18, 2019 at 6:30 PM Pavel Stehule <pavel.stehule@gmail.com> wrote: >> >> I'll send this test today > > > here is it >
Thanks for adding the test. Few comments: This function is same as in test/recovery/t/013_crash_restart.pl, we can add to a common file and use in both places: +# Pump until string is matched, or timeout occurs +sub pump_until +{ + my ($proc, $stream, $untl) = @_; + $proc->pump_nb(); + while (1) + { + last if $$stream =~ /$untl/; + if ($psql_timeout->is_expired) + {
yes, I know - probably it can be moved to testlib.pm. Unfortunately it is perl, and I am not able to this correctly. More it use global object - timer
This can be Tests drop database with force option:
done
+# +# Tests killing session connected to dropped database +#
This can be changed to check database foobar1 does not exist.
done
+# and there is not a database with this name +is($node->safe_psql('postgres', qq[SELECT EXISTS(SELECT * FROM pg_database WHERE datname='foobar1');]), + 'f', 'database foobar1 was removed');
This can be changed to check the connections on foobar1 database + +# and it is connected to foobar1 database +is($node->safe_psql('postgres', qq[SELECT pid FROM pg_stat_activity WHERE datname='foobar1' AND pid = $pid;]), + $pid, 'database foobar1 is used');
done
This can be changed to restart psql as the previous connection will be terminated by previous drop database. +
done
new patch attached
Regards
Pavel
+# restart psql processes, now that the crash cycle finished +($killme_stdin, $killme_stdout, $killme_stderr) = ('', '', ''); +$killme->run();