Unset MyBEEntry, making elog.c's call to pgstat_get_my_query_id() safe. Previously log messages late during shutdown could end up using either another backend's PgBackendStatus (multi user) or segfault (single user) because pgstat_get_my_query_id()'s check for !MyBEEntry didn't filter out use after pgstat_beshutdown_hook().
This became a bug in 4f0b0966c86, but was a bit fishy before. But given there's no known problematic cases before 14, it doesn't seem worth backpatching further. Also fixes a wrong filename in a comment, introduced in e1025044. Reported-By: Andres Freund <[email protected]> Reviewed-By: Julien Rouhaud <[email protected]> Discussion: https://postgr.es/m/Julien Rouhaud <[email protected]> Backpatch: 14- Branch ------ REL_14_STABLE Details ------- https://git.postgresql.org/pg/commitdiff/18914f24ec6e704e81a5528cf09f3d54b23ef12b Modified Files -------------- src/backend/utils/activity/backend_status.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-)
