Thread: systemd service start - disable timeout with "infinity"

systemd service start - disable timeout with "infinity"

From
PG Doc comments form
Date:
The following documentation comment has been logged on the website:

Page: https://www.postgresql.org/docs/14/server-start.html
Description:

In the service start section of the documentation, it is stated that using a
value of zero for TimeoutSec disables the systemd timeout. This is not
accurate and according to the documentation of systemd,
https://www.freedesktop.org/software/systemd/man/systemd.service.html#TimeoutStartSec=,
this should be set to "infinity" to disable the timeout.

Re: systemd service start - disable timeout with "infinity"

From
Tom Lane
Date:
PG Doc comments form <noreply@postgresql.org> writes:
> In the service start section of the documentation, it is stated that using a
> value of zero for TimeoutSec disables the systemd timeout. This is not
> accurate and according to the documentation of systemd,
> https://www.freedesktop.org/software/systemd/man/systemd.service.html#TimeoutStartSec=,
> this should be set to "infinity" to disable the timeout.

Hmm ... maybe zero works too, or worked when this was written?
But you're right that "infinity" is now the documented way
to do it.  Will fix, thanks for the report.

            regards, tom lane



Re: systemd service start - disable timeout with "infinity"

From
Justin Pryzby
Date:
On Sun, Mar 20, 2022 at 12:11:19PM -0400, Tom Lane wrote:
> PG Doc comments form <noreply@postgresql.org> writes:
> > In the service start section of the documentation, it is stated that using a
> > value of zero for TimeoutSec disables the systemd timeout. This is not
> > accurate and according to the documentation of systemd,
> > https://www.freedesktop.org/software/systemd/man/systemd.service.html#TimeoutStartSec=,
> > this should be set to "infinity" to disable the timeout.
> 
> Hmm ... maybe zero works too, or worked when this was written?
> But you're right that "infinity" is now the documented way
> to do it.  Will fix, thanks for the report.

FYI
https://www.postgresql.org/message-id/flat/20211129220234.GQ17618%40telsasoft.com
https://git.postgresql.org/gitweb/?p=pgrpms.git&a=commitdiff&h=c74dbe3781478597712066354d19b754ba4b7683
+# 0 is the same as infinity, but "infinity" needs systemd 229
+TimeoutStartSec=0



Re: systemd service start - disable timeout with "infinity"

From
Tom Lane
Date:
Justin Pryzby <pryzby@telsasoft.com> writes:
> On Sun, Mar 20, 2022 at 12:11:19PM -0400, Tom Lane wrote:
>> Hmm ... maybe zero works too, or worked when this was written?
>> But you're right that "infinity" is now the documented way
>> to do it.  Will fix, thanks for the report.

> +# 0 is the same as infinity, but "infinity" needs systemd 229

Ah, thanks for the data point.  229 is far enough back that
I'm not too troubled about that; besides, since this is just
a documentation example, clarity is more important.

BTW, what I read in the systemd docs is that TimeoutSec is
a shorthand for setting both TimeoutStartSec and TimeoutStopSec,
so the code in our RPMs looks a bit dubious now:

 # Do not set any timeout value, so that systemd will not kill postmaster
 # during crash recovery.
 TimeoutSec=0
 
+# 0 is the same as infinity, but "infinity" needs systemd 229
+TimeoutStartSec=0
+
+TimeoutStopSec=1h
+
 [Install]

This is making assumptions about what order the values are applied
in, plus the initial comment is no longer very accurate.

            regards, tom lane