Re: enable logging of start time/cookie for all backend processes - Mailing list pgsql-patches
From | Andrew Dunstan |
---|---|
Subject | Re: enable logging of start time/cookie for all backend processes |
Date | |
Msg-id | 46B11DCF.3000005@dunslane.net Whole thread Raw |
In response to | Re: enable logging of start time/cookie for all backend processes (Alvaro Herrera <alvherre@commandprompt.com>) |
List | pgsql-patches |
Alvaro Herrera wrote: > >> My original thought was that it needed to be set anywhere MyProcPid was >> set. That still seems to make sense, it just looks like I missed a few >> places, which I should fix. >> > > +1 because of cleanliness, even if some calls turn out to be redundant. > That was in fact what I initially thought you were doing. > > OK, here's the revised patch. cheers andrew Index: doc/src/sgml/config.sgml =================================================================== RCS file: /cvsroot/pgsql/doc/src/sgml/config.sgml,v retrieving revision 1.133 diff -c -r1.133 config.sgml *** doc/src/sgml/config.sgml 24 Jul 2007 04:54:08 -0000 1.133 --- doc/src/sgml/config.sgml 1 Aug 2007 23:51:02 -0000 *************** *** 2861,2867 **** <row> <entry><literal>%c</literal></entry> <entry>Session ID: see below</entry> ! <entry>yes</entry> </row> <row> <entry><literal>%l</literal></entry> --- 2861,2867 ---- <row> <entry><literal>%c</literal></entry> <entry>Session ID: see below</entry> ! <entry>no</entry> </row> <row> <entry><literal>%l</literal></entry> *************** *** 2871,2877 **** <row> <entry><literal>%s</literal></entry> <entry>Session start time stamp</entry> ! <entry>yes</entry> </row> <row> <entry><literal>%x</literal></entry> --- 2871,2877 ---- <row> <entry><literal>%s</literal></entry> <entry>Session start time stamp</entry> ! <entry>no</entry> </row> <row> <entry><literal>%x</literal></entry> Index: src/backend/bootstrap/bootstrap.c =================================================================== RCS file: /cvsroot/pgsql/src/backend/bootstrap/bootstrap.c,v retrieving revision 1.235 diff -c -r1.235 bootstrap.c *** src/backend/bootstrap/bootstrap.c 24 Jul 2007 04:54:09 -0000 1.235 --- src/backend/bootstrap/bootstrap.c 1 Aug 2007 23:51:04 -0000 *************** *** 213,218 **** --- 213,220 ---- */ MyProcPid = getpid(); + MyStartTime = time(NULL); + /* * Fire up essential subsystems: error and memory management * Index: src/backend/postmaster/autovacuum.c =================================================================== RCS file: /cvsroot/pgsql/src/backend/postmaster/autovacuum.c,v retrieving revision 1.55 diff -c -r1.55 autovacuum.c *** src/backend/postmaster/autovacuum.c 1 Jul 2007 18:30:54 -0000 1.55 --- src/backend/postmaster/autovacuum.c 1 Aug 2007 23:51:05 -0000 *************** *** 385,390 **** --- 385,393 ---- /* reset MyProcPid */ MyProcPid = getpid(); + /* record Start Time for logging */ + MyStartTime = time(NULL); + /* Identify myself via ps */ init_ps_display("autovacuum launcher process", "", "", ""); *************** *** 1403,1408 **** --- 1406,1414 ---- /* reset MyProcPid */ MyProcPid = getpid(); + /* record Start Time for logging */ + MyStartTime = time(NULL); + /* Identify myself via ps */ init_ps_display("autovacuum worker process", "", "", ""); Index: src/backend/postmaster/pgarch.c =================================================================== RCS file: /cvsroot/pgsql/src/backend/postmaster/pgarch.c,v retrieving revision 1.29 diff -c -r1.29 pgarch.c *** src/backend/postmaster/pgarch.c 10 Feb 2007 14:58:54 -0000 1.29 --- src/backend/postmaster/pgarch.c 1 Aug 2007 23:51:05 -0000 *************** *** 223,228 **** --- 223,230 ---- MyProcPid = getpid(); /* reset MyProcPid */ + MyStartTime = time(NULL); /* record Start Time for logging */ + /* * If possible, make this process a group leader, so that the postmaster * can signal any child processes too. Index: src/backend/postmaster/pgstat.c =================================================================== RCS file: /cvsroot/pgsql/src/backend/postmaster/pgstat.c,v retrieving revision 1.161 diff -c -r1.161 pgstat.c *** src/backend/postmaster/pgstat.c 8 Jul 2007 22:23:16 -0000 1.161 --- src/backend/postmaster/pgstat.c 1 Aug 2007 23:51:07 -0000 *************** *** 2168,2173 **** --- 2168,2175 ---- MyProcPid = getpid(); /* reset MyProcPid */ + MyStartTime = time(NULL); /* record Start Time for logging */ + /* * If possible, make this process a group leader, so that the postmaster * can signal any child processes too. (pgstat probably never has Index: src/backend/postmaster/postmaster.c =================================================================== RCS file: /cvsroot/pgsql/src/backend/postmaster/postmaster.c,v retrieving revision 1.535 diff -c -r1.535 postmaster.c *** src/backend/postmaster/postmaster.c 24 Jul 2007 04:54:09 -0000 1.535 --- src/backend/postmaster/postmaster.c 1 Aug 2007 23:51:10 -0000 *************** *** 386,391 **** --- 386,393 ---- MyProcPid = PostmasterPid = getpid(); + MyStartTime = time(NULL); + IsPostmasterEnvironment = true; /* *************** *** 1103,1108 **** --- 1105,1112 ---- MyProcPid = PostmasterPid = getpid(); /* reset PID vars to child */ + MyStartTime = time(NULL); + /* GH: If there's no setsid(), we hopefully don't need silent mode. * Until there's a better solution. */ *************** *** 2661,2666 **** --- 2665,2672 ---- MyProcPid = getpid(); /* reset MyProcPid */ + MyStartTime = time(NULL); + /* We don't want the postmaster's proc_exit() handlers */ on_exit_reset(); *************** *** 2803,2809 **** /* save process start time */ port->SessionStartTime = GetCurrentTimestamp(); ! port->session_start = timestamptz_to_time_t(port->SessionStartTime); /* set these to empty in case they are needed before we set them up */ port->remote_host = ""; --- 2809,2815 ---- /* save process start time */ port->SessionStartTime = GetCurrentTimestamp(); ! MyStartTime = timestamptz_to_time_t(port->SessionStartTime); /* set these to empty in case they are needed before we set them up */ port->remote_host = ""; *************** *** 3385,3390 **** --- 3391,3398 ---- MyProcPid = getpid(); /* reset MyProcPid */ + MyStartTime = time(NULL); + /* Lose the postmaster's on-exit routines (really a no-op) */ on_exit_reset(); Index: src/backend/postmaster/syslogger.c =================================================================== RCS file: /cvsroot/pgsql/src/backend/postmaster/syslogger.c,v retrieving revision 1.33 diff -c -r1.33 syslogger.c *** src/backend/postmaster/syslogger.c 19 Jul 2007 19:13:43 -0000 1.33 --- src/backend/postmaster/syslogger.c 1 Aug 2007 23:51:10 -0000 *************** *** 162,167 **** --- 162,169 ---- MyProcPid = getpid(); /* reset MyProcPid */ + MyStartTime = time(NULL); /* set our start time in case we call elog */ + #ifdef EXEC_BACKEND syslogger_parseArgs(argc, argv); #endif /* EXEC_BACKEND */ Index: src/backend/tcop/postgres.c =================================================================== RCS file: /cvsroot/pgsql/src/backend/tcop/postgres.c,v retrieving revision 1.536 diff -c -r1.536 postgres.c *** src/backend/tcop/postgres.c 9 Jul 2007 01:15:14 -0000 1.536 --- src/backend/tcop/postgres.c 1 Aug 2007 23:51:13 -0000 *************** *** 2786,2791 **** --- 2786,2793 ---- */ MyProcPid = getpid(); + MyStartTime = time(NULL); + /* * Fire up essential subsystems: error and memory management * Index: src/backend/utils/error/elog.c =================================================================== RCS file: /cvsroot/pgsql/src/backend/utils/error/elog.c,v retrieving revision 1.190 diff -c -r1.190 elog.c *** src/backend/utils/error/elog.c 21 Jul 2007 22:12:04 -0000 1.190 --- src/backend/utils/error/elog.c 1 Aug 2007 23:51:14 -0000 *************** *** 1485,1496 **** } break; case 'c': ! if (MyProcPort) ! { ! appendStringInfo(buf, "%lx.%x", ! (long) (MyProcPort->session_start), ! MyProcPid); ! } break; case 'p': appendStringInfo(buf, "%d", MyProcPid); --- 1485,1491 ---- } break; case 'c': ! appendStringInfo(buf, "%lx.%x", (long)(MyStartTime),MyProcPid); break; case 'p': appendStringInfo(buf, "%d", MyProcPid); *************** *** 1552,1558 **** } break; case 's': - if (MyProcPort) { char strfbuf[128]; --- 1547,1552 ---- *************** *** 1563,1569 **** #else "%Y-%m-%d %H:%M:%S", #endif ! localtime(&MyProcPort->session_start)); appendStringInfoString(buf, strfbuf); } break; --- 1557,1563 ---- #else "%Y-%m-%d %H:%M:%S", #endif ! localtime(&MyStartTime)); appendStringInfoString(buf, strfbuf); } break; Index: src/backend/utils/init/globals.c =================================================================== RCS file: /cvsroot/pgsql/src/backend/utils/init/globals.c,v retrieving revision 1.101 diff -c -r1.101 globals.c *** src/backend/utils/init/globals.c 16 Apr 2007 18:29:54 -0000 1.101 --- src/backend/utils/init/globals.c 1 Aug 2007 23:51:14 -0000 *************** *** 33,38 **** --- 33,39 ---- volatile uint32 CritSectionCount = 0; int MyProcPid; + time_t MyStartTime; struct Port *MyProcPort; long MyCancelKey; Index: src/include/miscadmin.h =================================================================== RCS file: /cvsroot/pgsql/src/include/miscadmin.h,v retrieving revision 1.195 diff -c -r1.195 miscadmin.h *** src/include/miscadmin.h 25 Jul 2007 12:22:53 -0000 1.195 --- src/include/miscadmin.h 1 Aug 2007 23:51:15 -0000 *************** *** 23,28 **** --- 23,30 ---- #ifndef MISCADMIN_H #define MISCADMIN_H + #include <time.h> /* for time_t */ + #define PG_VERSIONSTR "postgres (PostgreSQL) " PG_VERSION "\n" *************** *** 132,137 **** --- 134,140 ---- extern int MaxConnections; extern PGDLLIMPORT int MyProcPid; + extern PGDLLIMPORT time_t MyStartTime; extern PGDLLIMPORT struct Port *MyProcPort; extern long MyCancelKey; Index: src/include/libpq/libpq-be.h =================================================================== RCS file: /cvsroot/pgsql/src/include/libpq/libpq-be.h,v retrieving revision 1.62 diff -c -r1.62 libpq-be.h *** src/include/libpq/libpq-be.h 23 Jul 2007 10:16:54 -0000 1.62 --- src/include/libpq/libpq-be.h 1 Aug 2007 23:51:16 -0000 *************** *** 130,136 **** * other members of this struct, we may as well keep it here. */ TimestampTz SessionStartTime; /* backend start time */ - time_t session_start; /* same, in time_t format */ /* * TCP keepalive settings. --- 130,135 ----
pgsql-patches by date: