Re: Basebackups reported as idle - Mailing list pgsql-hackers

From Michael Paquier
Subject Re: Basebackups reported as idle
Date
Msg-id CAB7nPqQn-Kw5yo_Q4qzVhFCm1de6K=_-YJsc7DqENVJGyju0nQ@mail.gmail.com
Whole thread Raw
In response to Re: Basebackups reported as idle  (David Steele <david@pgmasters.net>)
Responses Re: Basebackups reported as idle  (Magnus Hagander <magnus@hagander.net>)
List pgsql-hackers
On Tue, Dec 19, 2017 at 11:50 PM, David Steele <david@pgmasters.net> wrote:
> On 12/19/17 4:56 AM, Magnus Hagander wrote:
>> AFAICT, base backups running on the replication protocol are always
>> reported as "idle" in pg_stat_activity. This seems to have been an
>> oversight in the "include walsender backends in pg_stat_activity" in 10,
>> which does include it for walsenders in general, just not for the ones
>> sending base backups. (and was then improved on later with the "include
>> all non-standard backends" patch).
>>
>> Unlike the regular walsender it also has to set it back to IDLE, since
>> you can actually finish a base backup without disconnecting.
>>
>> PFA a patch that fixes this. I think this is bugfix-for-backpatch, I
>> don't think it has a large risk of breaking things. Thoughts?
>
> +1 for this being a bug, albeit a minor one.

+1 for adding calls to pgstat_report_activity() in WAL senders and
tracking the activity of those processes.  Now I don't think that this
is the correct location as what matters is tracking if replication
commands are running or not, and not only BASE_BACKUP. So those calls
should be instead in exec_replication_command().

>> Also, in setting this, there is no real way to differentiate between a
>> regular walsender and a basebackup walsender, other than looking at the
>> wait events. They're both listed as walsenders. Should there be?  (That
>> might not be as easily backpatchable, so keeping that as a separate one)
>
> Maybe something like "walsender [backup]" or just "basebackup" since
> walsender is pretty misleading?  It think it would be nice to be able to
> tell them apart, though I don't think it should be back-patched.  People
> might be relying on the name in the current versions.

You can already do a join with pg_stat_replication.pid and look for
the WAL sender state which is marked as "backup" in this case. So I am
-1 for making the current code more complicated. Please note as well
that pg_stat_activity.backend_type is set depending on the process
type, not based on what the process is doing so you would need to
invent a new logic.
-- 
Michael


pgsql-hackers by date:

Previous
From: Masahiko Sawada
Date:
Subject: Re: User defined data types in Logical Replication
Next
From: Michael Paquier
Date:
Subject: Re: Add hint about replication slots when nearing wraparound