At Thu, 7 Jul 2022 13:58:06 -0500, Justin Pryzby <pryzby@telsasoft.com> wrote in
> I agree that this is a bug, since it can (and did) cause false positives in a
> monitoring system.
I'm not this is undoubtfully a bug but agree about the rest.
> > As well, patch changes way to allocate memory for local structure. Before it
> > estimates maximum size of required memory and allocate it at once. It could
> > result into allocation of dozens/hundreds of megabytes for nothing. Now it
> > allocates memory by chunks to reduce overall amount of allocated memory and
> > reduce time for allocation.
>
> I suggest to present this as two patches: a 0001 patch to fix the bug, and
> proposed for backpatch, and an 0002 patch for master to improve memory usage.
> As attached. Actually, once 0001 is resolved, it may be good to start a
> separate thread for 0002. I plan to add to the next CF.
Looking the patch 0001, I wonder we can move wait_even_info from
PGPROC to backend status. If I'm not missing anything, I don't see a
plausible requirement for it being in PROC, or rather see a reason to
move it to backend_status.
> void
> pgstat_report_activity(BackendState state, const char *cmd_str)
> {
> ...
> beentry->st_xact_start_timestamp = 0;
> beentry->st_query_id = UINT64CONST(0);
> proc->wait_event_info = 0;
> PGSTAT_END_WRITE_ACTIVITY(beentry);
regards.
--
Kyotaro Horiguchi
NTT Open Source Software Center