Disable tests involving ZLIB on Windows for pg_receivewal
authorMichael Paquier <michael@paquier.xyz>
Fri, 16 Jul 2021 04:21:18 +0000 (13:21 +0900)
committerMichael Paquier <michael@paquier.xyz>
Fri, 16 Jul 2021 04:21:18 +0000 (13:21 +0900)
As reported by buildfarm member bowerbird, those tests are unstable on
Windows.  The failure produced there points to a problem with gzflush(),
that fails to sync a file freshly-opened, with a gzFile properly
opened.  While testing this myself with MSVC, I bumped into a different
error where a file could simply not be opened, so this makes me rather
doubtful that testing this area on Windows is a good idea if this
finishes with random concurrency failures.  This requires more
investigation, and keeping this buildfarm member red is not a good thing
in the long-term, so for now this just disables this set of tests on
Windows.

Discussion: https://postgr.es/m/YPDLz2x3o1aX2wRh@paquier.xyz

src/bin/pg_basebackup/t/020_pg_receivewal.pl

index 17fd71a450037823fa0444df21aad855344c5bf0..158f7d176fef5b73843133a93107dae38199d661 100644 (file)
@@ -72,11 +72,13 @@ $primary->command_ok(
 my @partial_wals = glob "$stream_dir/*\.partial";
 is(scalar(@partial_wals), 1, "one partial WAL segment was created");
 
-# Check ZLIB compression if available.
+# Check ZLIB compression if available.  On Windows, some old versions
+# of zlib can cause some instabilities with this test, so disable it
+# for now.
 SKIP:
 {
-   skip "postgres was not built with ZLIB support", 5
-     if (!check_pg_config("#define HAVE_LIBZ 1"));
+   skip "postgres was not built with ZLIB support, or Windows is involved", 5
+     if (!check_pg_config("#define HAVE_LIBZ 1") || $windows_os);
 
    # Generate more WAL worth one completed, compressed, segment.
    $primary->psql('postgres', 'SELECT pg_switch_wal();');