Thread: [HACKERS] Failure in commit_ts tap tests

[HACKERS] Failure in commit_ts tap tests

From
Pavan Deolasee
Date:
I see a consistent failure while running "make -C src/test/modules/commit_ts/ check" on a server compiled with --enable-tap-tests. This is on the master branch (193a7d791)

1..16
ok 1 - getting ts of InvalidTransactionId reports error
ok 2 - expected error from InvalidTransactionId
ok 3 - getting ts of BootstrapTransactionId succeeds
ok 4 - timestamp of BootstrapTransactionId is null
ok 5 - getting ts of FrozenTransactionId succeeds
ok 6 - timestamp of FrozenTransactionId is null
ok 7 - committs for FirstNormalTransactionId is null
not ok 8 - commit timestamp recorded

Upon investigating logs, I see that perl complains about using != operator on non-numeric argument. 


Argument "" isn't numeric in numeric ne (!=) at t/004_restart.pl line 57.
Argument "Fri Jan 20 07:59:52.322811 2017 PST" isn't numeric in numeric ne (!=) at t/004_restart.pl line 57.
not ok 8 - commit timestamp recorded



Changing the operator to "ne" works for me (patch attached). But I wonder if this is something specific to my system? Am I using a wrong/stale version on OSX Sierra? 
I'm surprised nobody reported this problem earlier.

$ perl -v

This is perl 5, version 18, subversion 2 (v5.18.2) built for darwin-thread-multi-2level
(with 2 registered patches, see perl -V for more detail)

Copyright 1987-2013, Larry Wall

Thanks,
Pavan

--
 Pavan Deolasee                   http://www.2ndQuadrant.com/
 PostgreSQL Development, 24x7 Support, Training & Services
Attachment

Re: [HACKERS] Failure in commit_ts tap tests

From
Tom Lane
Date:
Pavan Deolasee <pavan.deolasee@gmail.com> writes:
> I see a consistent failure while running "make -C
> src/test/modules/commit_ts/ check" on a server compiled with
> --enable-tap-tests. This is on the master branch (193a7d791)
> ...
> Changing the operator to "ne" works for me (patch attached). But I wonder
> if this is something specific to my system? Am I using a wrong/stale
> version on OSX Sierra? I'm surprised nobody reported this problem earlier.

That's just weird.  I agree this patch is correct (and I see Alvaro
just pushed it), but why isn't the code failing elsewhere?  I see
no such warning on my RHEL6 box (perl 5.10.1) nor on my OSX Sierra
laptop (perl 5.18.2, should be same as yours).  Do you have any
nondefault Perl modules installed?
        regards, tom lane



Re: [HACKERS] Failure in commit_ts tap tests

From
Tom Lane
Date:
Pavan Deolasee <pavan.deolasee@gmail.com> writes:
> I'm surprised nobody reported this problem earlier.

It looks like at least part of the answer is that the buildfarm isn't
running this test.  AFAICS, it runs "make installcheck" not
"make check" in src/test/modules.  I don't know whether any of the
critters would have duplicated the failure, but they weren't trying.

I don't know if any of the other src/test/modules/ subdirectories
test more in make check mode than make installcheck mode, but if
they do, we probably oughta change the buildfarm script.
        regards, tom lane



Re: [HACKERS] Failure in commit_ts tap tests

From
Alvaro Herrera
Date:
Pavan Deolasee wrote:

> Argument "" isn't numeric in numeric ne (!=) at t/004_restart.pl line 57.
> Argument "Fri Jan 20 07:59:52.322811 2017 PST" isn't numeric in numeric ne (!=) at t/004_restart.pl line 57.
> not ok 8 - commit timestamp recorded
> 
> Changing the operator to "ne" works for me (patch attached). But I wonder
> if this is something specific to my system? Am I using a wrong/stale
> version on OSX Sierra? I'm surprised nobody reported this problem earlier.

Hmm.  The test works fine for me, even if it should be obvious that the
use of the != operator is wrong.  I don't understand why it causes a
failure only for you.

> $ perl -v

> This is perl 5, version 18, subversion 2 (v5.18.2) built for
> darwin-thread-multi-2level
> (with 2 registered patches, see perl -V for more detail)

Mine says:

