Received: from malur.postgresql.org ([2a02:16a8:dc51::56]) by arkaria.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.89) (envelope-from ) id 1fdalU-00031W-Mb for pgsql-hackers@arkaria.postgresql.org; Thu, 12 Jul 2018 12:32:08 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.89) (envelope-from ) id 1fdalT-0004D3-7C for pgsql-hackers@arkaria.postgresql.org; Thu, 12 Jul 2018 12:32:07 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.89) (envelope-from ) id 1fdalT-0004Cw-03 for pgsql-hackers@lists.postgresql.org; Thu, 12 Jul 2018 12:32:07 +0000 Received: from mail-lj1-x243.google.com ([2a00:1450:4864:20::243]) by magus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.89) (envelope-from ) id 1fdalP-0006CY-Af for pgsql-hackers@postgresql.org; Thu, 12 Jul 2018 12:32:06 +0000 Received: by mail-lj1-x243.google.com with SMTP id 1-v6so21821227ljv.9 for ; Thu, 12 Jul 2018 05:32:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=subject:to:cc:references:from:message-id:date:user-agent :mime-version:in-reply-to:content-language; bh=PYewzhExQYbFNn+EzKX34pixVda0BoVsNcaXjJbETeQ=; b=mkVY5wpE05LEqHv81wgxZF1LW6RPza1juIKZMDal4gYLboJ8AkP6Hm8u/sCK+P5ueD QSnDO1jMdINonO8i7d9I4ZHDfuELyEKuOQ0N0u1EUllwpO1YHSQ7HVHXgNFTprERGmAL oXgAE95hx+8DB/aJOIG1Ko36G6gt0a6Ka3ygziYnzquB+QdQPP7YvQd7vlbrokC0FdZr Lg+2uUTOPJ1V1owHxIdkm8Az0llUwizROd4sgzFl8cHc57u18F3+clo8ufSraDehRUhF OEuCMMO/ZRBQkOcK+aBLGwhePKsA9hqd+7pHJlUW1h7sycEjeccMEG4XhPcJe03qKnDs o0kg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:cc:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-language; bh=PYewzhExQYbFNn+EzKX34pixVda0BoVsNcaXjJbETeQ=; b=TmpRrei7WKxX5w1KvPcWx/b+AzHE2PuwXyCWuE+KwOqneH+BXc6RD2DnI6s4O3c3Po KvFMeyEYww1lq7i4I4kbo8z9ZDMifX2Tf0vZKklUgeg+boXCqqxPy0hDymoWJsClsJWc KuqUd9rX5sU24+oaJ3eT22xuPlxEwbk/0aSqZHFsCA3l1rs5PuNG5ebmQEwcc3CXEPul Xqyi+xpQd7IPGDwaE5U7yzG86OZ21lyM1+MFJUJyK4dq+y4mQ6vEN5sWwOAbqqHPApsR F5MZ5Om/AnmizpC/bbBGYAqDDimIVJqdbeXlqfHOiz5+7m/EO//wkOlWyaB4MQbp9Hlw yJ/g== X-Gm-Message-State: AOUpUlFBE/Ls1ChEWVaMUWkpi8LvDyZYFqNSqyKwl1xISTkSnfw1N9eo fJn9L/btbUKCdi07XjvtBpdSvQ== X-Google-Smtp-Source: AAOMgpdGp8HhHXfZDzcJcQWDeEM6Te2ptXAUOcG6h1h5r57sycPBHOMVmWnK21HLv30eYa+zZCs7GQ== X-Received: by 2002:a2e:498:: with SMTP id a24-v6mr493303ljf.27.1531398722321; Thu, 12 Jul 2018 05:32:02 -0700 (PDT) Received: from [1.0.0.7] ([178.155.4.49]) by smtp.gmail.com with ESMTPSA id c83-v6sm5903497lfg.18.2018.07.12.05.32.01 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 12 Jul 2018 05:32:01 -0700 (PDT) Subject: Re: make installcheck-world in a clean environment To: Tom Lane Cc: Peter Eisentraut , Robert Haas , "pgsql-hackers@postgresql.org" References: <24834.1525712835@sss.pgh.pa.us> <16109.1531340141@sss.pgh.pa.us> From: Alexander Lakhin Message-ID: <13311de0-456c-fe1e-3e61-9bdf916ef1a2@gmail.com> Date: Thu, 12 Jul 2018 15:32:00 +0300 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.7.0 MIME-Version: 1.0 In-Reply-To: <16109.1531340141@sss.pgh.pa.us> Content-Type: multipart/alternative; boundary="------------5469901A54C1A5F1991D358D" Content-Language: en-US List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Precedence: bulk This is a multi-part message in MIME format. --------------5469901A54C1A5F1991D358D Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Hello Tom, 11.07.2018 23:15, Tom Lane wrote: > >> /make clean/ >> # Also you can just install binary packages to get the same state. >> make installcheck-world >> # This check fails. > I do not think that should be expected to work. It would require that > "make installcheck" first invoke "make all" (to rebuild the stuff you > threw away with "make clean"), which is rather antithetical to its > purpose. Specifically, installcheck is supposed to be checking something > you already built; so having it do a fresh build seems to introduce > version-skew hazards that we don't need. If I understand correctly, the installcheck target should not use the stuff in the build directory (that is thrown away with 'make clean'), but instead should use/check the installed assets. In fact with REL_10_STABLE you can run "make clean && make installcheck" and it works just fine (without calling 'make all'). It's sufficient to have a working instance running. And I think, this behavior is correct — "installcheck" supposed to check not something we built ("check" is supposed to do that), but something we installed. And only if I run "make installcheck-world" with REL_10_STABLE I get an error related to ECPG, I've referred to in the first message in this thread. In the master branch there was some changes that prevent "make clean && make installcheck" scenario to run, but I think it can (and should) be fixed too. (When I prepared the patches, there were no differences between these branches in this aspect.) So for me the question is what assets should the installcheck target be checking? Installed or built ones? For example, if psql/pg_dump/ecpg/... is installed in /usr/local/pgsql/bin/, should it be checked by the installcheck? And if we target the installed stuff then why do we need to build something (or have something built) for installcheck? Best regards, ------ Alexander Lakhin Postgres Professional: http://www.postgrespro.com The Russian Postgres Company --------------5469901A54C1A5F1991D358D Content-Type: text/html; charset=utf-8 Content-Transfer-Encoding: 8bit
Hello Tom,

