Re: Instability in parallel regression tests

From: Thomas Munro <thomas(dot)munro(at)enterprisedb(dot)com>
To: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: PostgreSQL Hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org>
Subject: Re: Instability in parallel regression tests
Date: 2018-03-15 01:57:47
Message-ID: CAEepm=1vD0XO9ZzLjcY1CkkKAezLaQga0bBiUvfH59J_EDmrVw@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Thu, Mar 15, 2018 at 12:31 PM, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> wrote:
> guaibasaurus just failed in a way I'd not seen before:
>
> https://buildfarm.postgresql.org/cgi-bin/show_log.pl?nm=guaibasaurus&dt=2018-03-14%2006%3A33%3A01
>
> Inspection of the diffs makes it depressingly obvious what happened:
> the concurrently-executing "alter_table" and "with" scripts both create
> short-lived tables named "test". Given the right timing, those tests
> stomp on each other. This seems to have been there a long time;
> surprising we'd not noticed it before.
>
> Moral: choose names less generic than "test" for globally-visible
> objects. I wonder if there's some way we could check for such
> conflicts automatically?

Ugh. Yeah. Non-temporary table and view names used in more than one .sql file:

$ ( for F in src/test/regress/sql/*.sql ; do perl -ne '/create
*(table|view) ([^ (]+)/i && print "$2\n";' < $F | sort | uniq ; done )
| sort | uniq -d

IF
abc
as
bar
bmscantest
c1
child
collate_dep_test1
collate_dep_test3
collate_dep_test4t
collate_test1
collate_test10
collate_test2
collate_test3
collate_test4
collate_test5
collate_test6
collate_test_fail
collate_test_like
collview1
collview2
collview3
fail_part
foo
foo2
hash_parted
hpart1
hpart2
hpart3
hpart_1
hpart_2
list_parted
list_parted2
list_parted2_def
mcrparted
mcrparted0
mcrparted1
mcrparted2
mcrparted3
mcrparted4
mcrparted5
num_data
num_exp_add
num_exp_div
num_exp_ln
num_exp_log10
num_exp_mul
num_exp_power_10_ln
num_exp_sqrt
num_exp_sub
num_result
p1
p2
parent
part1
part2
part3
part4
part_1
part_2
part_def
part_default
part_null
partitioned
pt1
range_parted
range_parted2
t1
t2
t3
table1
table2
tbl1
test
test1
test_u
tmp
toasttest
tt1
tt2
tt3
tt4
tt5
tt6
tt7
tt8
tx1
unparted
v1
v2

--
Thomas Munro
http://www.enterprisedb.com

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Claudio Freire 2018-03-15 02:21:59 Re: Faster inserts with mostly-monotonically increasing values
Previous Message David Rowley 2018-03-15 01:52:32 Re: ExplainProperty* and units