Re: BUG #17647: 12.12 package has difference on ubuntu 18.04 - Mailing list pgsql-bugs
From | Julien Rouhaud |
---|---|
Subject | Re: BUG #17647: 12.12 package has difference on ubuntu 18.04 |
Date | |
Msg-id | 20221018132519.tt3feryowdyhdvbn@jrouhaud Whole thread Raw |
In response to | Re: Aw: BUG #17647: 12.12 package has difference on ubuntu 18.04 (Julien Rouhaud <rjuju123@gmail.com>) |
Responses |
Aw: Re: BUG #17647: 12.12 package has difference on ubuntu 18.04
|
List | pgsql-bugs |
On Tue, Oct 18, 2022 at 08:44:15PM +0800, Julien Rouhaud wrote: > Hi, > > On Tue, Oct 18, 2022 at 10:19:20AM +0200, Mike Fröhner wrote: > > > > <html> > > <head> > > <meta name="viewport" content="width=device-width"> > > <meta http-equiv="Content-Type" content="text/vnd.ui.insecure+html;charset=utf-8"> > > </head> > > <body style="overflow-wrap:break-word; word-break: break-word;"><div class="mail_android_message" style="line-height:1; padding: 0.5em">Hello<br/><br/>I have made some deeper investigation:<br/><br/>Steps to reproduce:<br/><br/>```<br/>dockerpull ubuntu:18.04 && docker run -it --rm ubuntu:18.04 bash<br/>## or<br/>dockerpull ubuntu:20.04 && docker run -it --rm ubuntu:20.04 bash<br/>## or<br/>docker pull ubuntu:22.04 &&docker run -it --rm ubuntu:22.04 bash<br/><br/><br/>apt-get update<br/>apt-get install -y vim strace less curlca-certificates gnupg sudo lsb-release<br/><br/>curl <a href="https://www.postgresql.org/media/keys/ACCC4CF8.asc">https://www.postgresql.org/media/keys/ACCC4CF8.asc</a>| gpg --dearmor| sudo tee /etc/apt/<a href="http://trusted.gpg">trusted.gpg</a>.d/<a href="http://apt.postgresql.org.gpg">apt.postgresql.org.gpg</a>>/dev/null<br/><br/>sh -c 'echo "deb <a href="http://apt.postgresql.org/pub/repos/apt">http://apt.postgresql.org/pub/repos/apt</a>$(lsb_release -cs)-pgdg main"> /etc/apt/<a href="http://sources.list">sources.list</a>.d/<a href="http://pgdg.list">pgdg.list</a>'<br/>apt-getupdate<br/>apt-get install -y postgresql-12<br/><br/>pg_ctlcluster12 main start<br/><br/>sudo -u postgres -i<br/>psql<br/>CREATE DATABASE database_name;<br/>CREATEUSER my_username WITH PASSWORD 'my_password';<br/>GRANT ALL PRIVILEGES ON DATABASE "database_name"to my_username;<br/>exit<br/><br/>echo '*:*:*:my_username:my_password' > .pgpass<br/>chmod0600 .pgpass<br/>exit<br/><br/>##<br/>## this does not work for ubuntu 18.04 but for ubuntu 20.04/22.04<br/>##<br/>/usr/bin/sudo-u postgres psql -U my_username -h <a href="http://127.0.0.1">127.0.0.1</a> database_name-c "CREATE TABLE foo (foo char);"<br/><br/>##<br/>## this works for all<br/>##<br/>sudo -u postgres-i<br/>psql -U my_username -h <a href="http://127.0.0.1">127.0.0.1</a> database_name -c "CREATE TABLE foo (foochar);"<br/>```<br/><br/>We have narrowed it down to three packages which have been upgraded on ubuntu 18.04 betweenworking and broken state:<br/>- `libpq5` upgraded from `14.5-1.pgdg18.04+1` to `15.0-1.pgdg18.04+1`<br/>- `postgresql-client-common`and `postgresql-common` from `243.pgdg18.04+1` to `244.pgdg18.04+1`<br/><br/>None other packageshave been upgraded (incl. ubuntu repo packages)!<br/><br/>For me it does look like a bug with in psql client package.<br/><br/>regards<br/>Mike<br/><br/>--<br/>DieseNachricht wurde von meinem Android Mobiltelefon mit GMX Mail gesendet.</div><divclass="mail_android_quote" style="line-height: 1; padding: 0.3em"><html><body>Am 17.10.22, 16:19 schriebPG Bug reporting form <noreply@postgresql.org>:</body></html><blockquote class="gmail_quote" style="margin:0.8ex 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;"> > > You should configure your MUA to send plaintext too and not only html, as some > people can't (and don't want to) read html-only emails. After reading it on > the html archives, I'm surprised to see that this would work at all on other > ubuntu versions, and it doesn't look like a bug in our code. sudo without -i > will look for the .pgpass in the wrong place: > > # sudo -u postgres bash -c "echo \$HOME" > /root > > # sudo -iu postgres bash -c "echo \$HOME" > /var/lib/postgresql > > Do you get a different behavior for those commands on other ubuntu versions? Scratch that, after checking the code I can see that up to version 14 we were only relying on getpwuid or getpwuid_r (which would work with or without -i), but starting with pg15 we first look at the $HOME variable which indeed is problematic. This was introduced in 376ce3e404b, per request at https://www.postgresql.org/message-id/1634252654444.90107@mit.edu: > According to getpwnam(3): > > An application that wants to determine its user's home directory > should inspect the value of HOME (rather than the value > getpwuid(getuid())->pw_dir) since this allows the user to modify > their notion of "the home directory" during a login session. So there is indeed a behavior change, but it's wanted and documented in the release notes.
pgsql-bugs by date:
Previous
From: PG Bug reporting formDate:
Subject: BUG #17650: For the sixth time, the clipping function in the 120 partition table planning stage fails
Next
From: Julien RouhaudDate:
Subject: Re: BUG #17649: With libpg5 15.0 psql 10.22 uses HOME variable instead of uid and /etc/passwd to select .pgpass file