Lists: | pgsql-pkg-debian |
---|
From: | Tomas Pospisek <tpo2(at)sourcepole(dot)ch> |
---|---|
To: | pgsql-pkg-debian(at)lists(dot)postgresql(dot)org |
Subject: | Breakage: pgbouncer has changed the user under which it runs between 1.16.1 and 1.17.0 |
Date: | 2022-05-11 14:07:36 |
Message-ID: | c2d6beff-ab80-ad76-930f-05e4ddd9578c@sourcepole.ch |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | pgsql-pkg-debian |
Dear packagers,
Due to the change of user under which pgbouncer runs (before: user
pgbouncer, new: user postgres), an upgrade from 1.16.1 to 1.17.0 will
break systems.
# cat /var/log/apt/history.log
[...]
Upgrade: pgbouncer:amd64 (1.16.1-1.pgdg20.04+1,
1.17.0-3.pgdg20.04+1)
# cat /etc/apt/sources.list.d/apt_postgresql_org_pub_repos_apt.list
deb http://apt.postgresql.org/pub/repos/apt/ focal-pgdg main
Workaround:
# chown postgres.postgres /etc/pgbouncer/*
# # the next line depends on where pgbouncer is set up to save
# # its logs go - see /etc/pgbouncer/pgbouncer.ini
# chown -R postgres.postgres /var/log/pgbouncer/
# # see preceeding comment
# chown postgres.postgres /var/log/postgres/pgbouncer*
# chown -R postgres.postgres /var/run/pgbouncer
I've originally reported that [here] and was redirected to this mailing
list.
Thanks a lot for the packages & greetings,
*t
From: | Christoph Berg <myon(at)debian(dot)org> |
---|---|
To: | Tomas Pospisek <tpo2(at)sourcepole(dot)ch> |
Cc: | pgsql-pkg-debian(at)lists(dot)postgresql(dot)org |
Subject: | Re: Breakage: pgbouncer has changed the user under which it runs between 1.16.1 and 1.17.0 |
Date: | 2022-05-11 14:34:25 |
Message-ID: | YnvJcRmgVTTQCtFZ@msg.df7cb.de |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | pgsql-pkg-debian |
Re: Tomas Pospisek
> Due to the change of user under which pgbouncer runs (before: user
> pgbouncer, new: user postgres), an upgrade from 1.16.1 to 1.17.0 will break
> systems.
Hi Tomas,
the Debian pgbouncer package has always been using the postgres user:
$ grep USER debian/init
RUNASUSER="postgres"
$SSD --start --chuid $RUNASUSER --oknodo -- $OPTS 2> /dev/null
su -c "$DAEMON -R $OPTS 2> /dev/null" - ${RUNASUSER%:*}
Maybe you were editing the init.d or defaults file before?
> Upgrade: pgbouncer:amd64 (1.16.1-1.pgdg20.04+1,
> 1.17.0-3.pgdg20.04+1)
The effective change between these versions is that we are now
shipping a .service file.
Christoph
From: | Tomas Pospisek <tpo2(at)sourcepole(dot)ch> |
---|---|
To: | Christoph Berg <myon(at)debian(dot)org> |
Cc: | pgsql-pkg-debian(at)lists(dot)postgresql(dot)org |
Subject: | Re: Breakage: pgbouncer has changed the user under which it runs between 1.16.1 and 1.17.0 |
Date: | 2022-05-12 08:46:27 |
Message-ID: | d8ac51a2-6684-0966-a898-aeb4e27038d6@sourcepole.ch |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | pgsql-pkg-debian |
Hi Christoph,
before anything: thanks a lot for your reply and thanks a lot for your
OSS work <3 !!! Am very thankful for that!
On 11.05.22 16:34, Christoph Berg wrote:
> Re: Tomas Pospisek
>> Due to the change of user under which pgbouncer runs (before: user
>> pgbouncer, new: user postgres), an upgrade from 1.16.1 to 1.17.0 will break
>> systems.
>
> Hi Tomas,
>
> the Debian pgbouncer package has always been using the postgres user:
>
> $ grep USER debian/init
> RUNASUSER="postgres"
> $SSD --start --chuid $RUNASUSER --oknodo -- $OPTS 2> /dev/null
> su -c "$DAEMON -R $OPTS 2> /dev/null" - ${RUNASUSER%:*}
>
> Maybe you were editing the init.d or defaults file before?
indeed my /etc/default/pgbouncer contains `RUNASUSER="pgbouncer"`. I do
set that explicitly via ansible. However I'm not sure where that line
originated from. I am quite sure that it's not me who came up with the
idea of running the daemon as `pgbouncer`, but instead that came from
the package (which package - if from Debian or from pgdg - I don't know
I would have to dig further, but maybe I could figure it out).
>> Upgrade: pgbouncer:amd64 (1.16.1-1.pgdg20.04+1,
>> 1.17.0-3.pgdg20.04+1)
>
> The effective change between these versions is that we are now
> shipping a .service file.
So what is happening after the introduction of the `.service` file is
that either `/etc/default/pgbouncer` is now beeing ignored or it is
being overriden. That breaks installations that had
`RUNASUSER="pgbouncer"` set in `/etc/default/pgbouncer` when upgrading
to 1.17.x.
Do you concur with that conclusion?
*t
From: | Christoph Berg <myon(at)debian(dot)org> |
---|---|
To: | Tomas Pospisek <tpo2(at)sourcepole(dot)ch> |
Cc: | pgsql-pkg-debian(at)lists(dot)postgresql(dot)org |
Subject: | Re: Breakage: pgbouncer has changed the user under which it runs between 1.16.1 and 1.17.0 |
Date: | 2022-05-12 09:23:49 |
Message-ID: | YnzSJXNlv8mom5LO@msg.df7cb.de |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | pgsql-pkg-debian |
Re: Tomas Pospisek
> indeed my /etc/default/pgbouncer contains `RUNASUSER="pgbouncer"`. I do set
> that explicitly via ansible. However I'm not sure where that line originated
> from. I am quite sure that it's not me who came up with the idea of running
> the daemon as `pgbouncer`, but instead that came from the package (which
> package - if from Debian or from pgdg - I don't know I would have to dig
> further, but maybe I could figure it out).
Hi Tomas,
It's true that the upstream pgbouncer default is to use "pgbouncer"
instead of "postgres", but Debian's /etc/init.d/pgbouncer has had
RUNASUSER="postgres" since 2012, and /etc/default/pgbouncer has not
been changed since 2008.
> So what is happening after the introduction of the `.service` file is that
> either `/etc/default/pgbouncer` is now beeing ignored or it is being
> overriden. That breaks installations that had `RUNASUSER="pgbouncer"` set in
> `/etc/default/pgbouncer` when upgrading to 1.17.x.
>
> Do you concur with that conclusion?
Yes, but TBH I'd rather not reintroduce the usage of /etc/default in a
.service file when everyone else is moving away from that schema.
To override the settings from the package .service file, do this:
/etc/systemd/system/pgbouncer.service.d/user.conf:
[Service]
User=pgbouncer
Christoph