Hi, On 2021-08-08 11:53:39 -0700, Andres Freund wrote: > On 2021-08-08 13:46:39 +0800, Julien Rouhaud wrote: > > > I suspect that to make the elog.c usage safe, we'll have to clear > > > MyBEEntry in > > > pgstat_beshutdown_hook(). > > > > I agree, and a quick test indeed fix your scenario. It also seems like a > > good > > thing to do overall. > > Yea, it does seem like a good thing. But we should do a search for the > problems it could cause...
Not a problem with unsetting MyBEEntry. But the search for problems made me reread the following comment: /* * There's no need for a lock around pgstat_begin_read_activity / * pgstat_end_read_activity here as it's only called from * pg_stat_get_activity which is already protected, or from the same * backend which means that there won't be concurrent writes. */ I don't understand the pg_stat_get_activity() part of this comment? pgstat_get_my_query_id() hardcodes MyBEEntry->st_query_id, so it can't be useful to pg_stat_get_activity(), nor is it used there? I assume it's just a remnant from an earlier iteration of the code? Greetings, Andres Freund