This is perl 5, version 20, subversion 2 (v5.20.2) built for x86_64-linux-gnu-thread-multi
(with 92 registered patches, see perl -V for more detail)

-- 
Álvaro Herrera                https://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services



Re: [HACKERS] Failure in commit_ts tap tests

From
Tom Lane
Date:
Alvaro Herrera <alvherre@2ndquadrant.com> writes:
> Hmm.  The test works fine for me, even if it should be obvious that the
> use of the != operator is wrong.  I don't understand why it causes a
> failure only for you.

Even more interesting, the warning appears as-expected in stripped down
test cases, eg

$ perl -e 'use warnings; use Test::More; ok("Foo" ne "bar", "ok");'
ok 1 - ok
# Tests were run but no plan was declared and done_testing() was not seen.

$ perl -e 'use warnings; use Test::More; ok("Foo" != "bar", "ok");'
Argument "bar" isn't numeric in numeric ne (!=) at -e line 1.
Argument "Foo" isn't numeric in numeric ne (!=) at -e line 1.
not ok 1 - ok
#   Failed test 'ok'
#   at -e line 1.
# Tests were run but no plan was declared and done_testing() was not seen.

I really don't understand why this complains but the same perl version
is happy with (the previous coding in) 004_restart.pl.  Perl bug?
        regards, tom lane



Re: [HACKERS] Failure in commit_ts tap tests

From
Pavan Deolasee
Date:

On Sat, Jan 21, 2017 at 12:45 AM, Tom Lane <tgl@sss.pgh.pa.us> wrote:

Even more interesting, the warning appears as-expected in stripped down
test cases, eg

$ perl -e 'use warnings; use Test::More; ok("Foo" ne "bar", "ok");'
ok 1 - ok
# Tests were run but no plan was declared and done_testing() was not seen.

$ perl -e 'use warnings; use Test::More; ok("Foo" != "bar", "ok");'
Argument "bar" isn't numeric in numeric ne (!=) at -e line 1.
Argument "Foo" isn't numeric in numeric ne (!=) at -e line 1.
not ok 1 - ok
#   Failed test 'ok'
#   at -e line 1.
# Tests were run but no plan was declared and done_testing() was not seen.

I really don't understand why this complains but the same perl version
is happy with (the previous coding in) 004_restart.pl.  Perl bug?


I think I understand why it's only affecting me and not others. I've PGDATESTYLE set to "Postgres, MDY" in my bashrc and that formats the commit timestamp as "Fri Jan 20 07:59:52.322811 2017 PST". If I unset that, the result comes in a format such as  "2017-01-20 21:31:47.766371-08". Looks like perl doesn't throw an error if it can parse the leading part of the string as a numeric. It still throws a warning, but the test passes.

Thanks,
Pavan
 
--
 Pavan Deolasee                   http://www.2ndQuadrant.com/
 PostgreSQL Development, 24x7 Support, Training & Services

Re: [HACKERS] Failure in commit_ts tap tests

From
Tom Lane
Date:
Pavan Deolasee <pavan.deolasee@gmail.com> writes:
> I think I understand why it's only affecting me and not others.
> I've PGDATESTYLE set to "Postgres, MDY" in my bashrc and that formats the
> commit timestamp as "Fri Jan 20 07:59:52.322811 2017 PST". If I unset that,
> the result comes in a format such as  "2017-01-20 21:31:47.766371-08".
> Looks like perl doesn't throw an error if it can parse the leading part of
> the string as a numeric. It still throws a warning, but the test passes.

Hm, but what of the "null" value?  Also, I get

$ perl -e 'use warnings; use Test::More; ok("2017-01-01" != "null", "ok");'
Argument "null" isn't numeric in numeric ne (!=) at -e line 1.
Argument "2017-01-01" isn't numeric in numeric ne (!=) at -e line 1.
ok 1 - ok
# Tests were run but no plan was declared and done_testing() was not seen.
        regards, tom lane



Re: [HACKERS] Failure in commit_ts tap tests

From
Pavan Deolasee
Date:


On Sat, Jan 21, 2017 at 9:09 PM, Tom Lane <tgl@sss.pgh.pa.us> wrote:


Hm, but what of the "null" value?  Also, I get

$ perl -e 'use warnings; use Test::More; ok("2017-01-01" != "null", "ok");'
Argument "null" isn't numeric in numeric ne (!=) at -e line 1.
Argument "2017-01-01" isn't numeric in numeric ne (!=) at -e line 1.
ok 1 - ok

It declares the test as "passed", right? I am not saying that's a correct behaviour, but that's why we didn't catch the problem earlier. May be its a bug in the Test module?

If I add a non-numeric prefix to LHS string, test fails.

$ perl -e 'use warnings; use Test::More; ok("Fri 2017-46" != "null", "ok");'
Argument "null" isn't numeric in numeric ne (!=) at -e line 1.
Argument "Fri 2017-46" isn't numeric in numeric ne (!=) at -e line 1.
not ok 1 - ok
#   Failed test 'ok'
#   at -e line 1.
# Tests were run but no plan was declared and done_testing() was not seen.

Thanks,
Pavan

--
 Pavan Deolasee                   http://www.2ndQuadrant.com/
 PostgreSQL Development, 24x7 Support, Training & Services

Re: [HACKERS] Failure in commit_ts tap tests

From
Tom Lane
Date:
Pavan Deolasee <pavan.deolasee@gmail.com> writes:
> On Sat, Jan 21, 2017 at 9:09 PM, Tom Lane <tgl@sss.pgh.pa.us> wrote:
>> Hm, but what of the "null" value?  Also, I get
>> 
>> $ perl -e 'use warnings; use Test::More; ok("2017-01-01" != "null", "ok");'
>> Argument "null" isn't numeric in numeric ne (!=) at -e line 1.
>> Argument "2017-01-01" isn't numeric in numeric ne (!=) at -e line 1.
>> ok 1 - ok

> It declares the test as "passed", right?

Oh!  So it does.  That is one darn weird behavior of the != operator.

> I am not saying that's a correct
> behaviour, but that's why we didn't catch the problem earlier.

Check.  Mystery solved.

There's still the point that we're not actually exercising this script
in the buildfarm ...
        regards, tom lane



Re: [HACKERS] Failure in commit_ts tap tests

From
Pavan Deolasee
Date:


On Sat, Jan 21, 2017 at 9:39 PM, Tom Lane <tgl@sss.pgh.pa.us> wrote:
Pavan Deolasee <pavan.deolasee@gmail.com> writes:
> On Sat, Jan 21, 2017 at 9:09 PM, Tom Lane <tgl@sss.pgh.pa.us> wrote:
>> Hm, but what of the "null" value?  Also, I get
>>
>> $ perl -e 'use warnings; use Test::More; ok("2017-01-01" != "null", "ok");'
>> Argument "null" isn't numeric in numeric ne (!=) at -e line 1.
>> Argument "2017-01-01" isn't numeric in numeric ne (!=) at -e line 1.
>> ok 1 - ok

> It declares the test as "passed", right?

Oh!  So it does.  That is one darn weird behavior of the != operator.


Indeed! See this:

# first numeric matches, doesn't check beyond that
$ perl -e 'if ("2017-23" != "2017-24") {print "Not equal\n"} else {print "Equal\n"}'
Equal

# first numeric doesn't match, operators works ok
$ perl -e 'if ("2017-23" != "2018-24") {print "Not equal\n"} else {print "Equal\n"}'
Not equal

# comparison of numeric with non-numeric, works ok
$ perl -e 'if ("2017-23" != "Foo") {print "Not equal\n"} else {print "Equal\n"}'
Not equal

# numeric on RHS, works ok
$ perl -e 'if ("Foo" != "2018-24") {print "Not equal\n"} else {print "Equal\n"}'
Not equal

These tests show that the operator returns the correct result it finds a numeric value at the start of the string, either on LHS or RHS. Also, it will only compare the numeric values until first non-numeric character is found.

# no numeric on either side
$ perl -e 'if ("Fri 2017-23" != "Fri 2017-23") {print "Not equal\n"} else {print "Equal\n"}'
Equal

# no numeric on either side, arbitrary strings declared as equal
$ perl -e 'if ("Fri 2017-23" != "Foo") {print "Not equal\n"} else {print "Equal\n"}'
Equal

These two tests show why we saw no failure earlier. If neither LHS or RHS string has a starting numeric value, the operator declares the arguments as equal, irrespective of their values. I tested the same with == operator and that also exhibits the same behaviour. Weird and I wonder how it's not a source of constant bugs in perl code (I don't use perl a lot, so may be those who do are used to either turning warnings on or know this already.
 


