Thread: systemd[1]: postgresql-16.service: Killing process 25992 (postgres) with signal SIGKILL.

Previously posted to pgsql-bugs mail list as BUG #18361, but as I understand later, this may not be the PostgreSQL bug itself, but it may be the rpm/yum/dnf packaging bug?

Can you please help to fix this bug, or find a workaround?

Because killing postgres via SIGKILL is not a good idea.


---------- Forwarded message ---------
От: PG Bug reporting form <noreply@postgresql.org>
Date: сб, 24 февр. 2024 г. в 14:52
Subject: BUG #18361: systemd[1]: postgresql-16.service: Killing process 25992 (postgres) with signal SIGKILL.
To: <pgsql-bugs@lists.postgresql.org>


The following bug has been logged on the website:

Bug reference:      18361
PostgreSQL version: 16.2
Operating system:   Rocky Linux release 9.3
Description:       

PostgreSQL 16.2 installed on the Rocky Linux release 9.3 server from
official repository with official instruction from page
https://www.postgresql.org/download/linux/redhat/

when I execute command

# systemctl stop postgresql-16.service ; systemctl status
postgresql-16.service

I see, what PostgreSQL 16.2 was killed by SIGKILL.

this is a bug, as I understand, because database will be corrupted.

Is it possible to fix this bug and stop killing PostgreSQL with signal
SIGKILL ?

# systemctl stop postgresql-16.service ; systemctl status
postgresql-16.service
○ postgresql-16.service - PostgreSQL 16 database server
     Loaded: loaded (/usr/lib/systemd/system/postgresql-16.service; enabled;
preset: disabled)
     Active: inactive (dead) since Sat 2024-02-24 12:47:19 UTC; 6ms ago
   Duration: 3.525s
       Docs: https://www.postgresql.org/docs/16/static/
    Process: 26666 ExecStartPre=/usr/pgsql-16/bin/postgresql-16-check-db-dir
${PGDATA} (code=exited, status=0/SUCCESS)
    Process: 26671 ExecStart=/usr/pgsql-16/bin/postgres -D ${PGDATA}
(code=exited, status=0/SUCCESS)
   Main PID: 26671 (code=exited, status=0/SUCCESS)
        CPU: 43ms

Feb 24 12:47:15 postgres-16.example.net systemd[1]: Starting PostgreSQL 16
database server...
Feb 24 12:47:15 postgres-16.example.net postgres[26671]: 2024-02-24
12:47:15.985 UTC [26671] LOG:  redirecting log output to logging collector
process
Feb 24 12:47:15 postgres-16.example.net postgres[26671]: 2024-02-24
12:47:15.985 UTC [26671] HINT:  Future log output will appear in directory
"log".
Feb 24 12:47:15 postgres-16.example.net systemd[1]: Started PostgreSQL 16
database server.
Feb 24 12:47:19 postgres-16.example.net systemd[1]: Stopping PostgreSQL 16
database server...
Feb 24 12:47:19 postgres-16.example.net systemd[1]: postgresql-16.service:
Killing process 26672 (postgres) with signal SIGKILL.
Feb 24 12:47:19 postgres-16.example.net systemd[1]: postgresql-16.service:
Deactivated successfully.
Feb 24 12:47:19 postgres-16.example.net systemd[1]: Stopped PostgreSQL 16
database server.


