Re: Question about client_connection_check_interval

From: Kyotaro Horiguchi <horikyota(dot)ntt(at)gmail(dot)com>
To: kuroda(dot)hayato(at)fujitsu(dot)com
Cc: thomas(dot)munro(at)gmail(dot)com, pgsql-hackers(at)lists(dot)postgresql(dot)org
Subject: Re: Question about client_connection_check_interval
Date: 2021-10-08 00:59:47
Message-ID: 20211008.095947.2097665122491649409.horikyota.ntt@gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

At Fri, 08 Oct 2021 09:56:32 +0900 (JST), Kyotaro Horiguchi <horikyota(dot)ntt(at)gmail(dot)com> wrote in
> Hello.
>
> At Thu, 7 Oct 2021 03:07:33 +0000, "kuroda(dot)hayato(at)fujitsu(dot)com" <kuroda(dot)hayato(at)fujitsu(dot)com> wrote in
> > Dear Hackers,
> >
> > While reading source codes about timeouts and GUC and I found that
> > strange behavior about client_connection_check_interval.
> >
> > Currently we did not an assign_hook about client_connection_check_interval,
> > that means a timeout will not turn on immediately if users change the GUC
> > from zero to arbitrary positive integer.
> > In my understanding the timeout will fire only when:
> >
> > * before starting transaction
>
> You're misunderstanding here. Maybe you saw that start_xact_command()
> starts the timer but note that the function is called before every
> command execution.
>
> > * after firing the CLIENT_CONNECTION_CHECK_TIMEOUT timeout
> >
> > Hence I thought following inconvenient scenario:
> >
> > 1. set client_connection_check_interval = 0 in postgresql.conf
> > 2. start a tx
> > 3. SET LOCAL client_connection_check_interval to non-zero value
> > in order to checking clients until the end of the tx
>
> > 4. users expect to firing the timeout, but it does not work
> > because enable_timeout_after() will never execute in the tx
>
> So this is wrong. I should see the check performed as expected. That

I don't come up with how come I wrote this, but the "*I* should" is,
of course, a typo of "*You* should".

So this is wrong. You should see the check performed as expected. That
> behavior would be clearly visualized if you inserted an elog() into
> pq_check_connection().
>
> > Is this an expected behavior? If so, I think this spec should be documented.
> > If not, I think an assign_hook is needed for resolving the problem.
> >
> > How do you think?
>
> And it seems that the documentation describes the behavior correctly.
>
> https://www.postgresql.org/docs/14/runtime-config-connection.html
>
> > client_connection_check_interval (integer)
> >
> > Sets the time interval between optional checks that the client is
> > still connected, while running queries.

--
Kyotaro Horiguchi
NTT Open Source Software Center

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Stephen Frost 2021-10-08 02:44:38 Re: Role Self-Administration
Previous Message Kyotaro Horiguchi 2021-10-08 00:56:32 Re: Question about client_connection_check_interval