There's still the point that we're not actually exercising this script
in the buildfarm ...

Yes indeed.

Thanks,
Pavan

--
 Pavan Deolasee                   http://www.2ndQuadrant.com/
 PostgreSQL Development, 24x7 Support, Training & Services

Re: [HACKERS] Failure in commit_ts tap tests

From
David Bowen
Date:
If the intent of the test is to compare strings, you should be using ne not !=.

David Bowen

On Sat, Jan 21, 2017 at 10:38 AM, Pavan Deolasee <pavan.deolasee@gmail.com> wrote:


On Sat, Jan 21, 2017 at 9:39 PM, Tom Lane <tgl@sss.pgh.pa.us> wrote:
Pavan Deolasee <pavan.deolasee@gmail.com> writes:
> On Sat, Jan 21, 2017 at 9:09 PM, Tom Lane <tgl@sss.pgh.pa.us> wrote:
>> Hm, but what of the "null" value?  Also, I get
>>
>> $ perl -e 'use warnings; use Test::More; ok("2017-01-01" != "null", "ok");'
>> Argument "null" isn't numeric in numeric ne (!=) at -e line 1.
>> Argument "2017-01-01" isn't numeric in numeric ne (!=) at -e line 1.
>> ok 1 - ok

> It declares the test as "passed", right?

Oh!  So it does.  That is one darn weird behavior of the != operator.


Indeed! See this:

# first numeric matches, doesn't check beyond that
$ perl -e 'if ("2017-23" != "2017-24") {print "Not equal\n"} else {print "Equal\n"}'
Equal

# first numeric doesn't match, operators works ok
$ perl -e 'if ("2017-23" != "2018-24") {print "Not equal\n"} else {print "Equal\n"}'
Not equal

# comparison of numeric with non-numeric, works ok
$ perl -e 'if ("2017-23" != "Foo") {print "Not equal\n"} else {print "Equal\n"}'
Not equal

# numeric on RHS, works ok
$ perl -e 'if ("Foo" != "2018-24") {print "Not equal\n"} else {print "Equal\n"}'
Not equal

These tests show that the operator returns the correct result it finds a numeric value at the start of the string, either on LHS or RHS. Also, it will only compare the numeric values until first non-numeric character is found.

# no numeric on either side
$ perl -e 'if ("Fri 2017-23" != "Fri 2017-23") {print "Not equal\n"} else {print "Equal\n"}'
Equal

# no numeric on either side, arbitrary strings declared as equal
$ perl -e 'if ("Fri 2017-23" != "Foo") {print "Not equal\n"} else {print "Equal\n"}'
Equal

These two tests show why we saw no failure earlier. If neither LHS or RHS string has a starting numeric value, the operator declares the arguments as equal, irrespective of their values. I tested the same with == operator and that also exhibits the same behaviour. Weird and I wonder how it's not a source of constant bugs in perl code (I don't use perl a lot, so may be those who do are used to either turning warnings on or know this already.
 


There's still the point that we're not actually exercising this script
in the buildfarm ...

Yes indeed.

Thanks,
Pavan

--
 Pavan Deolasee                   http://www.2ndQuadrant.com/
 PostgreSQL Development, 24x7 Support, Training & Services

Re: [HACKERS] Failure in commit_ts tap tests

From
Tom Lane
Date:
David Bowen <dmb0317@gmail.com> writes:
> If the intent of the test is to compare strings, you should be using ne not
> !=.

Sure.  We were just confused as to how it had ever appeared to work.
        regards, tom lane



Re: [HACKERS] Failure in commit_ts tap tests

From
Andrew Dunstan
Date:

On 01/20/2017 01:22 PM, Tom Lane wrote:
> Pavan Deolasee <pavan.deolasee@gmail.com> writes:
>> I'm surprised nobody reported this problem earlier.
> It looks like at least part of the answer is that the buildfarm isn't
> running this test.  AFAICS, it runs "make installcheck" not
> "make check" in src/test/modules.  I don't know whether any of the
> critters would have duplicated the failure, but they weren't trying.
>
> I don't know if any of the other src/test/modules/ subdirectories
> test more in make check mode than make installcheck mode, but if
> they do, we probably oughta change the buildfarm script.
>
>             