--
Please consider the environment before printing
On Sun, 2024-02-25 at 10:50 +0200, Gena Makhomed wrote:
> Previously posted to pgsql-bugs mail list asBUG #18361, but as I understand later, this may not be the PostgreSQL bug
itself,but it may be the rpm/yum/dnf packaging bug? 
>
> Can you please help to fix this bug, or find a workaround?
>
> Because killing postgres via SIGKILL is not a good idea.
>
>
> ---------- Forwarded message ---------
> Bug reference:      18361
> PostgreSQL version: 16.2
> Operating system:   Rocky Linux release 9.3
>
> PostgreSQL 16.2 installed on the Rocky Linux release 9.3 server from
> official repository with official instruction from page
> https://www.postgresql.org/download/linux/redhat/
>
> when I execute command
>
> # systemctl stop postgresql-16.service ; systemctl status
> postgresql-16.service
>
> I see, what PostgreSQL 16.2 was killed by SIGKILL.
>
> this is a bug, as I understand, because database will be corrupted.
>
> Is it possible to fix this bug and stop killing PostgreSQL with signal
> SIGKILL ?
>
> Feb 24 12:47:19 postgres-16.example.net systemd[1]: Stopping PostgreSQL 16 database server...
> Feb 24 12:47:19 postgres-16.example.net systemd[1]: postgresql-16.service: Killing process 26672 (postgres) with
signalSIGKILL. 
> Feb 24 12:47:19 postgres-16.example.net systemd[1]: postgresql-16.service: Deactivated successfully.
> Feb 24 12:47:19 postgres-16.example.net systemd[1]: Stopped PostgreSQL 16 database server.

Strange.  In my "postgresql-16.service", I find

  TimeoutStopSec=1h

which should make systemd wait for an hour after sending SIGTERM before it
uses SIGKILL.  Is your setting different?

> Please consider the environment before printing

Aww.  I would have liked to make a poster from it.

Yours,
Laurenz Albe



On Mon, Feb 26, 2024 at 11:19 AM Laurenz Albe <laurenz.albe@cybertec.at> wrote:

> Bug reference:      18361
> PostgreSQL version: 16.2
> Operating system:   Rocky Linux release 9.3
>
> PostgreSQL 16.2 installed on the Rocky Linux release 9.3 server from
> official repository with official instruction from page
> https://www.postgresql.org/download/linux/redhat/
>
> when I execute command
>
> # systemctl stop postgresql-16.service ; systemctl status
> postgresql-16.service
>
> I see, what PostgreSQL 16.2 was killed by SIGKILL.
>
> this is a bug, as I understand, because database will be corrupted.
>
> Is it possible to fix this bug and stop killing PostgreSQL with signal
> SIGKILL ?
>
> Feb 24 12:47:19 postgres-16.example.net systemd[1]: Stopping PostgreSQL 16 database server...
> Feb 24 12:47:19 postgres-16.example.net systemd[1]: postgresql-16.service: Killing process 26672 (postgres) with signal SIGKILL.
> Feb 24 12:47:19 postgres-16.example.net systemd[1]: postgresql-16.service: Deactivated successfully.
> Feb 24 12:47:19 postgres-16.example.net systemd[1]: Stopped PostgreSQL 16 database server.

Strange.  In my "postgresql-16.service", I find

  TimeoutStopSec=1h

which should make systemd wait for an hour after sending SIGTERM before it
uses SIGKILL.  Is your setting different?

No, I do not change anything in the postgresql-16.service file, I just install Postgres 16.2 on the virtual machine with Rocky Linux 9.3, using detailed step-by step instruction, provided on the page https://www.postgresql.org/download/linux/redhat/ for Rocky Linux 9 and execute:

# systemctl start postgresql-16.service ; systemctl status

wait some time, and when - execute this command:

# systemctl stop postgresql-16.service ; systemctl status
and got result:

postgresql-16.service: Killing process 26672 (postgres) with signal SIGKILL.

Is it possible to avoid this SIGKILL ?


--
Please consider the environment before printing
Hi,

On Tue, 2024-02-27 at 23:34 +0200, Gena Makhomed wrote:
> # systemctl stop postgresql-16.service ; systemctl status
> and got result:
>
> postgresql-16.service: Killing process 26672 (postgres) with signal
> SIGKILL.

I don't think this thread belongs to this list, but you should check
PostgreSQL logs for more details.

Regards,
--
Devrim Gündüz
Open Source Solution Architect, PostgreSQL Major Contributor
Twitter: @DevrimGunduz , @DevrimGunduzTR