Simon Riggs <[EMAIL PROTECTED]> writes:
> Patch to set ps display for archiver enclosed, intended for 8.3

I think this is a good idea.  However, experimentation here showed that
at least on some machines (like HPUX), there's a pretty tight limit
before ps cuts off the display, and the more verbose messages discussed
on -hackers cause the last few digits of the filename to be cut off.
Which makes the display just about entirely useless.  So I went with
these messages:

archiving %s
last was %s
failed on %s

We might need to make it even briefer, perhaps

at: %s
last: %s
failed: %s

depending on reports from the field.

Applied patch attached.

                        regards, tom lane

Index: pgarch.c
===================================================================
RCS file: /cvsroot/pgsql/src/backend/postmaster/pgarch.c,v
retrieving revision 1.35
diff -c -r1.35 pgarch.c
*** pgarch.c    12 Dec 2007 16:53:14 -0000      1.35
--- pgarch.c    18 Dec 2007 00:47:42 -0000
***************
*** 414,419 ****
--- 414,420 ----
  {
        char            xlogarchcmd[MAXPGPATH];
        char            pathname[MAXPGPATH];
+       char            activitymsg[MAXFNAMELEN + 16];
        char       *dp;
        char       *endp;
        const char *sp;
***************
*** 471,476 ****
--- 472,482 ----
        ereport(DEBUG3,
                        (errmsg_internal("executing archive command \"%s\"",
                                                         xlogarchcmd)));
+ 
+       /* Report archive activity in PS display */
+       snprintf(activitymsg, sizeof(activitymsg), "archiving %s", xlog);
+       set_ps_display(activitymsg, false);
+ 
        rc = system(xlogarchcmd);
        if (rc != 0)
        {
***************
*** 527,537 ****
--- 533,549 ----
                                                           xlogarchcmd)));
                }
  
+               snprintf(activitymsg, sizeof(activitymsg), "failed on %s", 
xlog);
+               set_ps_display(activitymsg, false);
+ 
                return false;
        }
        ereport(DEBUG1,
                        (errmsg("archived transaction log file \"%s\"", xlog)));
  
+       snprintf(activitymsg, sizeof(activitymsg), "last was %s", xlog);
+       set_ps_display(activitymsg, false);
+ 
        return true;
  }
  
---------------------------(end of broadcast)---------------------------
TIP 2: Don't 'kill -9' the postmaster

Reply via email to