Is there a reason why these tests aren't run under installcheck? If
there is a justification I can look at it, or we should decide on one
canonical mode of running the tests and stick to that.

cheers

andrew

-- 
Andrew Dunstan                https://www.2ndQuadrant.com
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services




Re: [HACKERS] Failure in commit_ts tap tests

From
Tom Lane
Date:
Andrew Dunstan <andrew.dunstan@2ndquadrant.com> writes:
> On 01/20/2017 01:22 PM, Tom Lane wrote:
>> It looks like at least part of the answer is that the buildfarm isn't
>> running this test.  AFAICS, it runs "make installcheck" not
>> "make check" in src/test/modules.  I don't know whether any of the
>> critters would have duplicated the failure, but they weren't trying.

> Is there a reason why these tests aren't run under installcheck? If
> there is a justification I can look at it, or we should decide on one
> canonical mode of running the tests and stick to that.

Well, for at least some of them, "make check" is necessary because they
need to change postmaster parameters or load special shared libraries.
        regards, tom lane



Re: [HACKERS] Failure in commit_ts tap tests

From
Andrew Dunstan
Date:

On 01/23/2017 09:03 AM, Tom Lane wrote:
> Andrew Dunstan <andrew.dunstan@2ndquadrant.com> writes:
>> On 01/20/2017 01:22 PM, Tom Lane wrote:
>>> It looks like at least part of the answer is that the buildfarm isn't
>>> running this test.  AFAICS, it runs "make installcheck" not
>>> "make check" in src/test/modules.  I don't know whether any of the
>>> critters would have duplicated the failure, but they weren't trying.
>> Is there a reason why these tests aren't run under installcheck? If
>> there is a justification I can look at it, or we should decide on one
>> canonical mode of running the tests and stick to that.
> Well, for at least some of them, "make check" is necessary because they
> need to change postmaster parameters or load special shared libraries.
>
>             

OK, so should we just change "make installcheck" to "make check"?

cheers

andrew


-- 
Andrew Dunstan                https://www.2ndQuadrant.com
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services




Re: [HACKERS] Failure in commit_ts tap tests

From
Tom Lane
Date:
Andrew Dunstan <andrew.dunstan@2ndquadrant.com> writes:
> On 01/23/2017 09:03 AM, Tom Lane wrote:
>> Andrew Dunstan <andrew.dunstan@2ndquadrant.com> writes:
>>> On 01/20/2017 01:22 PM, Tom Lane wrote:
>>>> It looks like at least part of the answer is that the buildfarm isn't
>>>> running this test.  AFAICS, it runs "make installcheck" not
>>>> "make check" in src/test/modules.

> OK, so should we just change "make installcheck" to "make check"?

I'm in favor (just for src/test/modules, to be clear).
        regards, tom lane



Re: [HACKERS] Failure in commit_ts tap tests

From
Stephen Frost
Date:
Tom, Andrew,

* Tom Lane (tgl@sss.pgh.pa.us) wrote:
> Andrew Dunstan <andrew.dunstan@2ndquadrant.com> writes:
> > On 01/20/2017 01:22 PM, Tom Lane wrote:
> >> It looks like at least part of the answer is that the buildfarm isn't
> >> running this test.  AFAICS, it runs "make installcheck" not
> >> "make check" in src/test/modules.  I don't know whether any of the
> >> critters would have duplicated the failure, but they weren't trying.
>
> > Is there a reason why these tests aren't run under installcheck? If
> > there is a justification I can look at it, or we should decide on one
> > canonical mode of running the tests and stick to that.
>
> Well, for at least some of them, "make check" is necessary because they
> need to change postmaster parameters or load special shared libraries.

Yes, having to fight with the buildfarm to have something like pgaudit
properly tested by the build animals is extremely frustrating.

The TAP tests do seem to allow that sort of thing these days, though I
haven't peronsally tried to create any which load special shared
libraries yet.  I also haven't looked to see how many animals actually
run them, though hopefully we can encourage more people to do so as we
improve our testing with them.

Thanks!

Stephen

Re: [HACKERS] Failure in commit_ts tap tests

From
Andrew Dunstan
Date:

