Re: Test to dump and restore objects left behind by regression
Ashutosh Bapat <ashutosh.bapat.oss@gmail.com>
From: Ashutosh Bapat <ashutosh.bapat.oss@gmail.com>
To: Alvaro Herrera <alvherre@alvh.no-ip.org>
Cc: vignesh C <vignesh21@gmail.com>, Michael Paquier <michael@paquier.xyz>, Daniel Gustafsson <daniel@yesql.se>, Tom Lane <tgl@sss.pgh.pa.us>, Peter Eisentraut <peter@eisentraut.org>, PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>
Date: 2025-03-25T10:39:14Z
Lists: pgsql-hackers
Attachments
- 0002-Use-only-one-format-and-make-the-test-run-d-20250324.patch (text/x-patch) patch 0002
- 0001-Test-pg_dump-restore-of-regression-objects-20250324.patch (text/x-patch) patch 0001
- 0003-Do-not-dump-statistics-in-the-file-dumped-f-20250324.patch (text/x-patch) patch 0003
On Mon, Mar 24, 2025 at 5:44 PM Alvaro Herrera <alvherre@alvh.no-ip.org> wrote: > > On 2025-Mar-24, Ashutosh Bapat wrote: > > > One concern I have with directory format is the dumped database is not > > readable. This might make investigating a but identified the test a > > bit more complex. > > Oh, it's readable all right. You just need to use `pg_restore -f-` to > read it. No big deal. > > > So I ran this a few times: > /usr/bin/time make -j8 -Otarget -C /pgsql/build/master check-world -s PROVE_FLAGS="-c -j6" > /dev/null > > commenting out the call to test_regression_dump_restore() to test how > much additional runtime does the new test incur. > > With test: > > 136.95user 116.56system 1:13.23elapsed 346%CPU (0avgtext+0avgdata 250704maxresident)k > 4928inputs+55333008outputs (114major+14784937minor)pagefaults 0swaps > > 138.11user 117.43system 1:15.54elapsed 338%CPU (0avgtext+0avgdata 278592maxresident)k > 48inputs+55333464outputs (80major+14794494minor)pagefaults 0swaps > > 137.05user 113.13system 1:08.19elapsed 366%CPU (0avgtext+0avgdata 279272maxresident)k > 48inputs+55330064outputs (83major+14758028minor)pagefaults 0swaps > > without the new test: > > 135.46user 114.55system 1:14.69elapsed 334%CPU (0avgtext+0avgdata 145372maxresident)k > 32inputs+55155256outputs (105major+14737549minor)pagefaults 0swaps > > 135.48user 114.57system 1:09.60elapsed 359%CPU (0avgtext+0avgdata 148224maxresident)k > 16inputs+55155432outputs (95major+14749502minor)pagefaults 0swaps > > 133.76user 113.26system 1:14.92elapsed 329%CPU (0avgtext+0avgdata 148064maxresident)k > 48inputs+55154952outputs (84major+14749531minor)pagefaults 0swaps > > 134.06user 113.83system 1:16.09elapsed 325%CPU (0avgtext+0avgdata 145940maxresident)k > 32inputs+55155032outputs (83major+14738602minor)pagefaults 0swaps > > The increase in duration here is less than a second. > > > My conclusion with these numbers is that it's not worth hiding this test > in PG_TEST_EXTRA. Thanks for the conclusion. On Mon, Mar 24, 2025 at 3:29 PM Daniel Gustafsson <daniel@yesql.se> wrote: > > > On 24 Mar 2025, at 10:54, Ashutosh Bapat <ashutosh.bapat.oss@gmail.com> wrote: > > > 0003 - same as 0002 in the previous patch set. It excludes statistics > > from comparison, otherwise the test will fail because of bug reported > > at [1]. Ideally we shouldn't commit this patch so as to test > > statistics dump and restore, but in case we need the test to pass till > > the bug is fixed, we should merge this patch to 0001 before > > committing. > > If the reported bug isn't fixed before feature freeze I think we should commit > this regardless as it has clearly shown value by finding bugs (though perhaps > under PG_TEST_EXTRA or in some disconnected till the bug is fixed to limit the > blast-radius in the buildfarm). Combining Alvaro's and Daniel's recommendations, I think we should squash all the three of my patches while committing the test if the bug is not fixed by then. Otherwise we should squash first two patches and commit it. Just attaching the patches again for reference. > If we really wanted to save some total test runtime, > it might be better to write a regress schedule file for > 027_stream_regress.pl which only takes the test that emit useful WAL, > rather than all tests. That's out of scope for this patch, but it seems like an idea worth exploring. -- Best Wishes, Ashutosh Bapat
Commits
-
Hide expensive pg_upgrade test behind PG_TEST_EXTRA
- d185161e4739 18.0 landed
- 37fc1803cc12 19 (unreleased) landed
-
Set log_statement=none in t/002_pg_upgrade.pl
- 64fba9c61787 18.0 landed
-
002_pg_upgrade.pl: Move pg_dump test code for better stability
- 8806e4e8deb1 18.0 landed
-
002_pg_upgrade.pl: rename some variables for clarity
- abe56227b2e2 18.0 landed
-
Verify roundtrip dump/restore of regression database
- 172259afb563 18.0 landed
-
Refactor TAP test code for file comparisons into new routine in Utils.pm
- 169208092f5c 18.0 landed
-
Virtual generated columns
- 83ea6c54025b 18.0 cited
-
Put generated_stored test objects in a schema
- 894be11adfa6 18.0 cited
-
Introduce "builtin" collation provider.
- 2d819a08a1cb 17.0 cited
-
Revert "Improve compression and storage support with inheritance"
- 74563f6b9021 17.0 cited