mirror of
https://github.com/postgres/postgres.git
synced 2025-05-31 00:01:57 -04:00
Make local copy of client hostnames in backend status array.
The other strings, application_name and query string, were snapshotted to local memory in pgstat_read_current_status(), but we forgot to do that for client hostnames. As a result, the client hostname would appear to change in the local copy, if the client disconnected. Backpatch to all supported versions. Author: Edmund Horner Reviewed-by: Michael Paquier Discussion: https://www.postgresql.org/message-id/CAMyN-kA7aOJzBmrYFdXcc7Z0NmW%2B5jBaf_m%3D_-77uRNyKC9r%3DA%40mail.gmail.com
This commit is contained in:
parent
72cf7f310c
commit
a820b4c329
@ -3224,6 +3224,7 @@ pgstat_read_current_status(void)
|
||||
LocalPgBackendStatus *localtable;
|
||||
LocalPgBackendStatus *localentry;
|
||||
char *localappname,
|
||||
*localclienthostname,
|
||||
*localactivity;
|
||||
#ifdef USE_SSL
|
||||
PgBackendSSLStatus *localsslstatus;
|
||||
@ -3242,6 +3243,9 @@ pgstat_read_current_status(void)
|
||||
localappname = (char *)
|
||||
MemoryContextAlloc(pgStatLocalContext,
|
||||
NAMEDATALEN * NumBackendStatSlots);
|
||||
localclienthostname = (char *)
|
||||
MemoryContextAlloc(pgStatLocalContext,
|
||||
NAMEDATALEN * NumBackendStatSlots);
|
||||
localactivity = (char *)
|
||||
MemoryContextAlloc(pgStatLocalContext,
|
||||
pgstat_track_activity_query_size * NumBackendStatSlots);
|
||||
@ -3282,6 +3286,8 @@ pgstat_read_current_status(void)
|
||||
*/
|
||||
strcpy(localappname, (char *) beentry->st_appname);
|
||||
localentry->backendStatus.st_appname = localappname;
|
||||
strcpy(localclienthostname, (char *) beentry->st_clienthostname);
|
||||
localentry->backendStatus.st_clienthostname = localclienthostname;
|
||||
strcpy(localactivity, (char *) beentry->st_activity_raw);
|
||||
localentry->backendStatus.st_activity_raw = localactivity;
|
||||
localentry->backendStatus.st_ssl = beentry->st_ssl;
|
||||
@ -3313,6 +3319,7 @@ pgstat_read_current_status(void)
|
||||
|
||||
localentry++;
|
||||
localappname += NAMEDATALEN;
|
||||
localclienthostname += NAMEDATALEN;
|
||||
localactivity += pgstat_track_activity_query_size;
|
||||
#ifdef USE_SSL
|
||||
localsslstatus++;
|
||||
|
Loading…
x
Reference in New Issue
Block a user