On 01/23/2017 09:22 AM, Tom Lane wrote:
> Andrew Dunstan <andrew.dunstan@2ndquadrant.com> writes:
>> On 01/23/2017 09:03 AM, Tom Lane wrote:
>>> Andrew Dunstan <andrew.dunstan@2ndquadrant.com> writes:
>>>> On 01/20/2017 01:22 PM, Tom Lane wrote:
>>>>> It looks like at least part of the answer is that the buildfarm isn't
>>>>> running this test.  AFAICS, it runs "make installcheck" not
>>>>> "make check" in src/test/modules.
>> OK, so should we just change "make installcheck" to "make check"?
> I'm in favor (just for src/test/modules, to be clear).
>
>             



Yes. There will be some consequent buildfarm code cleanup, but this will
test shortly on crake.

cheers

andrew

-- 
Andrew Dunstan                https://www.2ndQuadrant.com
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services




Re: [HACKERS] Failure in commit_ts tap tests

From
Andrew Dunstan
Date:

On 01/24/2017 03:18 AM, Andrew Dunstan wrote:
>
> On 01/23/2017 09:22 AM, Tom Lane wrote:
>> Andrew Dunstan <andrew.dunstan@2ndquadrant.com> writes:
>>> On 01/23/2017 09:03 AM, Tom Lane wrote:
>>>> Andrew Dunstan <andrew.dunstan@2ndquadrant.com> writes:
>>>>> On 01/20/2017 01:22 PM, Tom Lane wrote:
>>>>>> It looks like at least part of the answer is that the buildfarm isn't
>>>>>> running this test.  AFAICS, it runs "make installcheck" not
>>>>>> "make check" in src/test/modules.
>>> OK, so should we just change "make installcheck" to "make check"?
>> I'm in favor (just for src/test/modules, to be clear).
>>
>>             
>
>
> Yes. There will be some consequent buildfarm code cleanup, but this will
> test shortly on crake.
>

Well, that crashed. The DDL deparse comment test should not assume that
contrib_regression exists. Possibly it should create it if it doesn't
exist. The buildfarm mostly runs with USE_DB_MODULE=1 so we don't
constantly overwrite the same db.

cheers

andrew

-- 
Andrew Dunstan                https://www.2ndQuadrant.com
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services




Re: [HACKERS] Failure in commit_ts tap tests

From
Alvaro Herrera
Date:
Andrew Dunstan wrote:

> Well, that crashed. The DDL deparse comment test should not assume that
> contrib_regression exists. Possibly it should create it if it doesn't
> exist. The buildfarm mostly runs with USE_DB_MODULE=1 so we don't
> constantly overwrite the same db.

Maybe we can drop that line and put it back once we get COMMENT ON
CURRENT_DATABASE.

-- 
Álvaro Herrera                https://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services



Re: [HACKERS] Failure in commit_ts tap tests

From
Andrew Dunstan
Date:

On 01/24/2017 05:17 AM, Alvaro Herrera wrote:
> Andrew Dunstan wrote:
>
>> Well, that crashed. The DDL deparse comment test should not assume that
>> contrib_regression exists. Possibly it should create it if it doesn't
>> exist. The buildfarm mostly runs with USE_DB_MODULE=1 so we don't
>> constantly overwrite the same db.
> Maybe we can drop that line and put it back once we get COMMENT ON
> CURRENT_DATABASE.
>

Works for me.

cheers

andrew

-- 
Andrew Dunstan                https://www.2ndQuadrant.com
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services




Re: [HACKERS] Failure in commit_ts tap tests

From
Tom Lane
Date:
Andrew Dunstan <andrew.dunstan@2ndquadrant.com> writes:
> On 01/24/2017 05:17 AM, Alvaro Herrera wrote:
>> Maybe we can drop that line and put it back once we get COMMENT ON
>> CURRENT_DATABASE.

> Works for me.

If that's enough to get the "make check" cases passing in the buildfarm,
then +1.
        regards, tom lane



Re: [HACKERS] Failure in commit_ts tap tests

From
Alvaro Herrera
Date:
Tom Lane wrote:
> Andrew Dunstan <andrew.dunstan@2ndquadrant.com> writes:
> > On 01/24/2017 05:17 AM, Alvaro Herrera wrote:
> >> Maybe we can drop that line and put it back once we get COMMENT ON
> >> CURRENT_DATABASE.
> 
> > Works for me.
> 
> If that's enough to get the "make check" cases passing in the buildfarm,
> then +1.

