2023年8月25日(金) 1:19 Nathan Bossart <nathandboss...@gmail.com>: > > On Wed, Aug 23, 2023 at 07:51:40PM -0700, Nathan Bossart wrote: > > On Wed, Aug 23, 2023 at 07:32:06PM -0700, Nathan Bossart wrote: > >> On Thu, Aug 24, 2023 at 10:22:49AM +0900, Ian Lawrence Barwick wrote: > >>> Looking at the code, this is happening because > >>> "pgstat_fetch_stat_local_beentry()" > >>> expects to be passed the backend ID as an integer representing a 1-based > >>> index > >>> referring to "localBackendStatusTable", but > >>> "pg_stat_get_backend_subxact()" > >>> is presumably intended to take the actual BackendId , as per other > >>> "pg_stat_get_XXX()" > >>> functions. > >> > >> Yes, this was changed in d7e39d7, but 10ea0f9 seems to have missed the > >> memo. > > > > BTW I'd argue that this is a bug in v16 that we should try to fix before > > GA, so I've added an open item [0]. I assigned it to Robert (CC'd) since > > he was the committer, but I'm happy to pick it up. > > Since RC1 is fast approaching, I put together a revised patch set. 0001 > renames the existing pgstat_fetch_stat* functions, and 0002 adds > pgstat_get_local_beentry_by_backend_id() and uses it for > pg_stat_get_backend_subxact(). Thoughts?
Thanks for looking at this. In summary we now have these functions: extern PgBackendStatus *pgstat_get_beentry_by_backend_id(BackendId beid); extern LocalPgBackendStatus *pgstat_get_local_beentry_by_backend_id(BackendId beid); extern LocalPgBackendStatus *pgstat_get_local_beentry_by_index(int beid); which LGTM; patches work as expected and resolve the reported issue. Regards Ian Barwick