Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1tvyuD-009deE-EK for pgsql-hackers@arkaria.postgresql.org; Sat, 22 Mar 2025 13:28:53 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1tvyuA-00DG2e-Rz for pgsql-hackers@arkaria.postgresql.org; Sat, 22 Mar 2025 13:28:50 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1tvyuA-00DG1q-9u for pgsql-hackers@lists.postgresql.org; Sat, 22 Mar 2025 13:28:50 +0000 Received: from mail-qv1-xf29.google.com ([2607:f8b0:4864:20::f29]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1tvyu7-000VOM-0r for pgsql-hackers@postgresql.org; Sat, 22 Mar 2025 13:28:49 +0000 Received: by mail-qv1-xf29.google.com with SMTP id 6a1803df08f44-6e91d323346so30198806d6.1 for ; Sat, 22 Mar 2025 06:28:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=dunslane-net.20230601.gappssmtp.com; s=20230601; t=1742650125; x=1743254925; darn=postgresql.org; h=in-reply-to:autocrypt:content-language:from:references:cc:to :subject:user-agent:mime-version:date:message-id:from:to:cc:subject :date:message-id:reply-to; bh=1gacug4Zi41382ldU3XizTiuf/DF+1ONA7yE7eUmT9U=; b=RNVlVpUaTUj4QO3LWGBgFZ1JuaTE9Lrqqa+kUDTlOV3t9g4DgUsqHQbGIJHIbG7zS1 8clqJ0q5pnsOtK6AqZC0pZ4oCMz0x6CRwtu9SI/CvLyaTwgxPqTSExCScPPDzT436AX4 xdZl/IvxYIxnUaW2fmoO2HkAFTsBhsXzP15mYZiLBtX52XIKdTeDQjBLwotpOpWVARR+ fYWie+/hyeA2HVuJZrVXtBJ/Ar7kBUAH1vvvKPFJnjsVVvLC/xecKHRphdTFhtFTDod3 ifYvZ+g3W6Pl8t9jfhOSdjWhzL9P8UIvmxJjl6jtLJcGjQIRroE6maCoh1GPFgcpjQCo DIYQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1742650125; x=1743254925; h=in-reply-to:autocrypt:content-language:from:references:cc:to :subject:user-agent:mime-version:date:message-id:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=1gacug4Zi41382ldU3XizTiuf/DF+1ONA7yE7eUmT9U=; b=oa50l3BxzT/suEwTBNFP5IcThgloVkNO49SaLcxPV0YwiZOELxsJOA9ivvZx6j3idj YGwcpfmSk4BZsGOnMvWgH//afV197071/TtFLuNpjDdzY9nqmivkXTmQ7+jIDREq/6KW exeJjk0TtTGRFk+tq/Ixc79v+m7o5+tlMAemyFLWxGR7q/h749X9CN19+P2Qe2J560YQ xssR/E41NkcUSIZWx55obPEy0HOf8Kz5PMG/YyPZxNpb3U0oKRxsc1/LeQOAMEvHKlUP SHuxfe1aW87ZM5T+c2xFVjDjx/FUbMESNclw3/OugYHt032QYiGnyCKvnmo7vqvstudV V25w== X-Forwarded-Encrypted: i=1; AJvYcCV6S7EiFnb29Tr1FI/pY88wRhP+7/Avqx6QlV8WNVhDGj9R87Skj/8GCjREj7t+OHGQx47is8kpz3g5LdT1@postgresql.org X-Gm-Message-State: AOJu0YzDqKfFo0i26n4TqdyahKJRBRfeBNp7K3lY9eFI6tk5+v0so9NP j9t3vWvtI++CLWX56AWqsD39lw73xZ7zWaBI27K3oUU8nF4RS726N9iVseA7qPY= X-Gm-Gg: ASbGncsgi5gRNTPhnwa9OKYCZUpt+ygn1iGZbzdQptExlSKBr7PHzpVA0QdZ48GswQE 6B5witNnJR7bADJrfYuqAPUp+6urFUkRZ4s+On626WaYVxdhiXmJwExcK+tXXoGcgOy2WvMTM34 rXGRVdAB49VvxdDYMkuBZjeOgIvq7jKT6O6h642yQLrBgSdDaSqyK7+z5e8B/CWRW2OiaUvjwhy 0qSkyNydfY5h34iM4GV2Okv8qgwxcxe+Pjup74XPyY3/3jLlpxvpidofWRMoE/LLIBaTdtlrr2T qabWoWqQ4N+jTHZNb+suGoZrm+SaJHsnqOgMDV7T7MXDsPCVemtmCgM= X-Google-Smtp-Source: AGHT+IEuA9oRNEZziG8rtQbzprIEOw++qzXW26KIJO0/fF9vHUq7XbGNCefLEYz9yHg2cPmVcxtpVg== X-Received: by 2002:a05:6214:2a4f:b0:6e4:4676:85c3 with SMTP id 6a1803df08f44-6eb3496ec4cmr137210316d6.11.1742650124671; Sat, 22 Mar 2025 06:28:44 -0700 (PDT) Received: from ?IPV6:2605:a601:a681:6b00::1cb? ([2605:a601:a681:6b00::1cb]) by smtp.googlemail.com with ESMTPSA id 6a1803df08f44-6eb3efdc043sm22038406d6.104.2025.03.22.06.28.42 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sat, 22 Mar 2025 06:28:43 -0700 (PDT) Content-Type: multipart/alternative; boundary="------------xBvjfl3RW4a8S5RbleFQecuj" Message-ID: <30e7d162-408d-4d35-aa6a-1591d012b623@dunslane.net> Date: Sat, 22 Mar 2025 09:28:41 -0400 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: RFC: Additional Directory for Extensions To: Tom Lane , Matheus Alcantara , tharar@amazon.com Cc: Peter Eisentraut , Gabriele Bartolini , Craig Ringer , "David E. Wheeler" , Robert Haas , Alvaro Herrera , PostgreSQL-development References: <4f7209ba-1ca2-475e-9a70-0f3fe0be6378@eisentraut.org> <12312928-5516-49b8-81c1-a7b56fd01bc8@dunslane.net> <38c53446-6b65-4222-b76b-351e56f4841c@eisentraut.org> <7c178ff3-20a5-493e-a704-e6b3263e782f@eisentraut.org> <784527.1742410558@sss.pgh.pa.us> <1571161.1742575348@sss.pgh.pa.us> From: Andrew Dunstan Content-Language: en-US Autocrypt: addr=andrew@dunslane.net; keydata= xsBNBE7KWFkBCAClridxur2AIc7eW2AR7izbfp3EnNefie2HbLF0izW5Ik5UjX2HBXBx4syI gY6b0ugohXrr274+baoAlvSbq6cAoQuEVrk5IZFzt20b1Xkx65FwGSEj526yiKLocqkJceSq Xr9xcA5SGY+FZv441chh5SU92v4q6z+6LPpoHOh97ptAVXZYNTtU0LevyvD5lja0TzbvJm6C eFXitJfnm1pLEr0DGJCR/iUOl/N62Kh4855zZC7NHIjQHPOvV5Stz/l5ilDhvGVk+xkXFPys SjZoUr1rXhYLpiyi5sR0X9FHXT0KnGuz1F5ERO7ZTLSSQ6fJwPj6gOk9K+vvoKvoeql5ABEB AAHNJEFuZHJldyBEdW5zdGFuIDxhbmRyZXdAZHVuc2xhbmUubmV0PsLAmwQTAQgARQIbAwIX gAIZAQULCQgHAgMiAgEGFQoJCAsCBBYCAwECHgcWIQTkPlhGHfx8v0RpFaWZ+n/LWfw7gQUC ZFlxxwUJGVGAbgAKCRCZ+n/LWfw7gXikB/9ZdcUy6CTBFIIuL/bVsc1eLEW/gJBjJBF6HxNY xgEkAgXAp4Lg4A5U+QB9GouFr7+GYxF0BU4hzoGhNPUWltxnHdMWP8nC/38LAqgMi8L/bbsm HW5YPBdWYaAZAPJQVfOAgjTbRUb26KSprpyrrJKW0ZmrZfjhNPcQ72jpWzoPLQqx2X6B0fru 1jq+cBh8lb6r1mJTim1T3JIn+F/v5VpdQS+EL8xqsHkfzKjIPsW3CIXpkypSk6saA55Rkkbl 26AW8ftPVB0Q6Lnn6FLt9CP0MGNixBQ55yq8r1K+nCBvCCjvQjM8RDm0UUum0WNl+ifQgTLO E8TWEnwVtkBf+3QWzsBNBE7KWFkBCADRnOM0FCzsYW6jtncg+dWIagjUZpvaClmqn/sJluLa Q3v1VXMQJzYs3eC1gh386W+XBwLRpDj3jzH81lX+p73Re3d3oJW7X+ffsxuzu5ZVdMUkqBYo nkAbKxr6gyJ12F/+JkUVzLcoTN+d/7YsQvUVi7NaKH8mJgjz112O4fUe3p9wfAaFa0RXHc5S GPzRTYRRlv/XZBIho4J2tkZOnteZJZ+GbxQVlINt6fd8P6al3MWOvpP/ExJPguEfjOsO6Njy xjo3WfpD4lHMOR/Oc3/8mScEF84rF2jXbsFgelWnbPWAvXY+pD0dXOFRkagGmC/viwBDqq5b 5tk76kKmUbZxABEBAAHCwHwEGAEIACYCGwwWIQTkPlhGHfx8v0RpFaWZ+n/LWfw7gQUCZFlx 5wUJGVGAjgAKCRCZ+n/LWfw7gf+iB/4g8CPY5jihf5r/8EsoIGe2H+dpVmpPF8YGBzTIvCz/ fQoOq8AX/pE76QEuFnFZWfjw+wgBXgCVmkox2Eflkk6z4ND3pcwGZ6CfCxTQCDk/dij+2DQ4 6bmDCy/sBgcbz9mTpoLC11HLoPae6YN9nBNQRZDcEFEu54OaVOqlIdbA6m+POIBCXZdHOFc0 WoDTgxHRzC1jgQNidyd6tKqcsVJs0dzF0oKTmFFmUAqTdJO12LBuNA1rlqrR3EtpYk8B/wtS 5dIMD7Q8hwQpL+4C6GNpb6ZKnPkLi47pDOLhz2qBrqN+rqUEsT3YnExYpzj5yOBi+FlmV1Hw 49QYe1sn2ZPs In-Reply-To: <1571161.1742575348@sss.pgh.pa.us> List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk This is a multi-part message in MIME format. --------------xBvjfl3RW4a8S5RbleFQecuj Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit On 2025-03-21 Fr 12:42 PM, Tom Lane wrote: > Matheus Alcantara writes: >> On Thu, Mar 20, 2025 at 7:38 PM Andrew Dunstan wrote: >>>> (wondering if this another of these cases where the "path includes postgres" thing bites us, and we're looking in the wrong place) >>> Nope, testing shows it's not that, so I am rather confused about what was going on. >> I'm not sure if I'm checking on the right place [1] but it seems that the >> Contrib and ContribInstall is executed after Check step which causes this test >> failure? > No, this is not failing in Check. > > I did just notice a clue though: on snakefly, the failing step's > log [1] includes > > make[1]: Leaving directory `/opt/postgres/build-farm-18/HEAD/pgsql.build/src/backend' > rm -rf '/opt/postgres/build-farm-18/HEAD/pgsql.build'/tmp_install > /usr/bin/mkdir -p '/opt/postgres/build-farm-18/HEAD/pgsql.build'/tmp_install/log > make -C '../../../..' DESTDIR='/opt/postgres/build-farm-18/HEAD/pgsql.build'/tmp_install install >'/opt/postgres/build-farm-18/HEAD/pgsql.build'/tmp_install/log/install.log 2>&1 > make -j1 checkprep >>'/opt/postgres/build-farm-18/HEAD/pgsql.build'/tmp_install/log/install.log 2>&1 > PATH="/opt/postgres/build-farm-18/HEAD/pgsql.build/tmp_install/opt/postgres/build-farm-18/HEAD/inst/bin:/opt/postgres/build-farm-18/HEAD/pgsql.build/src/test/modules/test_extensions:$PATH" LD_LIBRARY_PATH="/opt/postgres/build-farm-18/HEAD/pgsql.build/tmp_install/opt/postgres/build-farm-18/HEAD/inst/lib:$LD_LIBRARY_PATH" INITDB_TEMPLATE='/opt/postgres/build-farm-18/HEAD/pgsql.build'/tmp_install/initdb-template initdb --auth trust --no-sync --no-instructions --lc-messages=C --no-clean '/opt/postgres/build-farm-18/HEAD/pgsql.build'/tmp_install/initdb-template >>'/opt/postgres/build-farm-18/HEAD/pgsql.build'/tmp_install/log/initdb-template.log 2>&1 > echo "# +++ regress check in src/test/modules/test_extensions +++" && PATH="/opt/postgres/build-farm-18/HEAD/pgsql.build/tmp_install/opt/postgres/build-farm-18/HEAD/inst/bin:/opt/postgres/build-farm-18/HEAD/pgsql.build/src/test/modules/test_extensions:$PATH" LD_LIBRARY_PATH="/opt/postgres/build-farm-18/HEAD/pgsql.build/tmp_install/opt/postgres/build-farm-18/HEAD/inst/lib:$LD_LIBRARY_PATH" INITDB_TEMPLATE='/opt/postgres/build-farm-18/HEAD/pgsql.build'/tmp_install/initdb-template ../../../../src/test/regress/pg_regress --temp-instance=./tmp_check --inputdir=. --bindir= --temp-config=/opt/postgres/build-farm-18/tmp/buildfarm-C9Iy3s/bfextra.conf --no-locale --port=5678 --dbname=contrib_regression test_extensions test_extdepend > # +++ regress check in src/test/modules/test_extensions +++ > # initializing database system by running initdb > > showing that the step made its own tmp_install, and that only the core > "install" process was executed, so the lack of amcheck in that install > tree is not surprising. But concurrent runs on other animals, eg [2], > don't show a tmp_install rebuild happening. So those are using an > installation tree that *does* include contrib modules. > > So what this comes down to is "why is snakefly doing a fresh install > here?". I don't know the buildfarm client well enough to identify > probable causes. I do note that Makefile.global.in conditionalizes > tmp_install rebuild on several variables: > > temp-install: | submake-generated-headers > ifndef NO_TEMP_INSTALL > ifneq ($(abs_top_builddir),) > ifeq ($(MAKELEVEL),0) > rm -rf '$(abs_top_builddir)'/tmp_install > $(MKDIR_P) '$(abs_top_builddir)'/tmp_install/log > $(MAKE) -C '$(top_builddir)' DESTDIR='$(abs_top_builddir)'/tmp_install install >'$(abs_top_builddir)'/tmp_install/log/install.log 2>&1 > $(MAKE) -j1 $(if $(CHECKPREP_TOP),-C $(CHECKPREP_TOP),) checkprep >>'$(abs_top_builddir)'/tmp_install/log/install.log 2>&1 Good catch. This is happening because the owner hasn't updated the animal to REL_19_1. In 19 and 19.1 we fixed detection of exiting installs to take account of the 'Is there postgres or pgsql in the prefix' issue. So it was looking in the wrong place. cheers andrew -- Andrew Dunstan EDB:https://www.enterprisedb.com --------------xBvjfl3RW4a8S5RbleFQecuj Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: 8bit


On 2025-03-21 Fr 12:42 PM, Tom Lane wrote:
Matheus Alcantara <matheusssilv97@gmail.com> writes:
On Thu, Mar 20, 2025 at 7:38 PM Andrew Dunstan <andrew@dunslane.net> wrote:
(wondering if this another of these cases where the "path includes postgres" thing bites us, and we're looking in the wrong place)

      
Nope, testing shows it's not that, so I am rather confused about what was going on.

      
I'm not sure if I'm checking on the right place [1] but it seems that the
Contrib and ContribInstall is executed after Check step which causes this test
failure?
No, this is not failing in Check.

I did just notice a clue though: on snakefly, the failing step's
log [1] includes

make[1]: Leaving directory `/opt/postgres/build-farm-18/HEAD/pgsql.build/src/backend'
rm -rf '/opt/postgres/build-farm-18/HEAD/pgsql.build'/tmp_install
/usr/bin/mkdir -p '/opt/postgres/build-farm-18/HEAD/pgsql.build'/tmp_install/log
make -C '../../../..' DESTDIR='/opt/postgres/build-farm-18/HEAD/pgsql.build'/tmp_install install >'/opt/postgres/build-farm-18/HEAD/pgsql.build'/tmp_install/log/install.log 2>&1
make -j1  checkprep >>'/opt/postgres/build-farm-18/HEAD/pgsql.build'/tmp_install/log/install.log 2>&1
PATH="/opt/postgres/build-farm-18/HEAD/pgsql.build/tmp_install/opt/postgres/build-farm-18/HEAD/inst/bin:/opt/postgres/build-farm-18/HEAD/pgsql.build/src/test/modules/test_extensions:$PATH" LD_LIBRARY_PATH="/opt/postgres/build-farm-18/HEAD/pgsql.build/tmp_install/opt/postgres/build-farm-18/HEAD/inst/lib:$LD_LIBRARY_PATH" INITDB_TEMPLATE='/opt/postgres/build-farm-18/HEAD/pgsql.build'/tmp_install/initdb-template  initdb --auth trust --no-sync --no-instructions --lc-messages=C --no-clean '/opt/postgres/build-farm-18/HEAD/pgsql.build'/tmp_install/initdb-template >>'/opt/postgres/build-farm-18/HEAD/pgsql.build'/tmp_install/log/initdb-template.log 2>&1
echo "# +++ regress check in src/test/modules/test_extensions +++" && PATH="/opt/postgres/build-farm-18/HEAD/pgsql.build/tmp_install/opt/postgres/build-farm-18/HEAD/inst/bin:/opt/postgres/build-farm-18/HEAD/pgsql.build/src/test/modules/test_extensions:$PATH" LD_LIBRARY_PATH="/opt/postgres/build-farm-18/HEAD/pgsql.build/tmp_install/opt/postgres/build-farm-18/HEAD/inst/lib:$LD_LIBRARY_PATH" INITDB_TEMPLATE='/opt/postgres/build-farm-18/HEAD/pgsql.build'/tmp_install/initdb-template  ../../../../src/test/regress/pg_regress --temp-instance=./tmp_check --inputdir=. --bindir=  --temp-config=/opt/postgres/build-farm-18/tmp/buildfarm-C9Iy3s/bfextra.conf  --no-locale --port=5678 --dbname=contrib_regression test_extensions test_extdepend
# +++ regress check in src/test/modules/test_extensions +++
# initializing database system by running initdb

showing that the step made its own tmp_install, and that only the core
"install" process was executed, so the lack of amcheck in that install
tree is not surprising.  But concurrent runs on other animals, eg [2],
don't show a tmp_install rebuild happening.  So those are using an
installation tree that *does* include contrib modules.

So what this comes down to is "why is snakefly doing a fresh install
here?".  I don't know the buildfarm client well enough to identify
probable causes.  I do note that Makefile.global.in conditionalizes
tmp_install rebuild on several variables:

temp-install: | submake-generated-headers
ifndef NO_TEMP_INSTALL
ifneq ($(abs_top_builddir),)
ifeq ($(MAKELEVEL),0)
	rm -rf '$(abs_top_builddir)'/tmp_install
	$(MKDIR_P) '$(abs_top_builddir)'/tmp_install/log
	$(MAKE) -C '$(top_builddir)' DESTDIR='$(abs_top_builddir)'/tmp_install install >'$(abs_top_builddir)'/tmp_install/log/install.log 2>&1
	$(MAKE) -j1 $(if $(CHECKPREP_TOP),-C $(CHECKPREP_TOP),) checkprep >>'$(abs_top_builddir)'/tmp_install/log/install.log 2>&1


Good catch. This is happening because the owner hasn't updated the animal to REL_19_1. In 19 and 19.1 we fixed detection of exiting installs to take account of the 'Is there postgres or pgsql in the prefix' issue. So it was looking in the wrong place.


cheers


andrew

--
Andrew Dunstan
EDB: https://www.enterprisedb.com
--------------xBvjfl3RW4a8S5RbleFQecuj--