Re: ps_status.h on FreeBSD 4.0 problems and fix

From: Bruce Momjian <pgman(at)candle(dot)pha(dot)pa(dot)us>
To: Matthew Altus <matt(at)senet(dot)com(dot)au>
Cc: bugs(at)postgreSQL(dot)org
Subject: Re: ps_status.h on FreeBSD 4.0 problems and fix
Date: 2000-07-11 02:23:38
Message-ID: 200007110223.WAA09335@candle.pha.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

7.0.2 is has less bugs than any previous release.

> Excellent, but as we are using 6.5.1 at the moment, due to performance
> issues with 6.5.2/3 and optimizer concerns with 7.0.x is this change ok,
> ie nothing should break due to it. I have been thrashing this db over
> the entire weekend, and died only due to a 1 corrupt index, so I believe
> it should be ok, but to get a view from people who know about this would
> be great.
>
> Thanks
>
> Bruce Momjian wrote:
> >
> > We already did this. This will be in 7.1.
> >
> > > Your name : Matthew Altus
> > > Your email address : matt(at)senet(dot)com(dot)au
> > >
> > >
> > > System Configuration
> > > ---------------------
> > > Architecture : Intel Pentium 3 Dual CPU
> > >
> > > Operating System : FreeBSD 4.0 - STABLE
> > >
> > > PostgreSQL version : PostgreSQL-6.5.1 (also effects 7.0 as well)
> > >
> > > Compiler used : gcc 2.95.2
> > >
> > >
> > > Please enter a FULL description of your problem:
> > > ------------------------------------------------
> > > The ps output of child postgres process doesn't change to display
> > > hostname etc... It displays the same as the postmaster.
> > > I noticed there are links (PS_STATUS marco) from the ps_status to the
> > > lockmgr files, which means it may use this to help determine deadlock
> > > status, which is very bad, as freebsd 4.0 doesn't allow you to write the
> > > argv memory, although I might me completely wrong about this one.
> > >
> > > If this problem had already been posted to pgsql-bugs, I couldn't tell
> > > as your seach doesn't work.
> > >
> > >
> > >
> > > Please describe a way to repeat the problem. Please try to provide a
> > > concise reproducible example, if at all possible:
> > > ----------------------------------------------------------------------
> > > Install postgres on freeBSD 4.0 and open a connection, type ps axwwwwww
> > > | grep postgres. all children will look the same as the postmaster.
> > >
> > >
> > >
> > >
> > > If you know how this problem might be fixed, list the solution below:
> > > ---------------------------------------------------------------------
> > >
> > > Below is my replacement to src/include/utils/ps_status.h , you should
> > > place checks for the setproctitle function in the configure script and
> > > use this if its available (most BSD's) instead of overwriting the argv
> > > memory space. You will also need to link against libutil (-lutil).
> > >
> > >
> > > /*-------------------------------------------------------------------------
> > > *
> > > * ps_status.h
> > > *
> > > * Defines macros to show backend status on the ps status line.
> > > * Unfortunately this is system dpendent.
> > > *
> > > * Below is the FreeBSD version should work FreeBSD 2.2. and
> > > higher.
> > > *
> > > * needs -lutil in makefile/configure script
> > > *
> > > * Written by Matthew Altus
> > > *
> > >
> > > *-------------------------------------------------------------------------
> > > */
> > >
> > > #ifndef PS_STATUS_H
> > > #define PS_STATUS_H
> > >
> > >
> > > #include <sys/types.h>
> > > #include <libutil.h>
> > >
> > > extern char ps_status_buffer[];
> > > extern char ps_status[];
> > >
> > > #define BUFFERPATHLEN 255
> > >
> > > #define PS_DEFINE_BUFFER \
> > > char ps_status_buffer[BUFFERPATHLEN]; \
> > > char ps_status[BUFFERPATHLEN];
> > >
> > > #define PS_INIT_STATUS(argc, argv, execname, username, hostname, dbname)
> > > \
> > > { \
> > > bzero (ps_status_buffer, BUFFERPATHLEN); \
> > > bzero (ps_status, BUFFERPATHLEN); \
> > > sprintf(ps_status_buffer, "%s %s %s %s ", execname,
> > > username, hostname, dbname); \
> > > setproctitle("%s", ps_status_buffer); \
> > > }
> > >
> > > #define PS_CLEAR_STATUS() \
> > > { \
> > > bzero (ps_status, BUFFERPATHLEN); \
> > > setproctitle("%s", ps_status_buffer); \
> > > }
> > >
> > > #define PS_SET_STATUS(status) \
> > > { \
> > > PS_CLEAR_STATUS(); \
> > > strcpy(ps_status, status); \
> > > setproctitle("%s%s", ps_status_buffer, ps_status); \
> > > }
> > >
> > > #define PS_STATUS (ps_status)
> > >
> > >
> > >
> > > #endif /* PS_STATUS_H */
> > >
> > >
> > >
> > > --
> > > _____________________________________________________________________
> > > Matthew Altus B.Eng. C.S.E. Sales : (08) 8221 5221
> > > Software Development Engineer Support : (08) 8221 5792
> > > SE Network Access Pty Ltd Fax : (08) 8221 5220
> > > 222 Grote Street E-Mail : matt(at)senet(dot)com(dot)au
> > > Adelaide SA 5000 WWW : http://www.senet.com.au
> > >
> >
> > --
> > Bruce Momjian | http://candle.pha.pa.us
> > pgman(at)candle(dot)pha(dot)pa(dot)us | (610) 853-3000
> > + If your life is a hard drive, | 830 Blythe Avenue
> > + Christ can be your backup. | Drexel Hill, Pennsylvania 19026
>
> --
> _____________________________________________________________________
> Matthew Altus B.Eng. C.S.E. Sales : (08) 8221 5221
> Software Development Engineer Support : (08) 8221 5792
> SE Network Access Pty Ltd Fax : (08) 8221 5220
> 222 Grote Street E-Mail : matt(at)senet(dot)com(dot)au
> Adelaide SA 5000 WWW : http://www.senet.com.au
>

--
Bruce Momjian | http://candle.pha.pa.us
pgman(at)candle(dot)pha(dot)pa(dot)us | (610) 853-3000
+ If your life is a hard drive, | 830 Blythe Avenue
+ Christ can be your backup. | Drexel Hill, Pennsylvania 19026

In response to

Browse pgsql-bugs by date

  From Date Subject
Next Message Tom Lane 2000-07-11 03:26:38 Foreign key bugs (Re: "New" bug?? Serious - crashes backend.)
Previous Message Matthew Altus 2000-07-11 02:02:46 Re: ps_status.h on FreeBSD 4.0 problems and fix