Re: pgsql: Unbreak the build.

From: Robert Haas <robertmhaas(at)gmail(dot)com>
To: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: Andres Freund <andres(at)anarazel(dot)de>, pgsql-committers <pgsql-committers(at)lists(dot)postgresql(dot)org>
Subject: Re: pgsql: Unbreak the build.
Date: 2022-03-23 16:03:35
Message-ID: CA+Tgmob7TO-9_j24oHpWyhpVGgi=o==NCg0_An42MbOokLM5Fg@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-committers pgsql-hackers

On Wed, Mar 23, 2022 at 11:55 AM Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> wrote:
> Andres Freund <andres(at)anarazel(dot)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

In response to

Responses

Browse pgsql-committers by date

  From Date Subject
Next Message Robert Haas 2022-03-23 17:05:52 Re: pgsql: Unbreak the build.
Previous Message Tom Lane 2022-03-23 15:55:37 Re: pgsql: Unbreak the build.

Browse pgsql-hackers by date

  From Date Subject
Next Message Bharath Rupireddy 2022-03-23 16:06:09 Re: pg_walinspect - a new extension to get raw WAL data and WAL stats
Previous Message Andres Freund 2022-03-23 15:56:17 Re: cpluspluscheck vs ICU