From: Tom Lane <tgl@sss.pgh.pa.us>
To: Stephen Frost <sfrost@snowman.net>
Cc: Peter Eisentraut <peter.eisentraut@2ndquadrant.com>
Cc: Magnus Hagander <magnus@hagander.net>
Cc: PostgreSQL WWW <pgsql-www@lists.postgresql.org>
Subject: Re: Bogus reports from coverage.postgresql.org
Date: Tue, 13 Mar 2018 18:30:07 -0400
Message-ID: <6769.1520980207@sss.pgh.pa.us> (raw)
In-Reply-To: <963.1520973051@sss.pgh.pa.us>
References: <d0eec0fd-bf3b-55da-f5de-4fa1c00ce400@2ndquadrant.com>
<CABUevEyydszbZJPF6iyjU45C+Kx4YSCa+KDZJkXNdjiGbE0Ojg@mail.gmail.com>
<30195.1520790475@sss.pgh.pa.us>
<30669.1520791101@sss.pgh.pa.us>
<CABUevEx5Q0YEPrsdUL75BB0z+Ns3m7eX=x3oRwttjHRJ0HeQRw@mail.gmail.com>
<31446.1520791925@sss.pgh.pa.us>
<1594.1520795000@sss.pgh.pa.us>
<2633.1520796277@sss.pgh.pa.us>
<bc1608e2-41ad-4c07-f939-e165944eb163@2ndquadrant.com>
<13148.1520798486@sss.pgh.pa.us>
<20180313170105.GC2416@tamriel.snowman.net>
<963.1520973051@sss.pgh.pa.us>
I wrote:
> So this is basically Fedora breakage ...
> but it means I don't have an easy way to check 1.13 except
> by installing handmade packages, which would probably
> not be definitive proof one way or the other.
I overcame my trepidation after noting that the F26 and F28 lcov.spec
files were nigh identical, and built lcov 1.13 on F26. And it's fine
too:
$ grep bogus coverage/src/backend/optimizer/util/predtest.c.*
coverage/src/backend/optimizer/util/predtest.c.gcov.html:<span class="lineNum"> 492 </span><span class="lineNoCov"> 0 : elog(ERROR, "predicate_classify returned a bogus value");</span>
coverage/src/backend/optimizer/util/predtest.c.gcov.html:<span class="lineNum"> 803 </span><span class="lineNoCov"> 0 : elog(ERROR, "predicate_classify returned a bogus value");</span>
(span class="lineNoCov" is what we want to see here). The underlying
compiler is gcc 7.3.1 in this case.
So it seems we've reduced the possibilities to these: either there's
something weird about Debian's packaging of lcov, or there's a bug in some
underlying perl module on Debian, or there's some incompatibility between
gcc 6.3.0 and lcov 1.13. The last seems the most likely. The gcov text
output looks about the same on 7.3.1:
$ grep bogus src/backend/optimizer/util/predtest.c.gcov
#####: 492: elog(ERROR, "predicate_classify returned a bogus value");
#####: 803: elog(ERROR, "predicate_classify returned a bogus value");
but now that we know that lcov looks directly at the .gcno files,
and possibly also .gcda (I've not examined the source code), I doubt
that we should trust that "the gcov text output looks the same" means
anything compatibility-wise.
regards, tom lane
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Reply to all the recipients using the --to and --cc options:
reply via email
To: pgsql-www@postgresql.org
Cc: tgl@sss.pgh.pa.us, sfrost@snowman.net, peter.eisentraut@2ndquadrant.com, magnus@hagander.net, pgsql-www@lists.postgresql.org
Subject: Re: Bogus reports from coverage.postgresql.org
In-Reply-To: <6769.1520980207@sss.pgh.pa.us>
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox