Hi,
I noticed sporadic segfaults when selecting from pg_stat_activity on
current HEAD.
The culprit is the 53be0b1add7064ca5db3cd884302dfc3268d884e commit which
added more wait info into the pg_stat_get_activity(). More specifically,
the following code is broken:
+ proc = BackendPidGetProc(beentry->st_procpid);
+ wait_event_type =
pgstat_get_wait_event_type(proc->wait_event_info);
This needs to check if proc is NULL. When reading the code I noticed
that the new functions pg_stat_get_backend_wait_event_type() and
pg_stat_get_backend_wait_event() suffer from the same problem.
Here is PoC patch which fixes the problem. I am wondering if we should
raise warning in the pg_stat_get_backend_wait_event_type() and
pg_stat_get_backend_wait_event() like the pg_signal_backend() does when
proc is NULL instead of just returning NULL which is what this patch
does though.
--
Petr Jelinek http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Training & Services