11.07.2018 23:15, Tom Lane wrote:

/make clean/
# Also you can just install binary packages to get the same state.

      
make installcheck-world
# This check fails.
I do not think that should be expected to work.  It would require that
"make installcheck" first invoke "make all" (to rebuild the stuff you
threw away with "make clean"), which is rather antithetical to its
purpose.  Specifically, installcheck is supposed to be checking something
you already built; so having it do a fresh build seems to introduce
version-skew hazards that we don't need.
If I understand correctly, the installcheck target should not use the stuff in the build directory (that is thrown away with 'make clean'), but instead should use/check the installed assets.
In fact with REL_10_STABLE you can run "make clean && make installcheck" and it works just fine (without calling 'make all'). It's sufficient to have a working instance running. And I think, this behavior is correct — "installcheck" supposed to check not something we built ("check" is supposed to do that), but something we installed.
And only if I run "make installcheck-world" with REL_10_STABLE I get an error related to ECPG, I've referred to in the first message in this thread.
In the master branch there was some changes that prevent "make clean && make installcheck" scenario to run, but I think it can (and should) be fixed too.
(When I prepared the patches, there were no differences between these branches in this aspect.)
So for me the question is what assets should the installcheck target be checking? Installed or built ones? For example, if psql/pg_dump/ecpg/... is installed in /usr/local/pgsql/bin/, should it be checked by the installcheck? And if we target the installed stuff then why do we need to build something (or have something built) for installcheck?

Best regards,
------

Alexander Lakhin
Postgres Professional: http://www.postgrespro.com
The Russian Postgres Company

--------------5469901A54C1A5F1991D358D--