Re: possible database corruption

Tom Lane <tgl@sss.pgh.pa.us>

From: Tom Lane <tgl@sss.pgh.pa.us>
To: Chris Anderson <chris@journyx.com>
Cc: pgsql-bugs@postgresql.org, John Maddalozzo <john@journyx.com>
Date: 2001-01-13T02:28:25Z
Lists: pgsql-bugs
Chris Anderson <chris@journyx.com> writes:
> [ occasional crash in GetRawDatabaseInfo() ]

Try applying the following patch, which corresponds to a bug that I
noticed in GetRawDatabaseInfo a couple months ago: it looks at one
tuple-pointer slot too many in each page of pg_database.  Normally the
bogus slot will be ignored because it doesn't have the LP_USED bit set,
but if you create and drop databases a lot, it's possible there would
be garbage there.

If this doesn't help, please recompile the backend with -g, so that we
can see a more detailed stack backtrace.

			regards, tom lane

*** src/backend/utils/misc/database.c~	Wed Apr 12 13:16:07 2000
--- src/backend/utils/misc/database.c	Fri Jan 12 21:25:24 2001
***************
*** 180,186 ****
  		max = PageGetMaxOffsetNumber(pg);
  
  		/* look at each tuple on the page */
! 		for (i = 0; i <= max; i++)
  		{
  			int			offset;
  
--- 180,186 ----
  		max = PageGetMaxOffsetNumber(pg);
  
  		/* look at each tuple on the page */
! 		for (i = 0; i < max; i++)
  		{
  			int			offset;