On Wed, Mar 23, 2022 at 11:55 AM Tom Lane <t...@sss.pgh.pa.us> wrote: > Andres Freund <and...@anarazel.de> writes: > > And windows still fails tests after this commit: > > https://cirrus-ci.com/task/6424123323711488?logs=test_bin#L22 > > Yeah. drongo is reporting > > # Running: pg_basebackup --no-sync -cfast -D > C:\\prog\\bf\\root\\HEAD\\pgsql.build\\src\\bin\\pg_basebackup\\tmp_check\\tmp_test_vv4i/tarbackup > -Ft > Assertion failed: 0, file > c:\\prog\\bf\\root\\HEAD\\pgsql.build\\src\\bin\\pg_basebackup\\walmethods.c, > line 953 > not ok 82 - tar format > > # Failed test 'tar format' > # at t/010_pg_basebackup.pl line 261. > > which is pointing at > > /* not reachable */ > Assert(false); > > so it's not so unreachable after all.
I'm looking into this now, but that's not the same Assert(false). The one Andres is talking about is at the end of get_bc_algorithm_name(). This one is in tar_open_for_write(). AFAIK, the first of these is actually unreachable or at least I see no evidence that we are reaching it. The second is clearly reachable because we're failing the assertion. I thought that might be because I didn't test --without-zlib locally, and indeed in testing that just now, I found another unused variable warning which I need to fix. But, that doesn't account for this failure, because when I correct the problem with the unused variable, all the tests pass. I think what likely happened here is that in reorganizing some of the logic in basebackup.c, I caused COMPRESSION_GZIP to get passed to tar_open_for_write() even when HAVE_LIBZ is not defined. But I don't yet understand why it only happens on Windows. I am suspicious that the problem is in basebackup.c's main() function, but I haven't pinpointed it yet. -- Robert Haas EDB: http://www.enterprisedb.com