Okay, done.

It is really quite annoying that the buildfarm doesn't do what stock
tests do.  What about pushing a bit stronger for having these
optimizations as part of the standard build run, instead of being only
in the buildfarm client script?

-- 
Álvaro Herrera                https://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services



Re: [HACKERS] Failure in commit_ts tap tests

From
Tom Lane
Date:
Alvaro Herrera <alvherre@2ndquadrant.com> writes:
> It is really quite annoying that the buildfarm doesn't do what stock
> tests do.  What about pushing a bit stronger for having these
> optimizations as part of the standard build run, instead of being only
> in the buildfarm client script?

Huh?  It's just a question of "make check" vs "make installcheck".
They each have their uses.
        regards, tom lane



Re: [HACKERS] Failure in commit_ts tap tests

From
Alvaro Herrera
Date:
Tom Lane wrote:
> Alvaro Herrera <alvherre@2ndquadrant.com> writes:
> > It is really quite annoying that the buildfarm doesn't do what stock
> > tests do.  What about pushing a bit stronger for having these
> > optimizations as part of the standard build run, instead of being only
> > in the buildfarm client script?
> 
> Huh?  It's just a question of "make check" vs "make installcheck".
> They each have their uses.

The current problem is because the buildfarm uses a different database.
See https://postgr.es/m/e6084b89-07a7-7e57-51ee-d7b8fc9ec864@2ndQuadrant.com
(When I wrote the para quoted above, I thought this was for performance,
but now I realize it's not so.  Anyway the point stands that buildfarm
does things differently.)

-- 
Álvaro Herrera                https://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services



Re: [HACKERS] Failure in commit_ts tap tests

From
Andrew Dunstan
Date:

On 01/26/2017 03:50 PM, Alvaro Herrera wrote:
> Tom Lane wrote:
>> Andrew Dunstan <andrew.dunstan@2ndquadrant.com> writes:
>>> On 01/24/2017 05:17 AM, Alvaro Herrera wrote:
>>>> Maybe we can drop that line and put it back once we get COMMENT ON
>>>> CURRENT_DATABASE.
>>> Works for me.
>> If that's enough to get the "make check" cases passing in the buildfarm,
>> then +1.
> Okay, done.
>
> It is really quite annoying that the buildfarm doesn't do what stock
> tests do.  What about pushing a bit stronger for having these
> optimizations as part of the standard build run, instead of being only
> in the buildfarm client script?
>


There is nothing that the buildfarm does that's not a stock test. What
it does is run the stock tests with USE_MODULE_DB=1 (which you can do
too). That is something provided for in our Make files. The reason is
that otherwise we constantly overwrite the regression database. That can
make it a lot harder to go back after a buildfarm run and find errors.

That's why you should not assume the name of the database when you're
writing a test.

cheers

andrew
-- 

Andrew Dunstan                https://www.2ndQuadrant.com
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services




Re: [HACKERS] Failure in commit_ts tap tests

From
Alvaro Herrera
Date:
Andrew Dunstan wrote:

> On 01/26/2017 03:50 PM, Alvaro Herrera wrote:

> > It is really quite annoying that the buildfarm doesn't do what stock
> > tests do.  What about pushing a bit stronger for having these
> > optimizations as part of the standard build run, instead of being only
> > in the buildfarm client script?
> 
> There is nothing that the buildfarm does that's not a stock test. What
> it does is run the stock tests with USE_MODULE_DB=1 (which you can do
> too). That is something provided for in our Make files. The reason is
> that otherwise we constantly overwrite the regression database. That can
> make it a lot harder to go back after a buildfarm run and find errors.

There is a lot that you *can* do using the stock makefiles, but that
"make check-world" doesn't do.  Why aren't we using USE_MODULE_DB=1 in
"make check-world", is my question.

-- 
Álvaro Herrera                https://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services



Re: [HACKERS] Failure in commit_ts tap tests

From
Tom Lane
Date:
Alvaro Herrera <alvherre@2ndquadrant.com> writes:
> There is a lot that you *can* do using the stock makefiles, but that
> "make check-world" doesn't do.  Why aren't we using USE_MODULE_DB=1 in
> "make check-world", is my question.

Well, that option isn't all that convenient for manual use ...
        regards, tom lane