Обсуждение: BUG #17585: Wrong path to the extension control file
The following bug has been logged on the website: Bug reference: 17585 Logged by: Yakov Garbuz Email address: yakov.garbuz@asmr.com PostgreSQL version: 12.11 Operating system: Mac OS Description: When I login to a server sudo -u postgres -h "nnn.nnn.nnn.nnn" -p nnnn -d postgres psql and execute command CREATE EXTENSION IF NOT EXISTS postgres_fdw; it runs OK, extension created and file postgres_fdw.control found in the folder "/usr/local/Cellar/postgresql@12/12.11/share/postgresql@12/extension/" But when I login to the same server but to the different database and as a different user sudo -u myuser -h "nnn.nnn.nnn.nnn" -p nnnn -d mydb psql and try execute the same command CREATE EXTENSION IF NOT EXISTS postgres_fdw; I'm getting ERROR: could not open extension control file "/usr/pgsql-12/share/extension/postgres_fdw.control": No such file or directory For some reason application is looking for file postgres_fdw.control in the non-existing directory /usr/pgsql-12/ Please advise
PG Bug reporting form <noreply@postgresql.org> writes: > When I login to a server > sudo -u postgres -h "nnn.nnn.nnn.nnn" -p nnnn -d postgres psql > and execute command > CREATE EXTENSION IF NOT EXISTS postgres_fdw; > it runs OK, extension created and file postgres_fdw.control found in the > folder > "/usr/local/Cellar/postgresql@12/12.11/share/postgresql@12/extension/" > But when I login to the same server but to the different database and as a > different user > sudo -u myuser -h "nnn.nnn.nnn.nnn" -p nnnn -d mydb psql > and try execute the same command > CREATE EXTENSION IF NOT EXISTS postgres_fdw; > I'm getting ERROR: could not open extension control file > "/usr/pgsql-12/share/extension/postgres_fdw.control": No such file or > directory I find it *extremely* implausible that those are actually the same server, because the path to the extension directory isn't configurable; it's pretty much wired in at build time. So I think you've managed to put two separate PG installations on that machine. One of them looks to be following HomeBrew directory conventions, while /usr/pgsql-12/ is sort of like what Debian does and not at all like any macOS packager I know. Are you really sure you're connecting to the same machine in both examples? "SELECT version();" might be informative, also "SHOW config_file;". regards, tom lane
Re: [External] Re: BUG #17585: Wrong path to the extension control file
SELECT version();
"PostgreSQL 12.6 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 8.3.1 20191121 (Red Hat 8.3.1-5), 64-bit"
SHOW config_file;
"/var/lib/postgresql/data/postgresql.conf"
cat: /var/lib/postgresql/data/postgresql.conf: No such file or directory
There is no postgresql directory in /var/lib/
Please advice
From: Tom Lane <tgl@sss.pgh.pa.us>
Date: Monday, August 22, 2022 at 8:10 AM
To: Garbuz, Yakov [ASM Research] <Yakov.Garbuz@asmr.com>
Cc: pgsql-bugs@lists.postgresql.org <pgsql-bugs@lists.postgresql.org>
Subject: [External] Re: BUG #17585: Wrong path to the extension control file
PG Bug reporting form <noreply@postgresql.org> writes:
> When I login to a server
> sudo -u postgres -h "nnn.nnn.nnn.nnn" -p nnnn -d postgres psql
> and execute command
> CREATE EXTENSION IF NOT EXISTS postgres_fdw;
> it runs OK, extension created and file postgres_fdw.control found in the
> folder
> "/usr/local/Cellar/postgresql@12/12.11/share/postgresql@12/extension/"
> But when I login to the same server but to the different database and as a
> different user
> sudo -u myuser -h "nnn.nnn.nnn.nnn" -p nnnn -d mydb psql
> and try execute the same command
> CREATE EXTENSION IF NOT EXISTS postgres_fdw;
> I'm getting ERROR: could not open extension control file
> "/usr/pgsql-12/share/extension/postgres_fdw.control": No such file or
> directory
I find it *extremely* implausible that those are actually the same
server, because the path to the extension directory isn't configurable;
it's pretty much wired in at build time. So I think you've managed to
put two separate PG installations on that machine. One of them looks to
be following HomeBrew directory conventions, while /usr/pgsql-12/ is sort
of like what Debian does and not at all like any macOS packager I know.
Are you really sure you're connecting to the same machine in both
examples? "SELECT version();" might be informative, also
"SHOW config_file;".
regards, tom lane
The information contained in this message may be privileged and/or confidential and protected from disclosure. If the reader of this message is not the intended recipient or agent responsible for delivering this message to the intended recipient, you are hereby notified that any dissemination, distribution or copying of this communication is strictly prohibited. If you have received this communication in error, please notify the sender immediately by replying to this message and deleting the material from any computer.
"Garbuz, Yakov [ASM Research]" <Yakov.Garbuz@asmr.com> writes: > SELECT version(); > "PostgreSQL 12.6 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 8.3.1 20191121 (Red Hat 8.3.1-5), 64-bit" > SHOW config_file; > "/var/lib/postgresql/data/postgresql.conf" > cat: /var/lib/postgresql/data/postgresql.conf: No such file or directory > There is no postgresql directory in /var/lib/ The best explanation I can see for that is that the server is on some other machine than where you are running psql/cat. I guess it's at least theoretically possible that the server was originally started in /var/lib/postgresql/data and somebody moved that directory since then. In any case, none of this looks like a Postgres bug; it looks like sloppy sysadmin work. You're going to have to puzzle out what's been done in that installation by yourself, because the rest of us don't have the facts available. regards, tom lane