Re: Fwd: weird long time query

Kaijiang Chen <[email protected]> Thu, 19 Dec 2019 00:14:26 +0800
Newsgroups gmane.comp.db.postgresql.bugs
Message-ID <CAAkGvS9Us7C1r6eSPEz-NbazySX-GGOBtwAjczhFzg_hR9CsMA@mail.gmail.com>
Thanks!
I learn the SQL from the web. pg views should be better.
BTW, I got the similar result (still see that proc) with "select * from
pg_stat_activity":

backend_start    | 2019-11-25 16:27:05.103901+08
xact_start       |
query_start      | 2019-11-25 16:29:29.529318+08
state_change     | 2019-11-25 16:29:29.529344+08
waiting          | f
state            | idle
backend_xid      |
backend_xmin     |
query            | DEALLOCATE pdo_stmt_00000388

Looks not very nice :-)

On Wed, Dec 18, 2019 at 10:06 PM hubert depesz lubaczewski <
[email protected]> wrote:

> On Wed, Dec 18, 2019 at 11:25:32AM +0800, Kaijiang Chen wrote:
> > I'm using postgres 9.4.17 on centos 7.
> > I check the running queries with the following SQL:
> > SELECT
> >     procpid,
> >     start,
> >     now() - start AS lap,
> >     current_query
> > FROM
> >     (SELECT
> >         backendid,
> >         pg_stat_get_backend_pid(S.backendid) AS procpid,
> >         pg_stat_get_backend_activity_start(S.backendid) AS start,
> >         pg_stat_get_backend_activity(S.backendid) AS current_query
> >     FROM
> >         (SELECT pg_stat_get_backend_idset() AS backendid) AS S
> >     ) AS S
> > WHERE
> >     current_query <> '<IDLE>'
> > ORDER BY
> >     lap DESC;
> >
> > Then, I found a SQL that has run for some days (and still running):
> > procpid       | 32638
> > start         | 2019-11-25 16:29:29.529318+08
> > lap           | 21 days 18:24:54.707369
> > current_query | DEALLOCATE pdo_stmt_00000388
> >
> > I tried to kill it with: SELECT pg_cancel_backend(32638) but it takes no
> > effects.
> >
> > What's this query and what shall I do for it?
> >
> > I think it is a bug since logically, this query should be gone.
>
> It's not a bug. Most likely this backend is not doing anything.
>
> You're using old way to check if backend is working - current_query <>
> '<IDLE>';
>
> Check: select * from pg_stat_activity where pid = 32638
>
> Most likely you'll see state = 'idle'
>
> In such cases, query just shows last executed query, not currently
> running one.
>
> Also - WHY are you calling internal pg* functions directly, instead of
> using pg_stat_activity view?
>
> Best regards,
>
> depesz
>
>