Fix crash caused by log_timezone patch if we attempt to emit any elog messages
Tom Lane <tgl@sss.pgh.pa.us>
Fix crash caused by log_timezone patch if we attempt to emit any elog messages between the setting of log_line_prefix and the setting of log_timezone. We can't realistically set log_timezone any earlier than we do now, so the best behavior seems to be to use GMT zone if any timestamps are to be logged during early startup. Create a dummy zone variable with a minimal definition of GMT (in particular it will never know about leap seconds), so that we can set it up without reference to any external files.
Files
| Path | Change | +/− |
|---|---|---|
| src/backend/utils/error/elog.c | modified | +19 −4 |
| src/backend/utils/misc/guc.c | modified | +7 −1 |
| src/include/pgtime.h | modified | +3 −1 |
| src/timezone/localtime.c | modified | +8 −3 |
| src/timezone/pgtz.c | modified | +30 −1 |