On Tue, Aug 23, 2022 at 10:04:30AM -0700, Jacob Champion wrote: > On 8/23/22 01:53, Drouvot, Bertrand wrote: >> @@ -2688,6 +2689,7 @@ InitProcessGlobals(void) >> >> MyProcPid = getpid(); >> >> MyStartTimestamp = GetCurrentTimestamp(); >> >> MyStartTime = timestamptz_to_time_t(MyStartTimestamp); >> >> + memset(&MyClientConnectionInfo, 0, sizeof(MyClientConnectionInfo)); >> >> >> >> /* >> >> * Set a different global seed in every process. We want something > > When can we rely on static initialization, and when can't we? Is there a > concern that the memory could have been polluted from before the > postmaster's fork?
My main worry here is EXEC_BACKEND, where we would just use our own implementation of fork(), and it is a bad idea at the end to leave that untouched while we could have code paths that attempt to access it. At the end, I have moved the initialization at the same place as where we set MyProcPort for a backend in BackendInitialize(), mainly as a matter of consistency because ClientConnectionInfo is aimed at being a subset of that. And applied. -- Michael
signature.asc
Description: PGP signature