pgsql: stats regression test's wait_for_stats() must check timestamp to

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: pgsql-committers(at)postgresql(dot)org
Subject: pgsql: stats regression test's wait_for_stats() must check timestamp to
Date: 2017-05-15 03:33:26
Message-ID: E1dA6lC-00022r-4G@gemulon.postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-committers

stats regression test's wait_for_stats() must check timestamp too.

pg_stat_get_snapshot_timestamp() returns the timestamp seen in the "global"
stats file. Because pgstat_write_statsfiles() writes per-DB stats files
before the global file (or at least before renaming it into place), there
is a window where the test backend can see all the stats updates that
wait_for_stats() was checking for (all of which come from the per-DB file)
but also see the same global stats file it had seen at the start of the
test script. This results in a failure in only the "snapshot_newer" query,
as reported by a couple of buildfarm members recently.

I suspect that this ought to be back-patched. Commit 4e37b3e15 has
evidently increased the probability of this window getting hit, but
it's not apparent why it could not have been hit before. I'll refrain
for the moment though.

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/eda4ef81511ea62e49f5ea9edb8fbfdd529dd959

Modified Files
--------------
src/test/regress/expected/stats.out | 9 ++++++++-
src/test/regress/sql/stats.sql | 9 ++++++++-
2 files changed, 16 insertions(+), 2 deletions(-)

Browse pgsql-committers by date

  From Date Subject
Next Message Magnus Hagander 2017-05-15 09:08:13 pgsql: Fix typo in comment
Previous Message Bruce Momjian 2017-05-15 03:15:52 pgsql: doc: update the "current as of" date in the PG 10 release notes